Автоматизація вентилятора на базі 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 — дає велику помилку. Але для мене було важливо, щоб вентилятор вмикався при значення більше за 35-40%, і він виконує свої обов’язки.

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось5
До обраногоВ обраному3
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Є вентилятори з вбудованим датчиком вологості. Це не вирішує проблему?

Звісно, вирішує, але є 2 але:
— цей вент коштує як мінімун на 400 грн дорожче за звичайний
— він не підключиться до розумного будинку, а якщо це приточно витяжна система — то це не дуже добре, тому що розумний дім — це комплексна домашня екосистема.

У мене вентилятор вмикається разом зі світлом, і приходиться лишати його після використання душу. Іноді мені здається, що додатково не завадив би вентилятор, що «колошматив» повітря в приміщенні для швидшого висихання стін після душу.

Дякую за відгук!
Саме це питання і вирішується описаним в топіку системним рішенням. До того ж ви вільні додати туди ще пару трійку правил про температуру або рахувати якусь залежність від вологості та температурі разом, причому ці правила можна додати як в прошивку контролера ( і він буде ці правила відпрацьовувати, навіть без сервера смарт-будинку), як і додати автоматизацію на сервері розумного дому.

Я взагалі ніколи не вмикаю цей вентилятор у ванній, ніякої плісняви взагалі і близько немає ні влітку (коли повітря саме по собі сухе), ні взимку (коли воно вилущується обігрівом). ЩЯРНТ?

Квартири, будинки, ванни і вентиляції у всіх різні. Можливо у вас хороша природна вентиляція. Якщо опустити питання технічної реалізації то в цілому тема дуже корисна.

Дякую за відгук!
Так і я зараз його теж не вмикаю). Він сам за цим слідкує) — в цьому і був сенс проєкту. А якщо серйозно — це звичайно залежить від багатьох параментрів споруди, особливостей клімату тощо. Особливо залежить вологість в сервісних кімнатах від манери провітрювання та віку споруди. Від способу вентиляції — природна або приточно-витяжна.

Приєднуюся до попередніх коментарів, у мене у колеги ванна кімната і туалет через стіну межують з вулицею, ті стіни холодні взимку і розсадник конденсату і плісняви поки не утеплив ззовні і не зробив прямий канал на вулицю.
В мене ж ці приміщення в «середині квартири» і межують з аналогічними приміщенями сусідів. Тому вони «теплі».

Підписатись на коментарі