LINUX.ORG.RU

ESP32 для датчиков DS18B20 + RPi

 , ,


1

3

Имеется raspberry pi 4B, к которому я собираюсь подключать датчик температуры (DS18B20 2 штуки, один - в комнате, другой - на улице), также планируется купить ESP32, для того, чтобы измерять температуру воды в уличном бассейне, так как он находится на удалении от rpi, то передача данных будет осуществляться по Wi-Fi.

Мне пришла мысль, что можно взять ещё один ESP32, который будет находится в непосредственной близости от rpi и куда я подключу комнатный и уличный датчики (и, например, датчик влажности, угарного газа и т.п.), чтобы не разводить геморрой с проводами на rpi. В таком случае основная функция rpi будет заключаться в том, чтобы раз в 15 минут опрашивать все датчики, записывать полученные данные в mysql и выводить информацию на небольшой e-ink дисплей.

Изначально я думал, что датчики будут раз в 15 минут запрашивать температуру, выкидывать html или json, который я в свою очередь буду парсить с rpi. Но этот вариант я откинул, потому что скрипты придется запускать практически одновременно и любой рассинхрон (например - отключение одного из датчиков, отключение электричества и т.п.) приведёт к тому, что в БД попадут неактуальные данные.

Отсюда два вопроса:

  1. Подойдут ли в случае, описанном в последнем абзаце, датчики типа DS3231, если помимо температуры на html странице будет отображаться и точное время, которое затем будет парситься и записываться в БД?

  2. Насколько вообще оптимальна схема (когда rpi занимается только обработкой данных, а все датчики висят на ESP32)?


Чувак, у тебя производная температуры настолько мала, что можно смело игнорировать разницу в минуту, не говоря уж о секундах. И вообще датчик может отвалиться по любой причине поэтому ты должен предусмотреть эту в общем то штатную ситуацию. Так что ходи с разбери на датчики как проще, не забывай про таймаут коннекта и запроса и не пудри мозг

no-dashi-v2 ★★
()

Три датчика температуры - три компьютера. Атас. Зато JSON :)

Есть копеечные радио модули,раз не хочешь возиться с проводами. Возьми любой копеечные микроконтроллер, какой душе ближе, и напиши ему обработчик радио запроса, мол, доложить температуру. Всю логику оставь на малине, пусть когда ей надо, адресно спрашивает по радио нужный датчик

pihter ★★★★★
()

ИМХО. Оверинжиниринг.

RPi тут, вообще говоря, лишний.

Если хочется сделать на микроконтроллерах, то вполне достаточно связки ESP8266 + ESP32.

Оконечные узлы (ОУ): ESP8266 + DS3231 (датчик температуры).

Центральный узел (ЦУ): ESP32 + дисплей (SPI или I2C).

Время брать с NTP-сервера или оставить только на ESP32.

Логика:

  1. ОУ опрашивает ЦУ-1. Если тот отвечает, то полученная температура пишется на экран (в текстовый лог и т.п.). Если не отвечает, ставится метка неответа.

  2. ОУ опрашивает ЦУ-2. …

  3. пауза

  4. повторить

Текстовый лог, если надо, можно раз в день снимать ноутом/компом. Просто по крону. Если не надо, то просто хранить в ESP и циклически перезаписывать - там 2 мегабайта памяти, можно ухраниться. В крайнем случае можно на второй SPI повесить самую дешёвую 1-2ГБ Micro SD карту памяти и писать лог на неё - на несколько лет хватит.

Rakshas
()
Ответ на: комментарий от pihter

ЧСХ, наколхозить на ESP для малознакомого с МК человека, может быть дешевле, чем делать оптимизированное решение на элементарном МК типа ATtiny или STM8, передатчике и своей плате. Просто насобирать готовые рецепты/библиотеки и соединить их в нужном порядке. Достаточно знания Си.

Он банально меньше времени потратит на то, чтобы разобраться и собрать готовое (работающее) решение. Пусть оно будет стоить, условно, 2-3 тысячи против 500 руб, но для разового решения это приемлемо.

Естественно, если задача повысить скилл, то ваш вариант лучше - там больше моментов, которые потребуется учесть, разобраться и т.п.

Rakshas
()

Люди откровенно маются от безделья создавая ненужные и неинтересные устройства, которыми попользуются от силы пару месяцев. А усилий на их создание уйдет в пересчете на рабочее время приличного инженера - на несколько тысяч долларов.

vaddd ★☆
()
Ответ на: комментарий от Rakshas

Согласен, не спорю. Если вопрос в решении задачи без оглядки на средства, лишь бы проще - по юсб свистку-термометру и системнике с виндой! (шучу, одноплатники проще)

pihter ★★★★★
()
Ответ на: комментарий от vaddd

создавая ненужные и неинтересные устройства

в пересчете на рабочее время приличного инженера - на несколько тысяч долларов

это называется «хобби» :)

sergej ★★★★★
()
Последнее исправление: sergej (всего исправлений: 1)

у меня home-assistant выглядит вот так

Колхозный роутер 2.1

(ну и там ссылки на предыдущие версии)

собирает данные с компов, wifi-точки, телевизора, гайвер-лампы и 2х самодельных погодных станций на esp8266 с датчиками co2, пыли, влажности, давления и температуры. Одна из станций сделана настольными часами с NTP и дисплеем из 4х led-матриц.

sergej ★★★★★
()