SONOFF переделка под свои хотелки
 

Холода - самое время заняться обогревом и комфортом дома! Вернулся к начатой год назад теме автоматизации контроля и регулирования процесса обогрева дома. Для этого использую готовые недорогие китайские релюшки SONOFF. Мои нагрузки на такую релюшку не превышают 5 Ампер, тем более, нагреватели имеют чисто активную составляющую тока, так что коммутационное реле, примененное в этих прибамбасах, должно выдержать!  Первым делом эти устройства отвязываются от "китайского облака", ибо стараюсь по максимуму локализировать контроль над такими устройствами у себя. Делается это заменой прошивки, я предпочитаю сгенеренную на сайте https://wifi-iot.com/ Я использую платные возможности прошивок Макса, хотя может быть и можно было уложиться в возможность демо версии, но 110 рублей за лицензию с расширенными возможностями в благодарность человеку, кто придумал и поддерживает этот проект, мне совсем не жалко! Старая версия этой платы неплохо описана здесь:  https://wifi-iot.com/p/wiki/140/ru/  Один из новых релизов этой релюшки на несколько другом процессоре описан в этой статье ближе к концу.

Так-же этот софт позволяет передавать данные датчиков на сайт narodmon.ru  при определенных настройках это позволяет мониторить состояние и частично управлять состоянием SONOFF без наличия на ней "белого" интернет IP адреса (на деле , через любое интернет подключение), сохраняя при этом полную автономную работоспособность устройства в отличие от "китайских" облаков, где вся логика осуществляется в облаке и при остутсвии интернета устройство превращается в тыкву!   

UPDATE Для желающих подстраховаться и сохранить возможность вернуть "родную" прошивку (она персонализирована под каждый конкретный чип, копия с другого устройства не пойдёт) - инструкция по этому мероприятию, необходимо сохраниться ДО первой перепрошивки девайса  https://mynobook.blogspot.com/2020/01/Backup-sonoff-basic.html


Однако, сами конструкции релюшек не очень приспособлены к дополнительным нештатным  подключениям, а возится с паяльником при монтаже на стене или потолке как-то не хочется. Поэтому релюшки перед установкой были немного модернизированы. Силовая часть подключений была сосредоточена на одной стороне, для чего был заменен двух контактный клеммник на трёх контактный. В принципе, можно использовать и 4-контактный клемник, просто объеденив два двух-контактных, благо они приспособлены для этого. Но по разводке дорожек удобнее использовать всё-таки 3-х контактый, и они у меня были. Ну и удалить неиспользуемые силовые печатные дорожки с обеих сторон платы, оставшаяся снизу силовая дорожка была усилена напайкой полумиллиметрового медного провода и заливкой толстым слоем припоя. Для сигнальных подключений на противоположную сторону смонтировал 5-контактный клеммник (в принципе, для моих целей достаточно и 3), объединив и контактные меньших габаритов под меньшее сечение провода. а поскольку использовать проводники с верхней части платы не получится из-за отсутствия метализации в новых просверленных отверстиях, 
По допустимым сечениям и токам все указанные клеммники укладываются в необходимые допуски по объявленным SONOFF мощностям с запасом!


В комплекте с вышеуказанной релюшкой используются датчики DS18B20 для контроля температуры тёплого пола и DHT22 для наблюдения за температурой и влажностью в комнате (установлен на стене на высоте 60 см от пола). Дополнительно на свободные контакты 5-контактного клеммничка вывел помимо GPIO4 еще и +5 вольт питания, ибо некоторые датчики рекомендуют питать именно пятью вольтами, а не процессорными 3,3. Впрочем, несмотря на возможность питания датчиков обоими напряжениями, стабильность работы датчиков DHT22 это улучшило незначительно.


Заодно в углу отсека для подключений со стороны удалённых дорожек сделал пропилы - это позволяет пропустить сигнальные кабели (НЕ СИЛОВЫЕ) через сам корпус при необходимости подключать датчики как снизу, так и сверху! Конечно, расширение пропилов под отвертку для новых выводов сделать абсолютно ровно ручным дремелем нереально, поэтому получилось как получилось! Но я стараюсь!


 Немного оптимизировал и модифицировал переделку. В свете опытной эксплуатации выяснилась нестабильная работа датчиков, совмещенных на одном GPIO14. Пришлось подпаять проводок к выводу GPIO4 чипа, так как других неограниченных чем-либо еще GPIO выводов чипе больше нет, остальные либо заняты, либо имеют какие-либо программные или аппаратные ограничения. В процессе переделки отказался от дополнительного светодиода, аппаратно индицирующего включение реле (чтоб не занимать GPIO13 имеющегося), задействовав не используемый в отстутсвие радио модуля вывод штатного сдвоенного светодиода.


За пару лет стал вырисовываться некий "самопальный" стандарт переделки "старых" моделей SONOFF. Да, это все старые модели с внешней памятью, новые пошли на немного дургом процессоре и с иной разводкой печатной платы, менее удобной для переделки.

  1.  Для экономии "ресурсов" платы есть смысл использовать для индикации незадействованный в платах без радиомодуля один элемент из сдвоенного штатного светодиода. Для этого надо лишь напаять одну проволочную перемычку с управляемого вывода обмотки штатного реле на добавочный резистор, который кстати, желательно увеличить до ... так как на него теперь подаётся 5 вольт вместо предусмотренных 3,3 вольт.
  2. Это позволяет высвободить второй элемент сдвоенного светодиода и его GPIO 13 для, например управления вторым 5 вольтовым реле. Да, блок питания тянет два таких реле и датчики без проблем. Но для этого надо добавить два обратных транзистора, три резистора и один маломощный диод.  Я использовал транзисторы кт315 из запасов советских времен, которые вполне подходят по характеристикам. Одни из них будет работать ключём для реле, другой - инвертором (для сохранения логики - горит светодиод - включено доп.реле, это обосновано использованным способом подключения штатного сдвоенного светодиода). Для монтажа удобно использовать вырезы от силовой дорожки, ранее удалённой. Ещё лучше было бы вместо удаления всей дорожки снизу сделать из неё пятачки для пайки, но на всех моих SONOFF к сожалению, эти дорожки ранее удалены полностью. Диод так-же можно расположить на плате, но из соображения помехоустойчивости есть смысл расположить его на выводах обмотки реле. Схема будет чуть позже.
  3. Датчики DS18B20 с некоторых пор я стал подключать паралельно штатной кнопке, сидящей на GPIO0. Для устойчивой работы с кабелями в несколько метров дополнительно поставлен резистор поддтяжки 3,6 кОм к +5 вольтам. Минусом этого варианта отпадает возможность использования штатной кнопки одновременно для управления обоими реле - одним - коротким нажатием, и другим - длинным нажатием. Именно длинное нажатие при этом начинает глючить - реле, запрограммированое на длинное нажатие, начинает циклически самопроизвольно срабатывать. На управление через виртуальные GPIO с веб-интерфейса это не сказывается. Например, я таким образом делаю два термостата для двух комнат на одной самой дешёвой SONOFF. На вход в режим "программирования" или "save mode" это никак не влияет. 

Положу сюда подключение датчика SHT30 для получения погодных данных в посёлке. Данный датчик придет на смену связке BME280 + DS18B20. Скорее всего в итоге останется связка SHT30 для температуры и влажности на улице и BME280 как датчик давления для размещения на narodmon.ru и температуру и влажность внутри. Дело в том, что выносить BME280 на улицу сильно не рекомендуют, он очень быстро умирает, поэтому на улице для температуры стоит DS18B20, а давление берется внутри дома. Но существующая связка не дает информацию о влажности на улице. А хочется. Предварительно всё настроено, будет время - смонтирую.


Немного про шину I2C. Она хоть и не рассчитана на большие расстояния, но при соблюдени и некоторых условий в отдельных вариантах удаётся использовать и 15м и даже 30 метровые линии.

С одного из форумов кусочек спецификации шины:

"If the bus lines are twisted-pairs, each bus line must be twisted with a V SS return. Alternatively, the SCL line can be twisted with a V SS return, and the SDA line twisted with a VDD return. In the latter case, capacitors must be used to decouple the V DD line to the V SS line at both ends of the twisted pairs."

"Желательно в обеих парах вторым проводом иметь землю. Но допускается иметь вторым проводом питание в паре с линией SDA, но в этом случае надо на обоих концах кабеля поставить конденсаторы между землей и питанием."


Sonoff basic R2 New design. Появилась  новая версия. Отличается процессором - вместо ESP8266 ESP8285. Основная особенность - встроенная флеш-память. соответственно, ограничен объём 1 мБ, что в  свою очередь ограничивает использование более перспективной ОС RTOS, либо принуждает к отказу от обновления прошивки по OTA. Я же в основном использую NoOS - так как она гораздо стабильнее работает с датчиками DS18B20, особенно при большом их количестве. Так-же на плате нет штатного вывода GPIO 14, зато есть нераспаяный разьем с наличием на нем выводов +3,3V GND GPIO0 (паралельно штатной кнопке) и LED. Так же есть нераспаянный разъём для программирования, который можно использовать и по своему назначению, и для дополнительных подключений, ибо там помимо стандартных +3,3V и GND есть GPIO1 и GPIO3. Реле традиционно сидит на GPIO12 синий светодиод - на GPIO13. Так-же плата имеет более слабый сетевой блок питания, однако сравнительных параметров нет, тестов не производил, просто слуайно заметил. 

Есть особенность при прошивке по проводам - в ESP8285 и модулях с памятью PN25F08B требуется установка режима памяти DOUT.

Так же замечено, что свежие версии прошивальщиков иногда ругаются на ESP8285 как на неоригинальный чип. Старый прошивальщик отсюда шьёт без проблем. https://github.com/nodemcu/nodemcu-flasher

В остальном особых различий пока не обнаружено.


Sonoff basic R4 С виду такой же, но сделан на чипе ESP32C3.  Главное отличие - памяти много! Можно залить RTOS, поддержку телеги и другие хотелки. Но для подключения внешних датчиков НЕ РЕКОМЕНДУЮ!

Огромный недостаток этого варианта в конструкции нет развязывающего сетевого трансформатора - используется гальваническая связь с высоковольтной частью схемы!!!

НИ В КОЕМ СЛУЧАЕ НЕ ПРОШИВАЙТЕ УСТРОЙСТВО , ПОДКЛЮЧЕННОЕ К СЕТИ Можно повредить подключенный компьютер и получить электрическую травму!!! Используйте питание от программатора. По этой же причине внешние подключенные датчики должны иметь хорошую изоляцию от всего!

Для прошивки использовал наскоро впаянный разъём на предусмотренные 4 стандартных пятачка, порядок соответствует старому программатору. Использованы GPIO20, GPIO21.

Как прошивать - подробно описано тут,  https://wifi-iot.com/p/wiki/169/ru/  Иногда с 1 попытки почему то не получается, после ввода параметров wifi и перезагрузки устройство не цепляется к рутеру, но и из сейф-режима вываливается. В этом случае повтороно перепрошить - самый быстрый вариант!

Планировал традиционно доставить несколько клеммников для внешних подключений, традиционно поменяв два силовых клеммника на один трех-ногий со стороны ввода, удалив лишние силовые печатные проводники и на освободившемся месте от клеммника вывода, рядом с антенной, разместить свои, более миниатюрные клеммнички для подключения внешних датчиков. Однако, Внимательно изучив построение источника питания и запитки обмотки реле, пришел к выводу - при использованиии внешних подключений отказаться полностью от собственного блока питания и задействовать внешний 5 вольтовый гальванически изолированный источник питания! Удалив при этом все связи низковольтной схемы с высоуовольной частью (контакты реле).


Sonoff Pow R2 (новый) Удалось найти и прикупить (конец 2023 года) хотя бы пару штук POW R2 (не R2 вообще уже не найти, а на новых железках совсем другой чип, пока не поддерживаемый проектом wifi-iot.com ) под конкретную задачу, мониторить работу фекального насоса в септике, который находится глубоко под снегом. Планируемый вариант использовать один SONOFF для двух насосов потерпел неудачу, при одновременной работе обнаружить включение фекального насоса по току нереально. Поэтому поставлю отдельный SONOFF. Печатная плата немного отличается от первого варианта, и плюсом на гребенку выведено еще два GPIO, подписанных I04 и I05, но последний требует проверки (см. информацию немного ниже про старую версию SONOFF POW),   'то можно задействовать под свои хотелки. Для подключения программатора и перепрошивки устройства используются выводы E-Tx и E-Rx, питание + 3,3 вольта подается на ногу Vdd, минус на GND. И да, НИ В КОЕМ СЛУЧАЕ НЕ ПРОШИВАЙТЕ УСТРОЙСТВО , ПОДКЛЮЧЕННОЕ К СЕТИ  в конструкции используется гальваническая связь с высоковольтной частью схемы!!! Можно повредить подключенный компьютер и получить электрическую травму!!! Используйте питание от программатора. По этой же причине внешние подключенные датчики должны иметь хорошую изоляцию от всего!

Пара фоток (сорри, мобилкой) этой железки (да, я уже успел запаять туда контактную гребёнку). В отличии от SONOFF POW в версии R2 использован чип CSE7759B, не полностью поддерживаемый конструктором https://wifi-iot.com/ (на момент 04.02.2024 некорректно отображается потреблённая мощность, ориентировочно завышается в 1000 раз), и при комплировании прошивки надо выбирать опцию не SONOFF POW а CSE7766/ - кстати, её не видно wiki/ в незалогиненном виде. Метрики этого чипа тоже отличаются, поэтому если использовать interpreter , это надо учитывать в коде.

Распределение выводов тоже немного отличается от старой версии

  • GPIO1 - Rx (используется чипом CSE7759B)
  • GPIO3 - Tx (используется чипом CSE7759B)
  • GPIO4 - выведено на гребёнку, но я не проверял, так ли это
  • GPIO5 - выведено на гребёнку, но я не проверял, так ли это
  • GPIO12 - Реле (красный светодиод);
  • GPIO13 - Синий светодиод;
  • GPIO0   - Кнопка на корпусе (можно подключить датчик 18b20, предварительно подпаяв резистор на 4к7 к +3,3в)

Настройка кнопки GPIO0:            в GPIO -> 0- input              в GPIO Keys ->  0  Short - 12  Long 13


Sonoff Pow (старый)

https://wiki.iteadstudio.com/Sonoff_Pow   описалово этой железки

https://wifi-iot.com/p/wiki/177/ru  Описалово на сайте конструктора прошивок

Sonoff POW Schematic   Схемка

На плате доступны только выводы rx и tx (3 и 1 gpio) - на них теоретически можно подключить i2c или другие типы датчиков или другие устройства. Но не забывайте, что из-за того, что нет разделения с высоковольтной части прикосновение к датчикам может быть опасно из-за поражения электрическим током.

НИ В КОЕМ СЛУЧАЕ НЕ ПРОШИВАЙТЕ УСТРОЙСТВО , ПОДКЛЮЧЕННОЕ К СЕТИ Можно повредить подключенный компьютер и получить электрическую травму!!! Используйте питание от программатора. По этой же причине внешние подключенные датчики должны иметь хорошую изоляцию от всего!

  • GPIO1 - Rx (используется при прошивке), можно подключать I2С - (SDA);
  • GPIO3 - Tx (используется при прошивке), можно подключать I2С - (SCL);
  • GPIO5 - (HLW8012) - переключение измерения тока или напряжения;
  • GPIO14 - (HLW8012) - измерение мощности;
  • GPIO13 - (HLW8012) - измерение тока/напряжения;
  • GPIO12 - Реле (красный светодиод);
  • GPIO15 - Синий светодиод;
  • GPIO0   - Кнопка на корпусе (можно подключить датчик 18b20, предварительно подпаяв резистор на 4к7 к +3,3в) .
  • GPIO2 - не доступен (можно подпаять) ;
  • GPIO4 - не доступен (можно подпаять);
  • GPIO16 - не доступен (можно подпаять);

Настройка кнопки GPIO0:            в GPIO -> 0- input              в GPIO Keys ->  0  Short - 12  Long 15


Последнее время стало лениво делать печатные платы под свои устройства. Хотя даже страссировал переходную платку с расширителем I2C на борту для 8 релейного ардуинного модуля. Год прошёл, наступил сезон полива, а я так и несподобился эту разработанную платку воплотить в жизнь, а без нее некому дёргать 12 вольтовые клапаны, подающие воду на сплинкеры газона. Поэтому воспользовался "помощью друга" прикупив пару таких платок. Поменяв 10пиновые штырьки на 9 пиновые мамки и подпаяв подогнутую крайнюю ножку (GND) можно будет эту платку просто надеть на плату реле, подключив 4мя проводками к разьёму программирования SONOFF. Питание платы реле - от отдельного 5Вольтового блока питания. Сама же платка питаться будет 3,3 вольтами от штатного блока питания SONOFF, потребление расширителем мизерное. Таким образом, отпажет необходимость в преобразовании логических уровней I2C.


Силовой блок управления отоплением. Заодно и дополнительный источник питания (5V) для некоторых Sonoff как резервный. Предусмотрено включение принудительного охлаждения по датчику температуры радиатора - твёрдотелки довольно заметно греются. Ну и аварий блок ручного управления авто-off-on.


Применены 40-амперные реле с коммутацией в момент перехода напряжения через ноль. На больших токах они довольно сильно греются, поэтому посажены на радиатор с принудительным обдувом вентилятором. Пол дня теста под нагрузкой показали лишь незначительный нагрев, самый большой ток в моем случае не превышает 5 ампер. Но рисковать не стал, включил вентилятор пока на постоянку, позже будет включаться от температуры.  Ну и позно пришедшаа мысль - надо было сделать индикатор вращения вентилятора, ибо его не видно и проверить работу сложно, лишь косвенно - по температуре блока.


Файлики для понимания вывода в веб морду:

main.css :

body
{background-color:#e6e6e6;margin:0px;font-family:Arial,Tahoma;font-size:14px;line-height:18px;color:#666}
.fln{float:none;}
.fll{float:left;}
.name{text-align:right;font-size:25px;line-height:28px;}
.www{font-size:14px;line-height:18px;}
.spV{height:90px;width:1px;background:#666;}
.spV2{height:90px;width:10px;}
.sys{text-align:left;}
.h{color:#FFF;padding:4px;padding-left:15px;}
.c{background:#FFF;padding:15px;}
.c2{margin:0 auto;width:425px;}
.dummy{width:10px;height:15px;float:left;}
.k{line-height:24px;margin-top:-5px;font-size:12px;text-align:center;color:#FFF;width:24px;height:24px;-moz-border-radius:12px;-webkit-border-radius:12px;border-radius:12px;}
.g_0{background:#CCC;}
.g_1{background:#73c140;}
a:link{color:#666;}
a:visited{color:#666;}
.warn{color:#F00;line-height:35px;}

main web-страничка

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>2Level-8A21</title>
<meta http-equiv="REFRESH" content="60"><meta name="viewport" content="width=480" />
<meta name="mobile-web-app-capable" content="yes" />
<link rel="stylesheet" href="main.css">
</head>
<body>
<br>
<div style="text-align: center">
<div style="display: inline-block">
<div class="name fll">2Level-8A21

<div class="www">MaksMS <a href="http://wifi-iot.com" target="_blank">wifi-iot.com</a>
<br> Pro mode
</div>
</div>
<div class="spV2 fll"></div>
<div class="spV fll"></div>
<div class="spV2 fll"></div>
<div class="sys fll">Free memory: 16560 B.
<br>Uptime: 4 day 17:16:39
<br>VDD: 3474 mV. WIFI: -64 dBm.
<br>Updated: 14:40:17 10.03.2023
<br>Local Time: 9:46:11 29.05.23 Mo
<br>
</div>
</div>
</div>
<div class="c2" >
<div class="h" style="background: #7D8EE2">Sensors:</div>
<div class="c"><b>Bedroom Left</b>   Temp.:Air 29.1 °C (Set 24) Floor 27.7 °C (Set 29)
<hr>
<b>Bedroom Right</b> Temp.:Air 28.8 °C Floor 27.8 °C
<br>
<br>
<a href="?gpio=20"><div class="g_0 k fll" style="width:110px">Heat Floor Left</div></a>
<a href="?gpio=23"><div class="g_0 k fll" style="width:110px">Heat Floor Right</div></a>
<br>
<hr>
</div>
<br>
<div class="h" style="background: #73c140">GPIO:</div>
<div class="c" style="padding-bottom: 28px">
<a href="?gpio=4"><div class="g_0 k fll" style="width:60px">heat-conv</div></a>
<div class="dummy fll"> </div><a href="?gpio=13"><div class="g_0 k fll" style="width:60px">tp-left</div></a>
<div class="dummy fll"> </div><a href="?gpio=14"><div class="g_0 k fll" style="width:60px">heat-conv</div></a>
<div class="dummy fll"> </div><a href="?gpio=12"><div class="g_0 k fll" style="width:60px">tp-right</div></a>
<div class="dummy fll"> </div></div>
<br>
<div class="h" style="background:#808080">Config:</div><div class="c">
 <a href="configmain">Main</a>
 <a href="configall">Hardware</a>
 <a href="configsrv">Servers</a>
 <a href="configpio">GPIO</a>
 <a href="configintgp">Interrupt</a>
 <a href="config1wire">1-wire</a>
 <a href="configtermo">Thermostat</a>
 <a href="configcorr">Correction</a>
 <a href="configweb">Edit_main</a>
 <a href="configinter">Interpreter</a>
 <a href="configkeyweb">Web_Key</a>
 <a href="configkeys">GPIO_Keys</a>
 <a href="configcron">Cron</a>
 <a href="configmypage">My_page</a>
<hr>
<a href="/i2cscan">I2C_Scanner</a>
 <a href="/configupd">Firmware_update</a>
 <a href="/debug">Debug</a>
 <a href="/configrst">Restart</a>
 <a href="listsens">Metrics</a>
</div>
</body>
</html>


Программка для interpreter для контроля старта погружного насоса. При нормальной работе насос потребляет примерно 2,5 ампера, при нестарте - около 4,5 ампера. Понятно, все комменты и лишние пробелы после кода в самом интерпретере надо тщательно удалить. В процессе отладки обнаруженные приколы: переменные имеют тип int32 т.е. могут быть только целыми числами. С датчика тока значение считывается похоже, тоже в таком формате, но для достоверности при выводе в веб и наружу делится на 1000, чтобы значения были в Амперах. на сайте конструктора такой инфы нет, выяснено методом "научного тыка" при тестах!


:loop
intval1=3500                ## ток срабатывания контроля в миллиамерах
if(gpio12==1)                ## если реле насоса включено
if(hlwc>intval1)            ## Проверяем ток через насос
gpioset(15,1)                ## включаем синий лед превышения тока
printw(current= _HLWC_ A _INTVAL1_)      ## строка чисто отладочная, можно снести
delay(2000)                ## Ждем 2 секунды для исключения попадания на стартовый ток
if(hlwc>intval1)            ## Проверяем ток еще раз. Если ток превышает нормальный,
gpioset(12,0)                ## то выключаем реле насоса            
delay(3000)                ## Ждем 3 секунды
gpioset(12,1)                ## опять включаем реле насоса
endif
gpioset(15,0)                ## выключаем синий лед превышения тока
endif
endif
delay(4000)                ## обязательная задержка при цикле, до следующей проверки
goto loop

В проге есть пока не обнаруженный на практике косяк - если отключить с веб морды или с кнопки реле насоса в момент, когда протекает пауза сброса, то есть риск что насос продолжит работу. Меня не напрягает, но думаю, после тестового прогона в натуралных условиях позже исправлю.


схемки на память. Sonoff basic R2 old design

 

 

 

 


Sonoff basic R2 New design

 

 

 

 

 


конфиг 131.21 (05.04.2024)

main page  html:

<font size=-1><b>Bedroom Left</b>   Temp.:Air _DSW1_ °C (Set _THERMSET1_) Floor _DSW2_ °C (Set _THERMSET2_)

<hr>
<b>Bedroom Right</b> Temp.:Air _DSW3_ °C (Set _THERMSET4_) Floor _DSW4_ °C (Set _THERMSET5_)

<hr><br><div class="dummy fll"> </div>
<a href="?gpio=20"><div class="g__GPIO20_ k fll" style="width:110px">Heat Floor Left</div></a> <div class="dummy fll"></div>
<div class="dummy fll"> </div>
<a href="?gpio=23"><div class="g__GPIO23_ k fll" style="width:110px">Heat Floor Right</div></a><br>


конфиг 131.22 (05.04.2024)

main page  html:

<font size=-1><b>OutDoor:</b>
<br>Air T. _DSW1_ °C
<br>Air Pres. _VS0103_ mmHd
<hr><b>BathRoom:</b>
<br>Air T. _VS0101_ °C
<br>Air Hum. _VS0102_ %
<br>Floor T. _VS0104_ °C
<hr><b>Hall:</b>
<br>Air T. _DHTT1_ °C
<br>Air Hum. _DHTH1_ %
<hr><b>WorkShop:</b>
<br>Air T. _DSW2_ °C
<br>Floor T. _DSW3_ °C
<hr><b>BedRooms:</b>
<br>L Air Tem. _VS0201_ °C
| R Air T. _VS0203_ °C
<br>L Floor Te. _VS0202_ °C | R Floor T. _VS0204_ °C
<hr><b>Power:</b>
<br>1F _VS0301_ V. 2F _VS0401_ V. 3F _VS0501_ V.


конфиг 131.25   (Sonoff POW R2, новый)

Программка для interpreter для контроля старта погружного насоса. При нормальной работе насос потребляет примерно 2,5 ампера, при нестарте - около 4,5 ампера. Понятно, все комменты и лишние пробелы после кода в самом интерпретере надо тщательно удалить. В процессе отладки обнаруженные приколы: переменные имеют тип int32 т.е. могут быть только целыми числами. С датчика тока значение считывается похоже, тоже в таком формате, но для достоверности при выводе в веб и наружу делится на 1000, чтобы значения были в Амперах. на сайте конструктора такой инфы нет, выяснено методом "научного тыка" при тестах! Дана только для примера


:loop
intval1=3700                ## ток срабатывания контроля в миллиамерах
if(gpio12==1)                ## если реле насоса включено
if(hlwc>intval1)            ## Проверяем ток через насос
gpioset(15,1)                ## включаем синий лед превышения тока
printw(current= _HLWC_ A _INTVAL1_)      ## строка чисто отладочная, можно снести
delay(2000)                ## Ждем 2 секунды для исключения попадания на стартовый ток
if(hlwc>intval1)            ## Проверяем ток еще раз. Если ток превышает нормальный,
gpioset(12,0)                ## то выключаем реле насоса            
delay(1000)                ## Ждем 1 секунду
gpioset(12,1)                ## опять включаем реле насоса
endif
gpioset(15,0)                ## выключаем синий лед превышения тока
endif
endif
delay(2000)                ## обязательная задержка при цикле, до следующей проверки
goto loop

В проге есть пока не обнаруженный на практике косяк - если отключить с веб морды или с кнопки реле насоса в момент, когда протекает пауза сброса, то есть риск что насос продолжит работу. Меня не напрягает, но думаю, после тестового прогона в натуральных условиях позже исправлю.

Подправленная и отлаженная версия (05.04.2024). Контроль только скважинного насоса, фекальный вынесен на отдельный сонофф.

c code:

intval1=3700
intval2=500
intval3=0
intval4=0
:loop
if(gpio12==1)
if(csec>intval1)
delay(2000)
if(csec>intval1)
intval4=(csec/1000)
gpioset(12,0)
delay(1000)
intval3=intval3+1
gpioset(12,1)
endif
endif
endif
printw(<b>Water Pump</b> _INTVAL3_ Err. <b>Last current error</b> _INTVAL4_ A)
delay(2000)
goto loop


конфиг 131.27   (Sonoff POW , старый) (Fecal Pump) Временная рабочая версия (29.05.2024). Пока модуль только контроллирует по току включение фекального насоса и отображает в WEBе день и время последнего включения насоса. Во время работы насоса мигает синий светодиод. В будущем надо сделать таймаут работы насоса (нормальный цикл длится примерно 28 сек.) секунд 40, отключать насос и выводить аларм при его превышении.

intval1=0
intval2=0
intval3=0
intval4=0
:loop
if(hlwc>0.2)
intval1=hlwc
gpioset(15,1)
intval2=mday
intval3=hour
intval4=minute
endif
delay(500)
gpioset(15,0)
delay(500)
printw(<b>hlwc</b> Last _INTVAL1_ A. _INTVAL2_ D. _INTVAL3_ : _INTVAL4_ work.)
goto loop

 


ESP32 Помучался с прошивкой давно лежащей платки с али. Сбило "На данный момент UART 0 занят под debug"...

При этом свежий софт начинает лить данные не получив инфу от платы.  со старыми версиями такого не было.

Для вхлда в режим прошивки не требуется устанавливать никакие дополнительные перемычки, надо просто зажать "boot" и кратковременно нажать "reset" - модуль переходит в режим прошивки. Далее все по инструкции с сайта "конструктора" wifi-iot.ru.


https://kusheev.com/archives/1617  Взято отсюда, но там сайт как то странно работает, не сразу на эту табличку попадает. поэтому спёр себе: К тому же  бывает, инфа с сайтов исчезает...

Некоторые модули возможно перепаять на модули ESP которые поддерживают другие прошивки. Ниже сравнительная таблица модулей используемых в устройствах Tuya и поддерживаемые прошивки и возможные замены на модули ESP8266/8285

модуль процессор замена прошивка примеч  
AXY2S ECR6600-TS2D ESP-02s      
AXY3L ECR6600-TS2D ESP12      
AXY3S ECR6600-TS2D ESP12      
AXYU ECR6600-TS2D        
AXYU-HM ECR6600-TS4D        
AXYU-IPEX ECR6600-TS2D        
CB1S BK7231N   OpenBeken    
CB2L BK7231N   OpenBeken    
CB2S BK7231N ESP-02s OpenBeken    
CB3L BK7231N ESP12 OpenBeken    
CB8P BK7231N   OpenBeken    
CBLC5 BK7231N   OpenBeken    
CBLC9 BK7231N   OpenBeken    
CBU BK7231N   OpenBeken    
CBU-IPEX BK7231N   OpenBeken    
CR2S W701P-VA2-CG ESP-02s      
CR3L W701M-VT2-CG ESP12   замена не полная, кроме нижних GPIO  
CR3L-IPEX RTL8720CM        
CRG1 W701P-VA2-CG        
FL_M99_V1 BK7231N/BL2028N ESP-02s OpenBeken    
FL_M99_V2 BK7231N/BL2028N ESP-02s OpenBeken   форум
FL_M99_V3 BK7231N/BL2028N ESP-02s OpenBeken   форум
T1-2S T1A        
T1-LC5 T1A        
T1-U T1A        
T1-U-IPEX T1A        
TCS905-3S BK7231NSP        
TCS905-3S BK7231NSP ESP12      
TCS905-U BK7231N   OpenBeken    
TCS905-U BK7231N        
TYLC4 ESP8266        
TYLC5S ESP8285        
TYLC6E ESP8285        
TYLC8 ESP8285        
TYWE1S ESP8266EX        
TYWE2L ESP8285        
TYWE2S ESP8285 ESP-02s      
TYWE3L ESP8266 ESP12      
TYWE3S ESP8266 ESP12      
TYWE3SE ESP32 ESP12   замена не полная, кроме нижних GPIO  
WB1S BK7231T   OpenBeken    
WB2L BK7231T   OpenBeken    
WB2S BK7231T ESP-02s OpenBeken    
WB3L BK7231T ESP12 OpenBeken    
WB3S BK7231T ESP12E OpenBeken    
WB3S-IPEX BK7231T ESP12E OpenBeken    
WB8P BK7231T   OpenBeken    
WBLC5 BK7231T ESP-01D OpenBeken отличаются разным расположением GND  
WBLC9 BK7231T   OpenBeken    
WBR1 W701        
WBR1D W701D-VA1-CG        
WBR1D-IPEX W701D-VA1-CG        
WBR2 W701-VA2-C ESP-02s      
WBR2D W701D-VA1-CG ESP-02s      
WBR3 W701-VA2-CG ESP12      
WBR3D W701D-VA1-CG ESP12      
WBR3L W701H-VT2-CG ESP-02s      
WBR3N RTL8720CS ESP12      
WBR3T W701DH-VA1-CG ESP12      
WL2H-U LN882H        
WL2H-U-IPEX LN882H        
WR1 RTL8710BN   WiFi-IoT    
WR1-IPEX RTL8710BN   WiFi-IoT    
WR2 RTL8710BN ESP-02s WiFi-IoT    
WR2 RTL8710BN ESP-02s WiFi-IoT    
WR2E RTL8710BN ESP-02s WiFi-IoT    
WR3 RTL8710BN ESP12 WiFi-IoT    
WR3E RTL8710BN ESP12 WiFi-IoT    
WR3L RTL8710BX ESP12 WiFi-IoT    
WR3LE RTL8710BX ESP12 WiFi-IoT    
WR4 RTL8710BN ESP08 WiFi-IoT ESP12 подходит по распиновке, но у WR4 нет антенны на плате  
WR5E RTL8710BN   WiFi-IoT    
WT3 T2 ESP12      
WXU T103C-HL        
WXU-IPEX T103C-HL        
XR1 XR809   OpenXR809    
XR1-IPEX XR809   OpenXR809    
XR2 XR809 ESP-02s OpenXR809    
XR3 XR809 ESP12 OpenXR809 замена не полная, кроме нижних GPIO  
WL2S LN882H ESP-02s     форум
LN02 LN882H ESP-02s   возможная замена, чип взят с форума форум

0 Comments
Posted on 05 Dec 2020 by RM9WY
Powered by CuteNews