Лайфхак: ESP32 превращаем в умный увлажнитель с Samsung SmartThings

Лайфхак: ESP32 превращаем в умный увлажнитель с Samsung SmartThings

Умный увлажнитель воздуха — это не роскошь, а необходимость для комфорта и здоровья, особенно в отопительный сезон. Современные экосистемы, такие как Samsung SmartThings, позволяют интегрировать бытовые устройства в единую систему управления. Однако покупка готового «умного» увлажнителя может стоить дорого. Решение — создать его самостоятельно на базе недорогой платформы ESP32.

Превратите ESP32 в умный увлажнитель с управлением через Samsung SmartThings: используйте Wi-Fi и MQTT для связи, подключите датчик влажности и реле для контроля увлажнителя. Это экономит деньги и даёт полную кастомизацию.

Зачем делать умный увлажнитель самому?

Рынок «умных» устройств растёт, но цены остаются высокими. Увлажнители с поддержкой Wi-Fi и интеграцией в SmartThings стоят от 10 000 рублей и выше. При этом функционал часто ограничен: нельзя точно настроить гистерезис, нет поддержки внешних датчиков или сложных сценариев. Самодельное решение на базе ESP32 решает эти проблемы.
ESP32 — это микроконтроллер с Wi-Fi и Bluetooth, мощным процессором и низким энергопотреблением. Он идеально подходит для IoT-проектов. Стоимость платы — от 400 рублей. В сочетании с датчиком DHT22 или SHT30 и реле на 5 В, общая цена проекта не превышает 1 500 рублей. Это в 5–7 раз дешевле готовых аналогов.
Кроме экономии, вы получаете полный контроль. Можно программировать логику работы, добавлять уведомления, интегрировать с другими системами (например, Home Assistant), использовать внешние API. Такое устройство легко модернизировать: например, добавить OLED-дисплей или подсветку.

Полезно знать: ESP32 поддерживает OTA-обновления прошивки по Wi-Fi, что позволяет менять функционал без физического доступа к плате.

Необходимые компоненты и их выбор

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

  • Микроконтроллер: ESP32 DevKit V1 или любая другая плата с Wi-Fi и достаточным количеством GPIO-пинов.
  • Датчик влажности и температуры: DHT22 (AM2302) — бюджетный вариант, или SHT30/31 — более точный и стабильный.
  • Реле: одноканальное реле на 5 В, способное коммутировать нагрузку до 10 А (для большинства увлажнителей достаточно).
  • Блок питания: 5 В / 2–3 А для питания ESP32 и реле. Лучше использовать отдельный блок, не перегружая USB-порт.
  • Печатная плата или макетная плата: для надёжного соединения компонентов.
  • Корпус: можно взять от старого устройства или распечатать на 3D-принтере.
Компонент
Рекомендуемая модель
Цена (руб.)
Особенности
Микроконтроллер
ESP32 DevKit V1
400–600
Wi-Fi, 38 GPIO, USB-UART
Датчик влажности
SHT30
600–800
Точность ±2%, I2C интерфейс
Реле
SRD-05VDC-SL-C
150–200
Нормально разомкнутое, 10 А
Блок питания
5 В / 2.5 А
300–500
Стабилизированный, с защитой
«Выбирайте SHT30 вместо DHT22: он работает по шине I2C, не блокирует процессор при чтении и обеспечивает стабильные показания даже при резких перепадах.» — Алексей, инженер по встраиваемым системам

Сборка и подключение: пошаговая инструкция

Шаг 1: Подготовка компонентов

Подключите ESP32 к компьютеру через USB. Убедитесь, что драйверы установлены и плата определяется в Arduino IDE. Затем подготовьте макетную плату и перемычки.

Шаг 2: Подключение датчика

Для SHT30:

  • VCC → 3.3 В на ESP32
  • GND → GND
  • SCL → GPIO 22 (SCL)
  • SDA → GPIO 21 (SDA)

Для DHT22:

  • VCC → 3.3 В
  • GND → GND
  • Data → любой GPIO, например, 4
  • Параллельно Data и VCC подключите резистор 4.7 кОм

Шаг 3: Подключение реле

  • VCC реле → 5 В (внешний блок питания)
  • GND → общий GND с ESP32
  • IN → GPIO 12 (или другой свободный пин)
  • COM реле → один провод от сети 220 В
  • NO (нормально разомкнутое) → провод к увлажнителю
  • Второй провод от сети → напрямую к увлажнителю
Полезно знать: Не подавайте 5 В на пины ESP32 — они работают на 3.3 В. Используйте только цифровые выходы для управления реле.

Шаг 4: Финальная проверка

Перед включением проверьте все соединения. Убедитесь, что цепи 220 В изолированы, а реле закрыто в корпус. Подключите питание и загрузите тестовый скетч для проверки датчика.

  1. Откройте Arduino IDE.
  2. Добавьте библиотеку Adafruit_SHT31 или DHT sensor library.
  3. Загрузите пример чтения данных.
  4. Откройте монитор порта — должны появиться значения влажности.

Прошивка ESP32: настройка прошивки и MQTT

Для интеграции с SmartThings используется протокол MQTT. ESP32 будет публиковать данные о влажности и принимать команды на включение/выключение.

Настройка среды разработки

Установите в Arduino IDE поддержку ESP32:

  • Файл → Настройки → Дополнительные URL для менеджера плат: https://dl.espressif.com/dl/package_esp32_index.json
  • Инструменты → Плата → Менеджер плат → Поиск «ESP32» → Установить
  • Выберите «ESP32 Dev Module»

Установка библиотек

Через менеджер библиотек установите:

  • PubSubClient — для MQTT
  • WiFi — встроена
  • Adafruit_SHT31 — для датчика
  • ArduinoJson — для формирования JSON-сообщений

Код прошивки (основные части)

«`cpp
#include
#include
#include
const char* ssid = «ВАШ_ВАЙФАЙ»;
const char* password = «ПАРОЛЬ»;
const char* mqtt_server = «IP_БРОКЕРА»; // Например, Raspberry Pi с Mosquitto
WiFiClient espClient;
PubSubClient client(espClient);
Adafruit_SHT31 sht30 = Adafruit_SHT31();
void setup() {
Serial.begin(115200);
setup_wifi();
client.setServer(mqtt_server, 1883);
client.setCallback(callback);
}
void callback(char* topic, byte* payload, unsigned int length) {
String message = «»;
for (int i = 0; i < length; i++) {
message += (char)payload[i];
}
if (message == "ON") digitalWrite(RELAY_PIN, HIGH);
else if (message == "OFF") digitalWrite(RELAY_PIN, LOW);
}
«`
Данные отправляются каждые 30 секунд:
«`cpp
void sendHumidity() {
float h = sht30.readHumidity();
if (isnan(h)) return;
StaticJsonDocument doc;
doc[«humidity»] = h;
doc[«status»] = digitalRead(RELAY_PIN) ? «on» : «off»;
char jsonBuffer[100];
serializeJson(doc, jsonBuffer);
client.publish(«sensors/humidity», jsonBuffer);
}
«`

Полезно знать: Используйте статический IP для ESP32 в локальной сети, чтобы избежать проблем с изменением адреса после перезагрузки.

Интеграция с Samsung SmartThings

SmartThings не поддерживает MQTT напрямую. Нужен промежуточный сервер — шлюз. Самый простой вариант — Mosquitto + Node-RED + SmartThings Edge.

Вариант 1: Mosquitto + Node-RED

  • Установите Mosquitto на Raspberry Pi или NAS.
  • Настройте Node-RED: добавьте узлы MQTT in/out и HTTP request.
  • Создайте поток: MQTT → данные влажности → преобразование → HTTP POST в SmartThings Cloud API.

Вариант 2: SmartThings Edge (рекомендуется)

SmartThings Edge позволяет запускать пользовательские драйверы на хабе. Преимущества:

  • Локальное управление без облака
  • Высокая скорость реакции
  • Работает при отсутствии интернета

Создайте Device Handler и Driver:

  • Определите устройство как «Moisture Sensor» и «Switch».
  • Настройте подписку на MQTT-топики.
  • Добавьте команды ON/OFF.

В приложении SmartThings:

  1. Добавьте новое устройство.
  2. Выберите «Увлажнитель» (если создано вручную).
  3. Привяжите к Wi-Fi и MQTT-серверу.
«Edge-драйверы — будущее SmartThings. Они безопаснее, быстрее и не зависят от стабильности облачных сервисов.» — Разработчик IoT-решений

Автоматизация: сценарии использования

Теперь, когда увлажнитель в системе, можно создавать автоматизации.

  • Поддержание комфортной влажности: если ниже 40% — включить, выше 55% — выключить.
  • Ночной режим: с 23:00 до 7:00 поддерживать 50% без уведомлений.
  • Интеграция с погодой: если на улице мороз — активировать увлажнитель при входе в дом.
  • Уведомления: если влажность падает ниже 30% — отправить push в SmartThings.

Пример правила в Node-RED:

  1. MQTT in → топик sensors/humidity
  2. Функция: анализ JSON, сравнение с порогом
  3. MQTT out → команда включения реле
  4. Telegram out → уведомление
Полезно знать: Используйте гистерезис (разница между включением и выключением) минимум 5%, чтобы избежать частого срабатывания реле.

Экспертное мнение

При создании IoT-устройств важно соблюдать баланс между функциональностью, безопасностью и простотой. Умный увлажнитель на ESP32 — отличный пример DIY-подхода, который реально экономит деньги и повышает качество жизни.
Основные принципы:

  • Всегда изолируйте цепи 220 В. Используйте прозрачные корпуса для контроля состояния.
  • Не размещайте датчик влаги рядом с увлажнителем — пар исказит показания.
  • Настройте минимальный интервал опроса датчика — 30 секунд, чтобы продлить его срок службы.
  • Используйте логирование: сохраняйте данные во временной ряд (InfluxDB) для анализа.

Для долгосрочной эксплуатации рекомендуется:

  • Добавить защиту от сухого хода (датчик уровня воды).
  • Использовать SSD-реле вместо механического, если требуется частое включение.
  • Реализовать fallback-режим: если Wi-Fi отключён, увлажнитель работает по последним настройкам.

Вопросы и ответы

Можно ли использовать ESP8266 вместо ESP32?
Да, ESP8266 (например, NodeMCU) тоже подойдёт. У него меньше памяти и GPIO, но для простого увлажнителя этого достаточно. Главное — убедиться, что хватит пинов и места под прошивку.
Безопасно ли управлять 220 В через реле?
Да, при правильной изоляции и использовании качественного реле. Обязательно поместите всю силовую часть в закрытый корпус. Не работайте с сетью под напряжением.
Как добавить управление по Bluetooth?
ESP32 поддерживает BLE. Можно реализовать вторичный канал управления: например, через мобильное приложение при отсутствии Wi-Fi. Но основной интерфейс — Wi-Fi и SmartThings.
Что делать, если SmartThings не видит устройство?
Проверьте: доступность MQTT-брокера, правильность топиков, авторизацию в SmartThings API. Используйте логи Node-RED или mosquitto_sub для диагностики.
Можно ли добавить дисплей?
Да. Подключите OLED 0.96″ по I2C. Отображайте текущую влажность, статус и время. Это удобно, если смартфон вне зоны досягаемости.

Заключение

Создание умного увлажнителя на базе ESP32 — это практичный, безопасный и экономически выгодный проект. Он демонстрирует силу открытых технологий и гибкость IoT-экосистем. Интеграция с Samsung SmartThings делает устройство частью единой системы «умного дома», а не изолированной «игрушкой».

Такой подход позволяет не только сэкономить, но и глубже понять принципы работы умных устройств. Вы получаете полностью кастомизируемый прибор, который можно адаптировать под свои нужды — от простого включения по расписанию до сложной автоматизации с машинным обучением.
  • ESP32 — мощная и недорогая платформа для IoT.
  • Интеграция с SmartThings возможна через MQTT и Edge-драйверы.
  • Самодельное устройство дешевле и гибче коммерческих аналогов.
  • Безопасность — приоритет: изолируйте силовые цепи и используйте качественные компоненты.
  • Автоматизация открывает возможности для комфортного и здорового микроклимата.
⚠️ Дисклеймер — нажмите, чтобы развернуть

Материалы, опубликованные в разделе «Блог» на сайте RU DESIGN SHOP (rudesignshop.ru), носят исключительно информационный и ознакомительный характер и не являются руководством к действию, финансовой рекомендацией, медицинской услугой, ветеринарным назначением либо рекламой товаров и услуг, включая азартные игры. Публикации не содержат призывов к участию в азартных играх и не направлены на продвижение соответствующих операторов.

Безопасность применения товаров и веществ: при использовании строительных материалов, бытовой химии, пестицидов и агрохимикатов необходимо строго следовать инструкциям производителя и действующему законодательству Российской Федерации, включая Федеральный закон РФ от 19.07.1997 № 109-ФЗ «О безопасном обращении с пестицидами и агрохимикатами».

Упоминание товарных знаков, брендов и организаций носит исключительно информационный характер и не означает наличие партнёрских отношений или одобрения со стороны правообладателей.

Материалы, содержащие сведения о медицинских, ветеринарных или косметических средствах, представлены в справочных целях и не являются медицинской консультацией или назначением. Перед применением рекомендуется обратиться к врачу, ветеринарному специалисту или иному сертифицированному профессионалу.

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

Правовая ответственность: решения, принятые на основе опубликованной информации, пользователь принимает самостоятельно и на свой риск; редакция и авторы несут ответственность в пределах, установленных законодательством Российской Федерации.

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

Упоминание организаций с ограниченным статусом: компания Meta Platforms Inc. (социальные сети Facebook и Instagram) признана экстремистской организацией решением суда РФ, её деятельность запрещена на территории Российской Федерации; любые упоминания приводятся исключительно в информационных целях.

Авторские права и источники: информация собирается из открытых источников; её актуальность указывается на дату публикации и может изменяться.

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

Персональные данные и cookies: сайт использует cookies и обрабатывает персональные данные пользователей в соответствии с Федеральным законом № 152-ФЗ «О персональных данных» и Политикой конфиденциальности RU DESIGN SHOP.

Мнения авторов могут не совпадать с позицией государственных органов или коммерческих организаций, упомянутых в материалах.