Терморегулятор на ESP8266 (Термостат)

Сегодня расскажу как с помощью модуля NodeMCU (ESP8266), реле и датчика DS18B20 сделать простой терморегулятор, для поддержания заданной температуры в помещении.

Необходимые детали:
► Контроллер NodeMCU v.2 (ESP8266) x 1 шт.
► Провода DuPont, 2,54 мм, 20 см x 1 шт.
► Датчик температуры DS18B20 x 1 шт.
► Модуль реле 2-х канальный x 1 шт.

Описание.
Алгоритм программы прост, c помощью NodeMCU считываем температуру с датчика DS18B20 и полученные данные отображаем на WEB сервере. Так же, на WEB есть дополнительное поле, где можем задать температуру выключения реле, по сути получаем терморегулятор, для обогрева (можно сделать для охлаждения помещения, смотрите описание скетча). Все данные сохраняются в EEPROM.

Подключение.
В данном примере используется контроллер NodeMCU v.2 (ESP8266), двух канальное реле и датчик DS18B20. Подключение датчика DS18B20 осуществляется по интерфейсу 1-Wire (однопроводной линии), который подключаемся к модулю NodeMCU (вывод GPIO4), так-же, для работы интерфейса 1-Wire необходим подтягивающий резистор на 4.7 кОм. Далее подключаем двух канальное реле, вывод IN1 к модулю NodeMCU (вывод GPIO2), вывод GND и VCC подключаем к выводам VCC и GND на модуль NodeMCU.

Установка библиотеки:
В данном примере используем сторонние библиотеки «ESPAsyncTCP», «ESPAsyncWebServer» «DallasTemperature» скачать их можно в конце статьи. Так же, не забываем что необходимо установить NodeMCU в среду разработки Arduino IDE, для этого воспользуйтесь этой статьей. После установки библиотек перезапустите, среду разработки Arduino IDE.

Программа:
Теперь, у нас все готово, копируем скетч в Arduino IDE или скачайте готовый файл и загружаем его в NodeMCU, незабываем указать свои данные сети. 

  Скачать скетч

Определение IP (ESP8266):
В примере используется статический IP, но можно убрать строчки 13,14 и 15 и получим динамический IP. Чтобы узнать какой у NoDEMCU IP, откроем мониторинг порта с выставленной скоростью «115200», в моем случаи сеть выдала «192.168.2.110».

Открываем любой браузер (компьютер должен находиться в той же сети, что и ESP8266 модуль), вводим IP-адрес (192.168.2.110) и нажимаем Enter.

Ссылки:
 Библиотека ESPAsyncWebServer
  Библиотека ESPAsyncWebServer
  Библиотека DallasTemperature
  Библиотека OneWire v.2.2

Купить на Aliexpress
  Плата NodeMCU V2
  Провода DuPont, 2,54 мм, 20 см
  Модуль реле 2-х канальный
  Датчик температуры DS18b20

Читайте также:

комментариев 6

  1. Максим:

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

    • Доброго дня. проблема в записи и чтении в еепром. если вместо него подставить простую переменную, то все работает.

    • на самом деле достаточно строку «EEPROM.get(0, inputMessage);» из основного цикла переместить в «setup». и все заработало.

  2. Oleh:

    Уважаемый СЕРГЕЙ! Прошу уточнить, как сделать переключение на нагрев. Для «чайника» 🙂

    • Сергей:

      Здравствуйте, поменяйте в строке 123 на if(temperature > inputMessage.toFloat()) и 129 else if(temperature < inputMessage.toFloat())

  3. Олег:

    Уважаемый автор!
    Не понял, как настроить Терморегулятор на нагрев

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *