Сейчас накидаю то, что я сделал с прошивкой для ESP 12, вдруг потом нужно будет вспомнить. Немного предыстроии. В канун нового 2021 г был куплен домой сушильный шкаф Hotstorm калужского завода (вот такой)
К нему в комплекте шел вот такой предохранитель, который срабатывает при 150 С°
После полугода интенсивной работы в какой-то момент (слава богу все были дома), вентилятор перестал работать, перегретые тэны стали краснеть, шкаф экстренно вырубили, предохранитель так и не сработал. Приехал сервисмен, включил шкаф (он заработал как будто ничего не случилось). По согласованию с заводом поменял вентилятор, потом заменил предохранитель, плату управления и все нагревательные элементы (завод сказал прислать все для анализа). Шкаф заработал, но доверие потерял. Возникло желание мониторить его работу, а также иметь резервную систему выключения. В теме про «Умный дом» задался вопросом что можно сделать и lleo предложил построить все на ESP8266 с его прошивкой.
На плате есть два контакта для питания 5v и 7-80v, 5-вольтовый блок я подсоединял на обе линии, все работает. TX-RX со свистком перекрестно, +GND соединить. Далее перед каждой командой нажимается кнопка на плате, тестируется
На плате с помощью резистора по схеvе подключается термодатчик к io04
Ставятся перемычки между relay control pin 1,2 с io05, io15
Блок питания 5v взял от apple по следующим причинам: он выдает ровные 5в, он компактный, 220 подключаются по проводу, вилка отключается, дома их навалом). Пищалка подключается к io03 и GND
Бокс Hegel 110x70, сальники PG-7 из Вимоса
В задней стенке шкафа просверлил отверстие и через сальник вкрутил датчик
Базовое описание софта на странице CFAQ Мои настройки config.txt
# DT можно менять из консоли для отладки {T} = {DS18B20} + {DT} {DIFFT} = {T} — {OLDT}
{OK} = 0 if {DIFFT} > 1 { {OK} = 1 } if {DIFFT} < -1 { {OK} = 1 } # OK значит, что температура поменялась больше чем на градус if {OK} = 1 { {PCOUNT} = {COUNT} ; {COUNT} = 0 ; {PREVT} = {OLDT} ; {OLDT} = {T} } else { {COUNT} += 1 }
{VON} = 0 # насколько я понимаю у if нет && поэтому разбиваем на три условия if {OK} > 0 {VON} += 1 if {T} > {AT1} {VON} += 1 if {T} > {PREVT} {VON} += 1 if {OLD} == 0 {VON} += 1 if {VON} == 4 { pinmode 15 OUTPUT ; pin 15 1 ; ping http://canada.lleo.me/bot/t.php?id={chip}-{FlashChipId}&soft[...]: t° > {AT1}° вкл. PIN15 (сост {gpio15} темп {T}) } }
{VOFF} = 0 if {OK} > 0 {VOFF} += 1 if {T} < {AT3} {VOFF} += 1 if {T} < {PREVT} {VOFF} += 1 if {OLD} = 1 {VOFF} += 1 if {VOFF} == 4 { pinmode 15 OUTPUT; pin 15 0 ; play M....M....M ; ping http://canada.lleo.me/bot/t.php?id={chip}-{FlashChipId}&soft[...]: t° < {AT3}° выкл. PIN15 (сост {gpio15} темп {T}) } }
{LOGS} = 0 if {gpio15} != {OLD} { {LOGS} += 3 } if {COUNT} < 1 { {LOGS} += 1 } if {OK} > 0 { {LOGS} += 1 }
Скрипт включает и выключает вентилятор, который подсоединен к реле на io15, пингует php страницу, которая пишет лог и помогает выводить информацию на web страницу домашнего монитора.
В прошивке есть редактор файлов, находящихся в памяти. Несложно поправить шаблон, я сделал себе темную тему, так у меня выглядит фронтенд на айфоне
Встроенный редактор позволяет создавать текстовые файлы. Для того, чтобы загрузить свою картинку, достаточно в текстовом редакторе вставить код svg (отличный экономичный формат), потом переименовать txt в svg.
Еще планирую добавить функционала. Например поставить реле выключения шкафа при большой температуре. Реле на плате скорее всего не выдержит нагрузки, поэтому заказал реле помощнее с управлением по линии 220. Также в процессе документирования настроил наконец этот сайт, тоже сделал темную тему.
В заключении выражаю огромную благодарность lleo за создание и поддержание прошивки и сайта. Также он оказал неоценимую помощь в настройке конкретно моего устройства, был на связи днем и ночью, с лимоном в машине, на полке в поезде, даже в ФишфабрИке, везде отвечал на любые странные вопросы.
После всего остались некоторые нерешенные вопросы и пожелания относительно совершенствования прошивки: — добавление нескольких условий в if — запись переменных в файл — загрузка файлов в флешку (описанный метод /upload не работает, или не хватает подробностей в его описании на странице документации СИФАК — мониторинг ресурсов чипа, иногда есть большие тормоза веб интерфейса, которые не проходят без перезагрузки; при этом система вроде работает нормально, циклы продолжают запускаться
Во время постинга в систему binoniq тоже возникли вопросы (нет функции или описания как сделать): — в шаблоне _STYLE_ADD: {www_css}my.css _ файл из папки не подцепляет — нет нормальной возможности вставить код html без исполнения и форматирования для демонстрации исходников — нет возможности отключить автосоздание ссылок в html — не работают анимированные gif (видимо с ними что-то происходит во время загрузки) — фотографию с датчиком так и не удалось повернуть; перед загрузкой она была в правильном формате, а поворот средствами движка не сохраняется
Возможно что-то уже работает, но не задокументировано. Пост постараюсь обновлять.