Лайфхак: ESP32 превращаем в умный увлажнитель с Samsung SmartThings
Умный увлажнитель воздуха — это не роскошь, а необходимость для комфорта и здоровья, особенно в отопительный сезон. Современные экосистемы, такие как Samsung SmartThings, позволяют интегрировать бытовые устройства в единую систему управления. Однако покупка готового «умного» увлажнителя может стоить дорого. Решение — создать его самостоятельно на базе недорогой платформы ESP32.
- Зачем делать умный увлажнитель самому?
- Необходимые компоненты и их выбор
- Сборка и подключение: пошаговая инструкция
- Шаг 1: Подготовка компонентов
- Шаг 2: Подключение датчика
- Шаг 3: Подключение реле
- Шаг 4: Финальная проверка
- Прошивка ESP32: настройка прошивки и MQTT
- Настройка среды разработки
- Установка библиотек
- Код прошивки (основные части)
- Интеграция с Samsung SmartThings
- Вариант 1: Mosquitto + Node-RED
- Вариант 2: SmartThings Edge (рекомендуется)
- Автоматизация: сценарии использования
- Экспертное мнение
- Вопросы и ответы
- Заключение
Зачем делать умный увлажнитель самому?
Рынок «умных» устройств растёт, но цены остаются высокими. Увлажнители с поддержкой Wi-Fi и интеграцией в SmartThings стоят от 10 000 рублей и выше. При этом функционал часто ограничен: нельзя точно настроить гистерезис, нет поддержки внешних датчиков или сложных сценариев. Самодельное решение на базе ESP32 решает эти проблемы.
ESP32 — это микроконтроллер с Wi-Fi и Bluetooth, мощным процессором и низким энергопотреблением. Он идеально подходит для IoT-проектов. Стоимость платы — от 400 рублей. В сочетании с датчиком DHT22 или SHT30 и реле на 5 В, общая цена проекта не превышает 1 500 рублей. Это в 5–7 раз дешевле готовых аналогов.
Кроме экономии, вы получаете полный контроль. Можно программировать логику работы, добавлять уведомления, интегрировать с другими системами (например, Home Assistant), использовать внешние API. Такое устройство легко модернизировать: например, добавить OLED-дисплей или подсветку.
Необходимые компоненты и их выбор
Для сборки умного увлажнителя понадобится несколько ключевых элементов. Каждый из них должен быть совместим по напряжению, току и протоколам связи.
- Микроконтроллер: 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 |
Стабилизированный, с защитой |
Сборка и подключение: пошаговая инструкция
Шаг 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 (нормально разомкнутое) → провод к увлажнителю
- Второй провод от сети → напрямую к увлажнителю
Шаг 4: Финальная проверка
Перед включением проверьте все соединения. Убедитесь, что цепи 220 В изолированы, а реле закрыто в корпус. Подключите питание и загрузите тестовый скетч для проверки датчика.
- Откройте Arduino IDE.
- Добавьте библиотеку
Adafruit_SHT31илиDHT sensor library. - Загрузите пример чтения данных.
- Откройте монитор порта — должны появиться значения влажности.
Прошивка 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);
}
«`
Интеграция с 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:
- Добавьте новое устройство.
- Выберите «Увлажнитель» (если создано вручную).
- Привяжите к Wi-Fi и MQTT-серверу.
Автоматизация: сценарии использования
Теперь, когда увлажнитель в системе, можно создавать автоматизации.
- Поддержание комфортной влажности: если ниже 40% — включить, выше 55% — выключить.
- Ночной режим: с 23:00 до 7:00 поддерживать 50% без уведомлений.
- Интеграция с погодой: если на улице мороз — активировать увлажнитель при входе в дом.
- Уведомления: если влажность падает ниже 30% — отправить push в SmartThings.
Пример правила в Node-RED:
- MQTT in → топик sensors/humidity
- Функция: анализ JSON, сравнение с порогом
- MQTT out → команда включения реле
- Telegram out → уведомление
Экспертное мнение
При создании IoT-устройств важно соблюдать баланс между функциональностью, безопасностью и простотой. Умный увлажнитель на ESP32 — отличный пример DIY-подхода, который реально экономит деньги и повышает качество жизни.
Основные принципы:
- Всегда изолируйте цепи 220 В. Используйте прозрачные корпуса для контроля состояния.
- Не размещайте датчик влаги рядом с увлажнителем — пар исказит показания.
- Настройте минимальный интервал опроса датчика — 30 секунд, чтобы продлить его срок службы.
- Используйте логирование: сохраняйте данные во временной ряд (InfluxDB) для анализа.
Для долгосрочной эксплуатации рекомендуется:
- Добавить защиту от сухого хода (датчик уровня воды).
- Использовать SSD-реле вместо механического, если требуется частое включение.
- Реализовать fallback-режим: если Wi-Fi отключён, увлажнитель работает по последним настройкам.
Вопросы и ответы
Заключение
Создание умного увлажнителя на базе 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.
Мнения авторов могут не совпадать с позицией государственных органов или коммерческих организаций, упомянутых в материалах.