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

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


iot:firmware:tasmota:braun:kf_7020_bk

Умная кофеварка Braun PurAroma 7 (KF 7020 BK)

Это сырая заготовка статьи и не менее сырой прототип схемы для добавления в очень хорошую кофеварку современных тенденций IoT. 8-)

Проект затормозился, когда мы купили самую обычную гейзерную кофеварку и… в ней кофе оказалось вкуснее. m(

Предполагалось, что у кофеварки наконец появится голос и она научится включаться через Apple HomeKit и передавать туда статусы – «температура кофе», «кофе готовится» и «таймер включен».

Используемые компоненты

  1. LC Relay 2x
  2. ESP-01
  3. INA219
  4. INA226
  5. MH-FMD
  6. DS18B20

Схема соединений

НеПутевые заметки

LC Technology ESP8266 Relay X2 (на MCU nuvoTon MS51FB9AE) http://www.lctech-inc.com/cpzx/1/94.html с Ai-Thinker ESP-01 (http://www.ai-thinker.com/pro_view-60.html)

https://tasmota.github.io/docs/devices/LC-Technology-WiFi-Relay/
https://www.rapidtables.com/convert/number/ascii-to-hex.html


!!режимы

D7 (красный) - режим 1 (модуль напрямую к телефону), (D5) синий - режим 2 (модуль и телефон к роутеру)
переключение режимов - нажать S1, включить у-во и отпустить

S2 сброс (короткое нажатие)

D6 - не горит - отключен от wifi, быстро моргает (~0.5s) - режим SmartConfig (настройка wi-fi), медленно моргает (~2s) - подключен к wi-fi, ждет подключения по TCP, горит - подключено по TCP к телефону

!!биппер
gpio0 (Buzzer_i) + active low level на 3V3 = профит!

active high level и gpio2 не подходят ни в одной конфигурации! на 5v постоянно пищит, а на 3v3 норм.

!!температуру
датчик ds18b20 на gpio2 (DS18x20), с 3v3 на gnd резистор 4K7 (4.7kOm) и профит!

!!мониторы энергии
припаять шлейф к 16 (GPIO4 для сигнала SCL) и 24 (GPIO5 для SDA) выводу ESPшки
на одной из закоротить A0 для выбора следующего адреса на шине

!!собрать прошивку с условными правилами (https://tasmota.github.io/docs/Rules/#conditional-rules) и поддержкой I2C драйвера (https://tasmota.github.io/docs/I2CDevices/) xsns_13 (индекс 14) для INA219 <зачеркнуто>и (или) xsns_54 (индекс 35) для INA226</зачеркнуто>((С 226 вышел казус - он как бы поддерживается, но не поддерживается, т.к. распознается, как 219 и, в итоге врет)):

#define USE_EXPRESSION
#define SUPPORT_IF_STATEMENT
#define USE_INA219

!!Прошивка tasmota
3v3 и EN на 3v3
gnd и IO0 на GND
TX - RX крест накрест
Дальше как обычно тасмотайзером но нашу сборку. 1 мб флешки.

!!Настройка после прошивки
в режиме 1 ничего не надо. AT ответы привязать к соответствующим эвентам правилами - подкл/выкл вифи и подкл/выкл mqtt
в режиме 2 в ответ на 41542B5253540D0A отправить правилом WIFI GOT IP. так же привязать ответы к эвентам

в общем и целом в режиме 1 инициализация проходит сильно быстрее! поэтому использую именно ее, хотя по логике должен быть режим2

!!ТЕМПЛЭЙТ (температура, бипер, rx-tx, virtual relay 1, i2c)
Backlog Template {"NAME":"Coffee Maker","GPIO":[512,3200,1312,3232,608,640,0,0,224,0,0,0,0,0],"FLAG":0,"BASE":18}; Module 0; Webbutton1 Warm up coffee!

!!базовые настройки
как у прочих, но:
TelePeriod 30
otaurl http://ota.tasmota.com/tasmota/release/tasmota-minimal.bin.gz

!!светодиод D6 в 1 режиме, правила:
Backlog Rule1 on Wifi#Connected do SerialSend5 5749464920474f54204950 endon on Wifi#Disconnected do SerialSend5 5749464920444953434f4e4e4543544544 endon on Mqtt#Connected do SerialSend5 302c434f4e4e454354 endon on Mqtt#Disconnected do SerialSend5 302c434c4f534544 endon; Rule3 4; Rule1 1

----ЛОГИКА----

!!!!!!!! РАБОЧИЙ ФРАГМПЕНТ!!!!!!!!!!!!!!!

--Бэклог не подходит для загрузки правил с ИФ-ЭЛС!!!!!!!

Rule2 on INA219-1#Voltage>2 do Backlog Buzzer 1,2,2; Var1 1 endon on INA219-1#Voltage<2 do Backlog Buzzer 1,2,2; Var1 0 endon on INA219-2#Voltage>2 do Backlog RuleTimer3 0; RuleTimer2 3 endon on INA219-2#Voltage<2 do Backlog RuleTimer3 3; RuleTimer2 0 endon
Backlog Rule2 5; Rule2 1

Rule1 +on Rules#Timer=2 do Backlog Var2 1; Buzzer 3,5,4 endon on Rules#Timer=3 do Backlog Var2 0; Buzzer 1,5,4 endon

!!публикация таймера!!!!
Rule2 +on INA219-3#Voltage>0 do Backlog Buzzer 4,2,2; Publish coffeemaker_1F51A9/stat/CoffeeTimer on endon on INA219-3#Voltage=0 do Publish coffeemaker_1F51A9/stat/CoffeeTimer off endon

Rule3 on Var2#State do if (Var3==0 AND Var2==1) Var3 1; Power1 1 elseif (Var3==1 AND Var2==0) Var3 0; Power1 0 endif endon on Power1#State=1 do if (Var3==0 AND Var1==0) Var3 1; SerialSend5 A00101A2; delay 10; SerialSend5 A00100A1; delay 10; SerialSend5 A00201A3; delay 10; SerialSend5 A00200A2 elseif (Var3==0 AND Var1==1) Var3 1; SerialSend5 A00201A3; delay 10; SerialSend5 A00200A2 endif endon on Power1#State=0 do if (Var3==1) Var3 0; SerialSend5 A00101A2; delay 10; SerialSend5 A00100A1 endif endon
Backlog Rule3 4; Rule3 1

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11



эксперименты:

10 если есть напряжение на светодиоде СТАРТ - ВКлючаем вирт.реле3 (СВАРИТЬ)
15 если нет напряжение на светодиоде СТАРТ - ВЫключаем вирт.реле3 (СВАРИТЬ)
20 когда вирт.реле3 СВАРИТЬ переходит в ON - включаем вирт.реле1 (ПИТАНИЕ) на 0.15сек, включаем вирт.реле2 (СТАРТ) на 0.15сек
30 когда вирт.реле3 переходит в OFF - включаем вирт.реле1 на 0.15сек

rule3 on INA219-1#Voltage>2 do power1 1 endon on INA219-1#Voltage<2 do power1 0 endon on Power1#State=1 do backlog SerialSend5 A00101A2; delay 10; SerialSend5 A00100A1; delay 10; SerialSend5 A00201A3; delay 10; SerialSend5 A00200A2 endon


Var1#State=local
Var1#State=remote


on INA219-1#Voltage>2 do Backlog Power 1; Var1 local endon on INA219-1#Voltage<2 do Power 0 endon on (Power#State=1) AND (Var1#State!=local) do Backlog SerialSend5 A00101A2; delay 10; SerialSend5 A00100A1; delay 10; SerialSend5 A00201A3; delay 10; SerialSend5 A00200A2 endon


Rule1 +on Power1#State=1 do SerialSend5 A00101A2 endon on Power1#State=0 do SerialSend5 A00100A1 endon on Power2#State=1 do SerialSend5 A00201A3 endon on Power2#State=0 do SerialSend5 A00200A2 endon

----ЛОГИКА-END---

!!виртуальные кнопки

Rule1 +КОМАНДА

---------тесты--------

Rule1 +on Power1#State=1 do Backlog SerialSend5 A00101A2; Buzzer 1,2,3 endon on Power1#State=0 do Backlog SerialSend5 A00100A1; Buzzer 1,2,3 endon on Power2#State=1 do Backlog SerialSend5 A00201A3; Buzzer 1,2,3 endon on Power2#State=0 do Backlog SerialSend5 A00200A2; Buzzer 1,2,3 endon (ОТКЛЮЧИЛ!!!!!!)

кол-во повторов (работает с с битовой маской - повторяет всю композицию N раз)
длительность звукового сигнала с шагом 100 мс
длительность тишины с шагом 100 мс
битовая маска в hex (11110101111101010100 ->F5F54)

к примеру Buzzer 1,2,3,0xF5F54

---------тесты-энд-------

!!AT команды

реле1
Вкл - SerialSend5 A00101A2
Выкл - SerialSend5 A00100A1

реле2
Вкл - SerialSend5 A00201A3
Выкл - SerialSend5 A00200A2

!!AT ответы

WIFI CONNECTED - SerialSend5 5749464920434f4e4e4543544544 (КАЖЕТСЯ не имеет ни какого значения!)
WIFI GOT IP - SerialSend5 5749464920474f54204950 (начинает медленно моргать зеленый диод, можно отправлять команды реле)
0,CONNECT - SerialSend5 302c434f4e4e454354 (чтобы лампочка горела постоянно)

0,CLOSED - SerialSend5 302c434c4f534544 (чтобы медленно заморгала)
WIFI DISCONNECTED - SerialSend5 5749464920444953434f4e4e4543544544 (гаснет зеленый диод, нельзя отправлять команды реле)

!!Софт, работающий с заводской прошивкой (загрузить архив!!!!!):
EasyTCP (https://play.google.com/store/apps/details?id=com.shenyaocn.android.EasyTCP или в архиве) только андроид - в первом режиме подключиться к SoftAP модуля (ESP_XXXXXX) и в приложении подключиться к 192,168,4,1:8080, дальше перейти на закладку SWITCH и добавить кнопки.
Во втором режиме - поставить EspTouch (https://play.google.com/store/apps/details?id=com.khoazero123.iot_esptouch_demo или из архива; ios - https://apps.apple.com/us/app/espressif-esptouch/id1071176700), дождаться, когда реле начнет быстро моргать зеленым светодиодом (запустился SmartConfig), пункт только для ios - открыть EspTouch v1, ввести пароль от вифи и ткнуть CONFIRM, подождать и устройство подключится к вашей сети, в подтверждении будет написан IP его. Потом так же управлять EasyTCP.

USR-TCP232-Test-V1.3 (https://www.pusr.com/support/downloads/usr-tcp232-test-V13 или из архива) для диагностики (usb gebug log) - ТОЛЬКО лог (как минимум для моего MCU) - подключить только TX, RX и GND к USB-TTL программатору, вставить в USB, открыть программу, выбрать порт и подключиться. Включить модуль. Смотреть.

Обсуждение

Ваш комментарий:
Y A N X I​ H M G M O T Y X I V Y
 
Последнее изменение: 2022/02/16 19:10 — Николай Солошин