Холода - самое время заняться обогревом и комфортом дома! Вернулся к начатой год назад теме автоматизации контроля и регулирования процесса обогрева дома. Для этого использую готовые недорогие китайские релюшки 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), объединив 2х и 3х контактные меньших габаритов под меньшее сечение провода. а поскольку использовать проводники с верхней части платы не получится из-за отсутствия метализации в новых просверленных отверстиях,
По допустимым сечениям и токам все указанные клеммники укладываются в необходимые допуски по объявленным SONOFF мощностям с запасом!
В комплекте с вышеуказанной релюшкой используются датчики DS18B20 для контроля температуры тёплого пола и DHT22 для наблюдения за температурой и влажностью в комнате (установлен на стене на высоте 60 см от пола). Дополнительно на свободные контакты 5-контактного клеммничка вывел помимо GPIO4 еще и +5 вольт питания, ибо некоторые датчики рекомендуют питать именно пятью вольтами, а не процессорными 3,3. Впрочем, несмотря на возможность питания датчиков обоими напряжениями, стабильность работы датчиков DHT22 это улучшило незначительно.
Заодно в углу отсека для подключений со стороны удалённых дорожек сделал пропилы - это позволяет пропустить сигнальные кабели (НЕ СИЛОВЫЕ) через сам корпус при необходимости подключать датчики как снизу, так и сверху! Конечно, расширение пропилов под отвертку для новых выводов сделать абсолютно ровно ручным дремелем нереально, поэтому получилось как получилось! Но я стараюсь!
Немного оптимизировал и модифицировал переделку. В свете опытной эксплуатации выяснилась нестабильная работа датчиков, совмещенных на одном GPIO14. Пришлось подпаять проводок к выводу GPIO4 чипа, так как других неограниченных чем-либо еще GPIO выводов чипе больше нет, остальные либо заняты, либо имеют какие-либо программные или аппаратные ограничения. В процессе переделки отказался от дополнительного светодиода, аппаратно индицирующего включение реле (чтоб не занимать GPIO13 имеющегося), задействовав не используемый в отстутсвие радио модуля вывод штатного сдвоенного светодиода.
За пару лет стал вырисовываться некий "самопальный" стандарт переделки "старых" моделей SONOFF. Да, это все старые модели с внешней памятью, новые пошли на немного дургом процессоре и с иной разводкой печатной платы, менее удобной для переделки.
- Для экономии "ресурсов" платы есть смысл использовать для индикации незадействованный в платах без радиомодуля один элемент из сдвоенного штатного светодиода. Для этого надо лишь напаять одну проволочную перемычку с управляемого вывода обмотки штатного реле на добавочный резистор, который кстати, желательно увеличить до ... так как на него теперь подаётся 5 вольт вместо предусмотренных 3,3 вольт.
- Это позволяет высвободить второй элемент сдвоенного светодиода и его GPIO 13 для, например управления вторым 5 вольтовым реле. Да, блок питания тянет два таких реле и датчики без проблем. Но для этого надо добавить два обратных транзистора, три резистора и один маломощный диод. Я использовал транзисторы кт315 из запасов советских времен, которые вполне подходят по характеристикам. Одни из них будет работать ключём для реле, другой - инвертором (для сохранения логики - горит светодиод - включено доп.реле, это обосновано использованным способом подключения штатного сдвоенного светодиода). Для монтажа удобно использовать вырезы от силовой дорожки, ранее удалённой. Ещё лучше было бы вместо удаления всей дорожки снизу сделать из неё пятачки для пайки, но на всех моих SONOFF к сожалению, эти дорожки ранее удалены полностью. Диод так-же можно расположить на плате, но из соображения помехоустойчивости есть смысл расположить его на выводах обмотки реле. Схема будет чуть позже.
- Датчики 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
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 | возможная замена, чип взят с форума | форум |