Всем доброго времени суток! Люди добрые, подскажите никто не встречал готовый проект (схема, прошивка, описание) по сборке многоканального термометра на контроллере ESP8266 (или аналогичных ESP32, NodeMCU-CH340 и т.п.) с применением датчиков DS18B20 (4-5 датчиков) с выводом измеряемой температуры на страницу Web-сервера, поднятого на самом контроллере. Одноканальный и двухканальный вариант подобного девайса встречал на необъятных просторах интернета, а на 4-5 каналов сколько не искал, готового решения не нашел. Самому нечто подобное сваять к сожалению не хватает знаний и понимания. Быть может есть и такой вариант, когда на базе каждой из плат контроллера ESP8266 собирается отдельный термометр с одним датчиком DS18B20, т.е. 4-5 плат, и потом показания каждого из термометров передаются на один сервер какого-либо контроллера и при открытие страницы отображаются показания всех 5-и термометров (с экономической точки зрения такой вариант по-дороже по железу, чем первый, но не настолько критично, чтобы его не рассматривать в моей ситуации). Либо есть альтернативные решения данного вопроса, MQTT, Blynk, но повторюсь нужен рабочий готовый вариант с подробной инструкцией, чтобы после сборки с бубном не прыгать, а если все же придется немного попрыгать, то хотя бы понимать в каком месте это делать. Был бы благодарен за помощь!
Проще всего все сделать на ESP-01 и все датчики посадить на одну линию (возможно и более 5-и, не проверял). Но тут есть небольшое неудобство: нужно получить ID каждого датчика и потом их сохранить в настройках. И в случае проблемы с линией перестанут работать все датчики. Второй вариант. Берем, например, ESP-12 - там ног больше и соединяем по принципу нога-датчик. Отпадают неудобства первого варианта. Третий вариант. Ардуина + ESP-01. Ардуина опрашивает сколько нужно датчиков и передает температуру в ESP... Ну а ESP уже как вэб-сервер сложного ничего нет, все зависит насколько красиво все должно выводиться на экране... По времени это займет от пары вечеров до реализации всех хотелок заказчика.... естественно не бесплатно
Получать ID и сохранять в памяти не обязательно. Датчики прекрасно ищутся один за другим, полученные ID потом сохраняются в массив. Можно это делать в setup(). Но в массиве они сохранятся по возрастанию ID. Для того чтобы узнать какой датчик имеет какой порядковый номер, греем по очереди и записываем номер. Я тестировал до 6 датчиков на одной линии, никаких проблем нет. Можно и больше. Тут главный вопрос, что ТС нужен готовый проект, дорабатывать что либо он не готов.
А какая проблема подцепить N датчегов с известными ID на один провод?Определить ID не проблема ведь? Код (Text): #include "OneWire.h" OneWire ds(5); //data wire connected to GPIO5 void setup(void) { Serial.begin(9600); } void loop(void) { byte i; byte addr[8]; if (!ds.search(addr)) { Serial.println(" No more addresses."); Serial.println(); ds.reset_search(); delay(250); return; } Serial.print(" ROM ="); for (i = 0; i < 8; i++) { Serial.write(' '); Serial.print(addr[i], HEX); } } Ну или без ID как SergeiL сказал. Греем поочереди и определяем ху есть кто. Мне проще с ID они у меня все промаркированы и записаны. Blynk тоже очень хороший вариант.