Инструменты пользователя

Инструменты сайта


iot:firmware:tasmota:wemos:d1:mini:esp12-f:polaris:psf_40rc_sensor

Модернизация Polaris PSF 40RC Sensor

Идея, сделать напольный вентилятор «умным», оснастив его модулем Wi-Fi и добавив его в приложение «Дом» от Apple, появилась давно, но реализовать решился только недавно, когда в очередной раз пришлось незапланированно вставать и тащиться за пультом, чтобы изменить режим работы.

В итоге реализовано:

  • управление всеми функциями вентилятора,
  • обратная связь по питанию и скорости,
  • включение функции «лес»1) одной командой,
  • штатное управление с пульта или корпуса устройства.

История о модернизации вентилятора с механическим управлением описана тут.

Tasmota @ PSF 40RC

Комплектующие

  1. ESP-12F @ D1 mini2);
  2. оптопара 817B, 8 шт.;
  3. диод 1N41483), 3 шт.;
  4. резистор 220R, 4 шт.;
  5. резистор 100R, 4 шт.;
  6. резистор 10K, 8 шт.;
  7. БП 5 в 700 мА;
  8. макетная плата;
  9. двусторонняя лента;
  10. каптоновая лента.

Аппаратная часть

На кусочках макетной платы, нужно собрать два модуля4) и подключить их к микросхемам HT66F004 и FTC332 на плате вентилятора.

Принципиальная схема

  • Для правильной работы GPIO5), выводы RX, D0, D3, D5 нужно подтянуть резистором 10k к плюсу питания, а выводы D1, D2, D6, D7 – таким же резистором, но к земле.
  • Для устранения наводок от дополнительного шлейфа, диоды необходимо подключать максимально близко в выводами микросхемы FTC332!
Function D1 mini (ESP-12F) HT66F004 FTC332
Speed 1 RX (GPIO03) 12
Speed 2 D5 (GPIO14) 11
Speed 3 DO (GPIO16) 09
Power LED D2 (GPIO04) 03
Power SW D3 (GPIO00) 046)
Mode SW D1 (GPIO05) 01
Speed SW D6 (GPIO12) 07
Timer SW D7 (GPIO13) 08

В итоге должно получиться как-то так:

Программная часть

Для работы логики, необходимо собрать прошивку с поддержкой команды «Subscribe»:

#ifndef SUPPORT_MQTT_EVENT
#define SUPPORT_MQTT_EVENT
#endif

Прошивка

Процедура прошивки стандартная, описана тут.

Подключение

Но, в моем случае, похоже, попалась бракованная микросхема CH3407) и, хоть в системе и виделась, но не шилась! Пришлось снимать модуль ESP-12F с платы и шить «на весу»…

Но и это удалось далеко не сразу и то, только при такой схеме подключения, описанной в этом видео:

Подключение ESP-12F к программатору.

Вместо Arduino UNO использовался простой USB-программатор на этой же, к слову, микросхеме…

Настройка

  1. Добавляем шаблон и активируем его

    Backlog Tempale {"NAME":"Polaris PSF 40RC Sensor","GPIO":[160,0,576,161,224,225,0,0,226,227,162,0,163,0],"FLAG":0,"BASE":18}; Module 0
  2. переименовываем устройство

    Backlog DeviceName Floor Fan; FriendlyName1 Напольный вентилятор
  3. переключаем свитчи в бинарный режим и отключаем их от реле

    Backlog SwitchMode1 1; SwitchMode2 1; SwitchMode3 1; SwitchMode4 1; SetOption114 1
  4. переименовываем свитчи

    Backlog SwitchText1 FanPower; SwitchText2 FanSpeed1; SwitchText3 FanSpeed2; SwitchText4 FanSpeed3
  5. включаем пульсовый режим

    Backlog PulseTime1 2; PulseTime2 2; PulseTime3 2; PulseTime4 2; PowerOnState 0; BlinkTime 5
  6. изменяем метки кнопок в веб-интерфейсе

    Backlog WebButton1 Питание; WebButton2 Режим; WebButton3 Скорость; WebButton4 Таймер
  7. устанавливаем топик MQTT и группируем

    Backlog Topic floorfan_%06X; FullTopic %topic%/%prefix%/
  8. настраиваем и включаем MQTT

    Backlog MqttHost 192.168.XXX.XXX; MqttPort 1883; MqttUser RGEHrther; MqttPassword 4h45ghgr; SetOption3 1
  9. прочие настройки

    Backlog Timezone +10:00; TelePeriod 0; SetOption128 0

Правила

  1. Получение текущей скорости и ее публикация, сброс переменных при выключении, публикация статуса питания

    Rule1
    ON Switch2#State=1 DO Var1 33 ENDON
    ON Switch3#State=1 DO Var1 66 ENDON
    ON Switch4#State=1 DO Var1 100 ENDON
    ON Switch1#State=0 DO Backlog Var1 %value%; Var2 %value%; Var3 %value%; Var4 %value%; Var5 %value%; Rule3 1 ENDON
    ON Var1#State>%Var2% DO Publish %topic%/stat/FANSPEED %value% ENDON
    ON Var2#State=0 DO Publish %topic%/stat/FANSPEED %value% ENDON
    ON Switch1#State DO Backlog Var6 %value%; Publish %topic%/stat/FANPOWER %value% ENDON
    ON Power1#State=1 DO Add4 2 ENDON
  2. получение, публикация и включение питания и режима «лес»; действия при переподключении к MQTT и при старте системы

    Rule2
    ON Event#GetForestMode=1 DO Backlog Rule3 0; Var1 100; Var2 101; Add4 3; Var3 %value% ENDON
    ON Event#GetForestMode=0 DO Event ForestModeOff=%value% ENDON
    ON Var4#State==5 DO Power2 1 ENDON
    ON Var4#State==3 DO Backlog Add4 3; Power1 1; Delay 2; Power2 1 ENDON
    ON Event#ForestModeOff!=%Var4% DO Power1 1 ENDON
    ON Var3#State DO Publish %topic%/stat/FORESTMODE %value% ENDON
    ON Event#GetFanPower!=%Var6% DO Power1 1 ENDON
    ON Event#GetFanPower==0 DO Power1 1 ENDON
    ON Mqtt#Connected DO Backlog Subscribe GetForestMode, floorfan_69BF68/cmnd/ForestMode;
    Subscribe GetFanSpeed, floorfan_69BF68/cmnd/FanSpeed;
    Subscribe GetFanPower, floorfan_69BF68/cmnd/FanPower;
    Publish %topic%/stat/FANSPEED %Var1%;
    Publish %topic%/stat/FORESTMODE %Var3%; 
    Publish %topic%/stat/FANPOWER %Var6%; ENDON
    ON System#Init DO Backlog Var1 0; Var2 0; Var3 0; Var4 0; Var5 0; Var6 0; Rule3 1 ENDON
  3. механизм переключения скоростей из приложения «Дом»; при включении режима «лес» выключается

    Rule3
    ON Var5#State!=%Var1% DO Power3 3 ENDON
    ON Var1#State==%Var5% DO Power3 4 ENDON
    ON Event#GetFanSpeed>66 DO Var5 100 BREAK
    ON Event#GetFanSpeed>33 DO Var5 66 BREAK
    ON Event#GetFanSpeed>0 DO Var5 33 BREAK
  4. включение правил

    Backlog Rule1 1; Rule2 1; Rule3 1

:!: Кстати, правила в консоль можно вставлять как есть с переносами строк, они правильно интерпретируются и записываются!

Интеграция

Пример конфигурации Homebridge приведен тут.

Демонстрация


Дисклеймер

  • Использование материалов данной базы знаний разрешено на условиях лицензии, указанной внизу каждой страницы! При использовании материалов активная гиперссылка на соответствующую страницу данной базы знаний обязательна!
  • Автор не несет и не может нести какую либо ответственность за последствия использования материалов, размещенных в данной базе знаний. Все материалы предоставляются по принципу «как есть». Используйте их исключительно на свой страх и риск.
  • Все высказывания, мысли или идеи автора, размещенные в материалах данной базе знаний, являются исключительно его личным субъективным мнением и могут не совпадать с мнением читателей!
  • При размещении ссылок в данной базе знаний на интернет-страницы третьих лиц автор не несет ответственности за их техническую функциональность (особенно отсутствие вирусов) и содержание! При обнаружении таких ссылок, можно и желательно сообщить о них в комментариях к соответствующей статье.
1)
Режим, который я чаще всего использую.
2)
В моем случае подделка на подделке.
3)
Взял, какой был под рукой но, скорее всего, подойдет практически любой.
4)
Можно, конечно, все на одном сделать, но там, ИМХО, удобнее и гармоничнее.
5)
Строго говоря, подтягивать нужно не все подряд, а только некоторые, но, дабы не мучаться, можно подтянуть все, хуже не будет…
6)
На фото ниже, подключено к выводу самой кнопки питания, но не суть.
7)
Ага, маркировка срезана лазером в ноль!

Обсуждение

Ваш комментарий:
J W O U K F R I J N C V D W᠎ M᠎ B
 
Последнее изменение: 2023/08/20 01:09 — Николай Солошин