Сборка DIY умного термостата типа NEST на Node-RED и Raspberry Pi
Управляйте температурой дома из любой точки с кастомным NEST-подобным термостатом на Raspberry Pi, Node-RED и прошивке ESPurna.
Обзор проекта
После жонглирования множественными сменами работы, я нашел невозможным вручную крутить старый домашний термостат каждую неделю. Нужен был удаленный способ включить/выключить отопление до прихода домой — и экономить энергию пока я в пути.
Я выбрал репликацию элегантного NEST дизайна, используя недорогой ITEAD 1-CH Wi-Fi реле и датчик температуры/влажности DHT22. Результат — полностью функциональный термостат, мониторящийся и управляемый с любого интернет-устройства.
Установка ПО
- Настройте Raspbian Stretch на Raspberry Pi 3.
- Установите Mosquitto MQTT брокер на Pi.
- Установите Node-RED на Pi.
- Установите Atom + PlatformIO на ПК для разработки прошивки.
Хардварный хак
ITEAD 1-CH модуль — 5V/12V Wi-Fi реле с проприетарной прошивкой EWeLink. Чтобы избежать vendor lock-in, я заменил её на ESPurna, open-source прошивку для ESP8266 устройств. ESPurna поддерживает кастомные сенсоры, делая её идеальной для добавления DHT22 к реле.
Я запаял следующие пины на модуле PSA-01 (ядро ESP8266):
- GND, 3V3 и GPIO14 к DHT22.
- TX, RX и GND для прошивки.
Сборка кастомной прошивки
После установки Atom+PlatformIO, скачайте последний релиз ESPurna и распакуйте. Добавьте папку code в новый проект через File → Add Project Folder.
Отредактируйте /config/sensors.h для включения DHT поддержки:#define DHT_SUPPORT 1 #define DHT_PIN 14
Установите env_default = itead-1ch-inching в platformio.ini. Соберите проект; успешная сборка заканчивается сообщением SUCCESS.
Для прошивки подключите USB-to-Serial адаптер к плате, удерживайте кнопку рядом с micro-USB портом при включении питания, и наблюдайте красный LED. Нажмите Upload в PlatformIO; адаптер мигнет, пока прошивка пишется во флеш.
How to Upload ESPurna Custom Firmware with PlatformIO
После прошивки отключите адаптер, подключите DHT22 (3V3, GND, GPIO14), и запитайте устройство 5V мобильным зарядником.
Устройство загружается в soft-AP DEVICE_XXXXXX (пароль: fibonacci). Подключитесь к нему и откройте https://192.168.4.1 для настройки Wi-Fi и безопасности.
Настройка термостата
Подключившись к домашней сети, веб-интерфейс ESPurna раскрывает показания сенсоров, статус 스위ча и множество MQTT, NTP, HTTP и home-automation интеграций. Настройте детали MQTT брокера под Mosquitto инстанс на вашем Raspberry Pi.
Node-RED получит данные сенсоров через MQTT и реализует вашу логику управления — включение/выключение отопления на основе температурных порогов или расписаний. Редактор потоков также позволяет создать кастомный дашборд для удаленного мониторинга.
С системой на месте, вы теперь можете задавать желаемые температуры, планировать отопление и видеть влажность в реальном времени — всё с телефона, планшета или ноутбука.
Следующие шаги
Исследуйте продвинутые фичи вроде Amazon Alexa интеграции, Thingspeak логирования данных или автоматизированного создания расписаний в Node-RED. Open-source природа ESPurna и Node-RED означает, что вы можете расширять этот проект бесконечно.
Читайте подробнее: DIY Virtual Alike NEST Thermostat with Node-RED
Производственный процесс
- Экономичная карта температур помещений с дешевыми датчиками
- Создание бюджетного детектора плача ребенка на Raspberry Pi — DIY-руководство
- Начало работы с IoT и MQTT: урок без кода для ESP8266
- Ретро-часы на индикаторах Numitron с Arduino: просто, надёжно, экономно
- Освоение E3.Cable: позиционирование вставок разъемов для оптимальной производительности
- Устройство точного измерения давления и расхода воздуха на аналоговом датчике
- Управление Roomba Create 2 через Arduino и Android: пошаговое руководство
- Сборка DIY VR-скейтборда на Arduino, Google Cardboard и Bluetooth
- Портативный бесконтактный термометр на Arduino Nano с Android-приложением
- Развертывание Node-RED на PLCnext с Docker: пошаговое руководство