Автоматизація вентилятора на базі ESP-01s(1mb) та DHT-11
Вітаю!
Чесно кажучи, якби не зауваження Богдан Свердлюк , цього матеріалу не було б. Я ставив собі заурядне завдання — мета була скоротити час, коли вентилятор у ванній кімнаті жре електрику, створює шум та краде в мене десь під 100 кубів теплого повітря за годину. От тільки не кажіть, що там одразу оселиться пліснява, якщо його вимкнути. Взимку тяга доволі добра й в пасивному режимі, за рахунок парціального тиску та перепаду температур, потрібний обмін буде. Влітку — дійсно, потрібна більш активна зміна повітря. Тому було вирішено зробити вентилятор «розумним» та керованим. В мене розгорнутий Home Assistant на базі маленького ПК з N100. Я потроху, маючи зараз невеличкий запас вільного часу, переводжу всі девайси з хмари TUYA на локальну прописку, вивчаю побутову серію МК ESP. Почав, звичайно з найдешевшого та найпростішого — це ESP-01s з чіпом ESP2866 та 1 МБ пам’яті на борту. От така малеча:
Оновлений Wi-Fi модуль ESP8266 версії ESP-01S на базі мікросхеми ESP8266EX із вбудованим стеком протоколу TCP/IP та керуванням AT-командами. Чіп створений для використання в розумних розетках, mesh-мережах, IP-камерах, бездротових сенсорах, електроніці, тощо.
Передбачено два варіанти використання чіпа:
1) міст UART-WIFI, коли модуль на базі ESP8266 підключається до існуючого рішення на базі будь-якого іншого мікроконтролера та керується AT-командами, забезпечуючи зв’язок рішення з інфраструктурою Wi-Fi;
2) реалізуючи нове рішення, що використовує сам чіп ESP8266 як керуючий мікроконтролер.
Характеристики версії ESP-01S :
- підтримка WiFi протоколів 802.11 b/g/n
- Wi-Fi Direct (P2P), soft-AP
- вбудований стек TCP/IP
- вбудований TR перемикач, balun, LNA, підсилювач потужності та відповідність мережі
- вбудований PLL, регулятори, та система управління живленням
- вихідна потужність +19.5 дБм у режимі 802.11b
- пам’ять програм: 1 МБ (8 Мбіт)
- SDIO 2.0, SPI, UART
- STBC, 1×1 MIMO, 2×1 MIMO
- пробудження та відправлення пакетів: до 22 мс
- споживання в режимі Standby до 1.0 мВт (DTIM3)
- розміри: 24.5×14 мм (тобто в вентилятор аж проситься розмірами)
Контакти:
- Vcc — живлення, +3,3В (максимально 3,6В)
- GND — загальний
- TXD — передача даних (рівень 3,3В)
- RXD — прийом даних (рівень 3,3В)
- CH_PD — вимкнення модуля (низький рівень активний, для включення модуля слід подати Vcc)
- GPIO0 — виведення загального призначення 0 (але є нюанси)
- GPIO2 — виведення загального призначення 2 (LED blue, low-on)
- RST — скидання модуля (низький рівень активний)
Посилання:
Спочатку була спроба програмувати в середовище Ардуіно, але програмер з мене не аби-який, було це в часи ще Турбо Паскаля. Тому швиденько я з цьго втомився. Наступна спроба була зробити прошивку на базі Tasmota, але теж щось не пощастило — тому було вирішено робити в додатку ESPHome інструментами самого Home Assistant.
Думаю як з програмування то не дуже цікаво як воно все вийшло, бо я в цій темі дуже недавно. По докам було знайдено як запрограмувати в конфігураційному файлі сенсор DHT11, до речі сенсор дуже не сподобався — показання не дуже точні, але для мого проєкту він підійшов. До того ж він знайшовся в господарстві. Як і твердотільне реле SSR-41 fda. Замість нього можна будь-яке, щоб працювало від 3,3в та мало можливість вмикати навантаження 220 в вентилятора (в мене 29 Вт, тобто десь струм до 0,2 А) на силових контактах. Для реле такого типу не потрібно використовувати ключі на транзисторі, на відміну від звичайного реле. В створенні коду мені дуже люб’язно допоміг Богдан Свердлюк , бо дуже велике було бажання крім автоматизації вмикання вентилятору за умов підвищення вологості, ще мати можливість встановлювати значення initial_value, а це вже було вище мого рівня знань в ESPHome. З допомогою все вийшло, але все ж потім довелося помучатись з тим, що контролер не бажав завантажуватися, йому не подобалося реле на GPIO00. Були припаяні резистори для підтяжки, але все одно у момент завантаження на вході GPIO00 був логічний нуль і контролер не грузився. Довелося лізти в опис внутрішньої структури ESP8266EX та розбиратися. Було внесено зміни в схему — реле переїхало знизу вверх — плюсом на живлення — мінусом на GPIO00. Після цього все запустилося як слід. Кофігураційний файл для девайса виглядав таким чином:
esp-01-dht11-switch_slider.yaml
esphome: name: esp01-dht11-switch friendly_name: esp01-dht11-switch esp8266: board: esp01_1m # Enable logging logger: # Enable Home Assistant API api: encryption: key: "ваш ключ" ota: - platform: esphome password: "ваш пасворд" wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Esp01-Dht11-Switch_hotspot" password: !secret fallback_wifi_password captive_portal: # 15-100 threshold value set number: - platform: template name: "Humidity Threshold" id: humidity_threshold min_value: 15 max_value: 100 step: 5 optimistic: true initial_value: 40 # Fan DHT-11 sensor configuration sensor: - platform: dht pin: 2 id: fan_sensor temperature: name: "Temperature" humidity: id: fan_sensor_humidity name: "Humidity" on_value: then: - lambda: |- if (id(fan_sensor_humidity).state > id(humidity_threshold).state) { id(fan_switch).turn_on(); } else if (id(fan_sensor_humidity).state < id(humidity_threshold).state - 1) { id(fan_switch).turn_off(); } update_interval: 30s # Fan switch configuration entry switch: - platform: gpio name: "Fan_switch" id: fan_switch pin: number: GPIO00 # SSR connected "+" to Vcc and "-" to GPIO00 inverted: True
Схема була зібрана швиденько.
Живлення беру 220 в в самому вентиляторі. У якості блока живлення 220 в на 3,3в постійного струму взяв самий маленький Hi-Link HLK-PM03 та дуже добре описану схему звідси — тільки не для 5 в, а для напруги 3,3в. Всі компоненти дуже маленькі та легко розміщуються в невеличкому просторі звичайного вентилятора 120 мм. Все компанував на маленьких роз’ємах з під камер відеонагляду. Відкриті частини плат закрив від корозії та пилу двокомпонентним лаком.
BOM:
1. ESP-01s разом з DHT11 — 73 грн, але краще взяти DHT22 — діапазон ширше, вимірювання точніше.
2. Hi-Link HLK-PM03 — 71 грн
3. Реле SSR-41FDA — 43 грн
4. З’єднувальни дроти та роз’єми — які завгодно, це ваш вибір.
Всього від ідеї до щастя — 187 грн, 10 днів очикування з Аліекспрес. Але, та найголовніше — допомога професіонала!!!
А ось як виглядає цей проєкт в НА
До речі — можна порівняти DHT11 з BMP280 (останні два рядка). На граничному значенні вологості (20%) — бачимо, що DHT11 — дає велику помилку. Але для мене було важливо, щоб вентилятор вмикався при значення більше за
8 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів