RSS блога
Подписка
"Умный" вентилятор для ванной комнаты из Wi-Fi реле Itead Sonoff TH и оптрона
- Цена: $13.3
- Перейти в магазин
Всем привет! В своем первом посте я постараюсь рассказать как к обычному вентилятору для ванной добавить таймер, датчик влажности и, конечно же, Wi-Fi :)
Для этого нам понадобятся:
Итого: ~ $13.3 (без доставки)
Если кто не знает, то Itead Sonoff TH это очень популярное реле 220 В с микроконтроллером ESP8266 который поддерживает управление по Wi-Fi и подключение внешнего датчика температуры/влажности. Это реле имеет установленную заводскую прошивку для управления с мобильного телефона, но позволяет установить любую другую прошивку, если возможностей заводской недостаточно.
Таймер нужен для того, чтобы выключать вентилятор не сразу, после того как выключен свет, а спустя какое-то фиксированное время. Датчик влажности помогает выключить вентилятор только после того, как влажность в ванной упадет ниже какой-то границы после принятия душа.
Для использования wifi-реле, к вентилятору должна быть подведена постоянная фаза (с этим, конечно, могут быть сложности), а фаза от выключателя, думаю, и так уже у всех там есть.
Вот оптрон как раз и нужен для того, чтобы заставить понимать реле когда выключатель включен и выключен. Эта модель выдает на выход 3.3V, когда выключатель выключен и 0, когда включен.
Как оказалось, оптрон с aliexpress идеально подходит под реле от Itead. Такое чувство, что они даже созданы друг для друга :) Места внутри корпуса для него там достаточно, и даже отверстие на плате у оптрона находится в том же месте, где и столбик выключателя у Itead Sonoff, только пришлось рассверлить отверстие до 3.5 мм и откусить шляпку выключателя (ее можно потом приклеить обратно), чтобы посадить плату оптрона. Также у платы оптрона отпаял заводские клеммы и произолировал снизу несколькими кусочками изоленты, чтобы не возник случайный контакт. Вот мой результат:
Высоковольтные контакты оптрона припаял снизу к контактам нуля и земли (она для вентилятора не используется), а питание и данные подсоединил к VCC, GND и RX на предварительно припаянной гребенке. Тут опять все идеально подошло, даже провода не пришлось перекрещивать. Вид снизу:
После этого можно обратно закрыть корпусом и подсоединить к вентилятору. Контакты реле будут использоваться так (слева направо):
L out — выход фазы на вентилятор
E — вход фазы от выключателя
L in — вход постоянной фазы
N — вход нуля
N — выход нуля на вентилятор
Я использую конструктор прошивок espurna для управления реле по протоколу MQTT, но теоретически возможно использовать любой другой конструктор прошивок и даже создать свою, чтобы оставить всю логику в микроконтроллере, а не управлять с отдельного компьютера.
У espurna есть готовая прошивка для Itead Sonoff TH, но ее пришлось немного усовершенствовать, чтобы добавить поддержку входа от оптрона. Для этого контакт оптрона, который подключен к разъему RX (GPIO 3) нужно зарегистрировать как дополнительный выключатель.
Берем файл platformio.ini, в секции [env:itead-sonoff-basic-dht-ota] к элементу build_flags нужно добавить элементы
Прошиваем как обычно (по воздуху):
После этого по MQTT топику ESPURNA_xxxxxx/button/2 публикуется «1» когда выключатель включен и 2/3/4 когда выключен (в зависимости от продолжительности, пока выключатель был включен).
Текущая влажность публикуется на топике ESPURNA_xxxxxx/humidity, а включить-выключить реле можно отправляя 1 или 0 на топик ESPURNA_xxxxxx/relay/0/set
Во всех указанных топиках xxxxxx это последние 6 шестнадцатиричных цифр MAC адреса ESP8266.
Существует очень много систем умного дома и практически все из них позволяют работать с устройствами по протоколу MQTT, но я опишу сценарий для своего фаворита — Node-RED.
Эта система позволяет настраивать сценарии используя визуальный редактор, похожий на блоксхемы, практически без использования программирования.
В моем сценарии вентилятор будет включаться через 2 минуты после включения света и выключаться через 5 минут после выключения. Также вентилятор будет работать при превышении граничного порога влажности (75%)
Мой сценарий в визуальном редакторе Node-RED выглядит так:
Краткое описание:
Элементы «collector»/«OR» в правой части обеспечиваю логическую операцию ИЛИ для двух условий включения — выключатель света или повышенная влажность.
Цепочка элементов сверху, начиная от «Switch» запускает таймер на 2 минуты при включении света и 5 минут при выключении. Так же включение света сбрасывает таймер выключения и наоборот. Это сделано для того, чтобы при включении света сразу после того как он был выключен не было лишнего выключения-включения.
Цепочка от элемента «Humidity» реализует логику гистерезиса и включает вентилятор при достижении влажности 75% и выключает, когда влажность опускается ниже 70%.
Прячем реле в вентиляционную шахту и выводим наружу датчик влажности. Вот как это получилось у меня:
Думаю что этого достаточно для повторения моей системы или просто для того чтобы понять, что вам такое не нужно :)
Ссылки еще раз:
Wi-Fi реле Itead Sonoff TH с датчиком влажности
Unnamed оптрон с aliexpress
Конструктор прошивок ESP8266 Espurna
Визуальная систем умного дома Node-RED
Для этого нам понадобятся:
- Wi-Fi реле с датчиком температуры/влажности Itead Sonoff TH10 -$7.50
- датчик температуры/влажности Si7021 — $4.30
- unnamed оптрон — $1.46
Итого: ~ $13.3 (без доставки)
Если кто не знает, то Itead Sonoff TH это очень популярное реле 220 В с микроконтроллером ESP8266 который поддерживает управление по Wi-Fi и подключение внешнего датчика температуры/влажности. Это реле имеет установленную заводскую прошивку для управления с мобильного телефона, но позволяет установить любую другую прошивку, если возможностей заводской недостаточно.
Таймер нужен для того, чтобы выключать вентилятор не сразу, после того как выключен свет, а спустя какое-то фиксированное время. Датчик влажности помогает выключить вентилятор только после того, как влажность в ванной упадет ниже какой-то границы после принятия душа.
Для использования wifi-реле, к вентилятору должна быть подведена постоянная фаза (с этим, конечно, могут быть сложности), а фаза от выключателя, думаю, и так уже у всех там есть.
Вот оптрон как раз и нужен для того, чтобы заставить понимать реле когда выключатель включен и выключен. Эта модель выдает на выход 3.3V, когда выключатель выключен и 0, когда включен.
1. Подключение оптрона к Itead Sonoff TH
Как оказалось, оптрон с aliexpress идеально подходит под реле от Itead. Такое чувство, что они даже созданы друг для друга :) Места внутри корпуса для него там достаточно, и даже отверстие на плате у оптрона находится в том же месте, где и столбик выключателя у Itead Sonoff, только пришлось рассверлить отверстие до 3.5 мм и откусить шляпку выключателя (ее можно потом приклеить обратно), чтобы посадить плату оптрона. Также у платы оптрона отпаял заводские клеммы и произолировал снизу несколькими кусочками изоленты, чтобы не возник случайный контакт. Вот мой результат:
Высоковольтные контакты оптрона припаял снизу к контактам нуля и земли (она для вентилятора не используется), а питание и данные подсоединил к VCC, GND и RX на предварительно припаянной гребенке. Тут опять все идеально подошло, даже провода не пришлось перекрещивать. Вид снизу:
После этого можно обратно закрыть корпусом и подсоединить к вентилятору. Контакты реле будут использоваться так (слева направо):
L out — выход фазы на вентилятор
E — вход фазы от выключателя
L in — вход постоянной фазы
N — вход нуля
N — выход нуля на вентилятор
2. Прошивка
Я использую конструктор прошивок espurna для управления реле по протоколу MQTT, но теоретически возможно использовать любой другой конструктор прошивок и даже создать свою, чтобы оставить всю логику в микроконтроллере, а не управлять с отдельного компьютера.
У espurna есть готовая прошивка для Itead Sonoff TH, но ее пришлось немного усовершенствовать, чтобы добавить поддержку входа от оптрона. Для этого контакт оптрона, который подключен к разъему RX (GPIO 3) нужно зарегистрировать как дополнительный выключатель.
Берем файл platformio.ini, в секции [env:itead-sonoff-basic-dht-ota] к элементу build_flags нужно добавить элементы
-DBUTTON3_PIN=3 -DBUTTON3_MODE="BUTTON_PUSHBUTTON+BUTTON_DEFAULT_HIGH"
Прошиваем как обычно (по воздуху):
pio run -t upload -e itead-sonoff-basic-dht-ota --upload-port IP_ADDR_OF_ITEAD_SONOFF_TH
После этого по MQTT топику ESPURNA_xxxxxx/button/2 публикуется «1» когда выключатель включен и 2/3/4 когда выключен (в зависимости от продолжительности, пока выключатель был включен).
Текущая влажность публикуется на топике ESPURNA_xxxxxx/humidity, а включить-выключить реле можно отправляя 1 или 0 на топик ESPURNA_xxxxxx/relay/0/set
Во всех указанных топиках xxxxxx это последние 6 шестнадцатиричных цифр MAC адреса ESP8266.
3. Настройка сценария умного дома (Node-RED)
Существует очень много систем умного дома и практически все из них позволяют работать с устройствами по протоколу MQTT, но я опишу сценарий для своего фаворита — Node-RED.
Эта система позволяет настраивать сценарии используя визуальный редактор, похожий на блоксхемы, практически без использования программирования.
В моем сценарии вентилятор будет включаться через 2 минуты после включения света и выключаться через 5 минут после выключения. Также вентилятор будет работать при превышении граничного порога влажности (75%)
Мой сценарий в визуальном редакторе Node-RED выглядит так:
Экспортированный сценарий
[{"id":"44a3c7a2.f30778","type":"mqtt in","z":"431e3de1.512e64","name":"Switch","topic":"ESPURNA_45981F/button/2","qos":"2","broker":"6ab91053.df6df","x":172.01735305786133,"y":227.01041412353516,"wires":[["3aa11ce4.896324"]]},{"id":"3aa11ce4.896324","type":"switch","z":"431e3de1.512e64","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"str"},{"t":"else"}],"checkall":"true","outputs":2,"x":322.01734924316406,"y":227.01041412353516,"wires":[["c509ca5e.23e258"],["df5a6ef6.767cd"]]},{"id":"5dd0ddc7.dddac4","type":"mqtt in","z":"431e3de1.512e64","name":"Humidity","topic":"ESPURNA_45981F/humidity","qos":"2","broker":"6ab91053.df6df","x":181.01737594604492,"y":335.0104293823242,"wires":[["8b79fbc1.36f2d8"]]},{"id":"8b79fbc1.36f2d8","type":"function","z":"431e3de1.512e64","name":"parseFloat","func":"msg.payload = parseFloat(msg.payload)\nreturn msg;","outputs":1,"noerr":0,"x":330.0173759460449,"y":335.01041889190674,"wires":[["f6ec6096.889cd"]]},{"id":"f6ec6096.889cd","type":"hysteresis","z":"431e3de1.512e64","name":"75/70","rising_threshold":"75","falling_threshold":"70","x":481.0174102783203,"y":335.0104684829712,"wires":[["297141ca.62ad6e"]]},{"id":"297141ca.62ad6e","type":"switch","z":"431e3de1.512e64","name":"","property":"edge","propertyType":"msg","rules":[{"t":"eq","v":"rising","vt":"str"},{"t":"else"}],"checkall":"true","outputs":2,"x":625.0173606872559,"y":335.01045417785645,"wires":[["a1ccaaf7.4a2788"],["ea54dd94.5aeed"]]},{"id":"c509ca5e.23e258","type":"change","z":"431e3de1.512e64","name":"1","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":462.01734924316406,"y":207.01041412353516,"wires":[["7a9f9e15.7db9e","5f2c897a.fd9078"]]},{"id":"df5a6ef6.767cd","type":"change","z":"431e3de1.512e64","name":"0","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":462.01734924316406,"y":247.01041412353516,"wires":[["113e8e0c.153032","b6a7ff33.6ffa2"]]},{"id":"a1ccaaf7.4a2788","type":"change","z":"431e3de1.512e64","name":"1","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":765.0173606872559,"y":315.01045417785645,"wires":[["defee7b.6990d18"]]},{"id":"ea54dd94.5aeed","type":"change","z":"431e3de1.512e64","name":"0","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":765.0173606872559,"y":355.01045417785645,"wires":[["defee7b.6990d18"]]},{"id":"defee7b.6990d18","type":"collector","z":"431e3de1.512e64","name":"","onlyIfChanged":true,"x":952.0173492431641,"y":267.01041412353516,"wires":[["da955d58.6a607"]]},{"id":"da955d58.6a607","type":"function","z":"431e3de1.512e64","name":"OR","func":"msg.payload = Object.keys(msg.payload).length > 0 ? 1 : 0;\nreturn msg;","outputs":1,"noerr":0,"x":951.0173377990723,"y":341.0104093551636,"wires":[["60cae434.85babc"]]},{"id":"60cae434.85babc","type":"mqtt out","z":"431e3de1.512e64","name":"Relay","topic":"ESPURNA_45981F/relay/0/set","qos":"","retain":"","broker":"6ab91053.df6df","x":945.0173492431641,"y":416.01040840148926,"wires":[]},{"id":"7a9f9e15.7db9e","type":"delay","z":"431e3de1.512e64","name":"","pauseType":"delay","timeout":"2","timeoutUnits":"minutes","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":752.0173492431641,"y":207.01041412353516,"wires":[["defee7b.6990d18"]]},{"id":"113e8e0c.153032","type":"delay","z":"431e3de1.512e64","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"minutes","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":752.0173492431641,"y":247.01041412353516,"wires":[["defee7b.6990d18"]]},{"id":"b6a7ff33.6ffa2","type":"change","z":"431e3de1.512e64","name":"reset","rules":[{"t":"set","p":"reset","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":602.0173492431641,"y":187.01041412353516,"wires":[["7a9f9e15.7db9e"]]},{"id":"5f2c897a.fd9078","type":"change","z":"431e3de1.512e64","name":"reset","rules":[{"t":"set","p":"reset","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":602.0173492431641,"y":267.01041412353516,"wires":[["113e8e0c.153032"]]},{"id":"6ab91053.df6df","type":"mqtt-broker","z":"","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"willTopic":"","willQos":"0","willPayload":"","birthTopic":"","birthQos":"0","birthPayload":""}]
Краткое описание:
Элементы «collector»/«OR» в правой части обеспечиваю логическую операцию ИЛИ для двух условий включения — выключатель света или повышенная влажность.
Цепочка элементов сверху, начиная от «Switch» запускает таймер на 2 минуты при включении света и 5 минут при выключении. Так же включение света сбрасывает таймер выключения и наоборот. Это сделано для того, чтобы при включении света сразу после того как он был выключен не было лишнего выключения-включения.
Цепочка от элемента «Humidity» реализует логику гистерезиса и включает вентилятор при достижении влажности 75% и выключает, когда влажность опускается ниже 70%.
Результат
Прячем реле в вентиляционную шахту и выводим наружу датчик влажности. Вот как это получилось у меня:
Думаю что этого достаточно для повторения моей системы или просто для того чтобы понять, что вам такое не нужно :)
Ссылки еще раз:
Wi-Fi реле Itead Sonoff TH с датчиком влажности
Unnamed оптрон с aliexpress
Конструктор прошивок ESP8266 Espurna
Визуальная систем умного дома Node-RED
Самые обсуждаемые обзоры
+59 |
4064
119
|
+148 |
3116
70
|
А не проще купить уже готовый «умный» вентилятор, разве что без вафли? По цене примерно то и выйдет.
2. Такой вентилятор можно включать еще по расписанию, например, когда никого нет дома, чтобы избежать застаивания воздуха
При таком объеме можно не морочиться, естественной вентиляции будет достаточно…
1. А чем хуже решение установить дешевое таймерное реле для выключения вытяжного вентилятора до полного обновления воздуха?
2. Купить нормальный вентилятор с нужной опцией(таймер/датчик влажности)?
2. Ответил выше
при высоте потолков 3 метра площадь менее 7 квадратных метров.
кондиционер не нада)).
1. А включить таймер на 30 минут — profit!
2. Всек же купить нормальный вентилятор согласно обьему
бассейнаванной :-)Сколько времени ваш проект крутит вентилятор?
вентилятор работает около недели
отсюда
Его еще и почитать можно)
У меня 8-штук таких висят на одном роутере и за год ни одного сбоя.
— Стена чем отделана? Керам. плитка или что это?
плитка керамогранитная кажется, уже не помню
О-хо-хонюшки… :(
пока не придумал ничего проще выключателя и вентилятора с отсрочкой выключения для ванной (щелкнул туда -сюда и все).
все эти датчики влажности не могут определить, когда действительно нужно вытягивать воздух. и зачем включать вентилятор если просто зашел руки помыть.
и я вообще не понимаю зачем вытягивать влагу когда принимаешь душ-ванну, холодно же будет (но нужно зеркало с подогревом правда). а потом может следующий член семьи пойти принимать ванну. влагу надо вытягивать, когда больше никто не пойдет.
поэтому как это автоматизировать мне не очень понятно.
подключил вентилятор через леруашный датчик движения, у которого встроен таймер на отключение.
или вообще не нужно включать вентилятор. не мой случай в общем.
но думаю недалек тот день, когда посредством встроенных в тело датчиков дом будет тебя узнавать, знать твое состояние и сможет вызвать скорую )
вот не замечал такого
ну просто многие люди любят, когда в ванной тепло как в предбаннике к примеру в процессе мытья.
я не исключаю что многим людям нормально, что воздух вытягивается когда они принимают душ, но не мой случай )
Ленивые мы стали.
https://aliexpress.com/item/item/1PCS-Free-shipping-12V-Humidity-Sensitive-Switch-Relay-Module-Humidity-Controller-Humidity-Sensor-Module/32768268649.html
Работает отлично. Накакого гемора с настройкой, пайкой, WiFi и т.д.
Нет ли аналогичного от 220 что бы не городить питалово?
правильно в MAC-адресе это называется «3 последних октета».
и уж точно не «цифр».
Настроил автовключение по влажности. В разрыв управления от света поставил реле с брелками. Один брелок подключил к охранной панели(она его нажимает), т.к. там есть управление из приложения. Второй брелок лежит рядом с унитазом.
В итоге вытяжка работает только когда это надо: или когда влажность или когда надо запахи убрать. И активировать её могут все домашние с приложения или гости с брелка. (была идея сделать большую красную кнопку на стену, и подписать «принудительная разгерметизация отсека»)
Добавлю в избранное. потом почитаю.
Пока, изучаю blynk
А вентилятор у меня привязан к освещению, через таймер с задержкой на отключение. Рулит этим всем, включая вентилятор в туалете и свет по всей квартире, ПЛК100 от ОВЕН
А вопрос следующий.
Sonoff basic или RF например из коробки. Вот скажем задан цикличный таймер 20 минут включено/ 20 минут выключено.
А что будет, если интернет отрубится? Sonoff продолжит включать/выключать? Или нафиг все работать перестанет сразу, и просто будет состояние выключено?
Спасибо
а в дефолтной — на 99% уверен что тоже, вряд ли они будут свои сервера грузить такими примитивными задачами