Многоканальный термометр на esp8266 и ds18b20

Тема в разделе "ESP8266, ESP32", создана пользователем LekSPS, 31 мар 2022.

  1. LekSPS

    LekSPS Нуб

    Всем доброго времени суток!
    Люди добрые, подскажите никто не встречал готовый проект (схема, прошивка, описание) по сборке многоканального термометра на контроллере ESP8266 (или аналогичных ESP32, NodeMCU-CH340 и т.п.) с применением датчиков DS18B20 (4-5 датчиков) с выводом измеряемой температуры на страницу Web-сервера, поднятого на самом контроллере. Одноканальный и двухканальный вариант подобного девайса встречал на необъятных просторах интернета, а на 4-5 каналов сколько не искал, готового решения не нашел. Самому нечто подобное сваять к сожалению не хватает знаний и понимания. Быть может есть и такой вариант, когда на базе каждой из плат контроллера ESP8266 собирается отдельный термометр с одним датчиком DS18B20, т.е. 4-5 плат, и потом показания каждого из термометров передаются на один сервер какого-либо контроллера и при открытие страницы отображаются показания всех 5-и термометров (с экономической точки зрения такой вариант по-дороже по железу, чем первый, но не настолько критично, чтобы его не рассматривать в моей ситуации). Либо есть альтернативные решения данного вопроса, MQTT, Blynk, но повторюсь нужен рабочий готовый вариант с подробной инструкцией, чтобы после сборки с бубном не прыгать, а если все же придется немного попрыгать, то хотя бы понимать в каком месте это делать. Был бы благодарен за помощь!
     
  2. parovoZZ

    parovoZZ Гуру

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

    Andy16 Гик

    Ну, в какой-то мере подойдет espeasy. Не особо удобно с вебом, но зато очень просто.
     
  4. Vovka

    Vovka Гик

    Проще всего все сделать на ESP-01 и все датчики посадить на одну линию (возможно и более 5-и, не проверял). Но тут есть небольшое неудобство: нужно получить ID каждого датчика и потом их сохранить в настройках. И в случае проблемы с линией перестанут работать все датчики.
    Второй вариант. Берем, например, ESP-12 - там ног больше и соединяем по принципу нога-датчик. Отпадают неудобства первого варианта.
    Третий вариант. Ардуина + ESP-01. Ардуина опрашивает сколько нужно датчиков и передает температуру в ESP...
    Ну а ESP уже как вэб-сервер сложного ничего нет, все зависит насколько красиво все должно выводиться на экране...
    По времени это займет от пары вечеров до реализации всех хотелок заказчика.... естественно не бесплатно
     
  5. SergeiL

    SergeiL Оракул Модератор

    Получать ID и сохранять в памяти не обязательно.
    Датчики прекрасно ищутся один за другим, полученные ID потом сохраняются в массив. Можно это делать в setup().
    Но в массиве они сохранятся по возрастанию ID. Для того чтобы узнать какой датчик имеет какой порядковый номер, греем по очереди и записываем номер. Я тестировал до 6 датчиков на одной линии, никаких проблем нет. Можно и больше.

    Тут главный вопрос, что ТС нужен готовый проект, дорабатывать что либо он не готов.
     
  6. Vovka

    Vovka Гик

    Возможно, но я один раз цеплял на одну линию, но это было очень давно... Теперь только по одному ;)
     
  7. Airbus

    Airbus Радиохулиган Модератор

    А какая проблема подцепить 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 тоже очень хороший вариант.
     
    Последнее редактирование: 2 апр 2022