Автоматизація вентилятора на базі 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 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів