Если какое-либо из ваших устройств постоянно зависает, то правильней всего — отремонтировать его, либо обзавестись новым, лишенным подобных недостатков. Но иногда это невозможно, иногда экономически не целесообразно, а иногда нужно поставить временный костыль, пока новое оборудование в пути. В
прошлом своем обзоре я заикнулся о том, что в пути еще одна “умная” розетка едет, которая в миниатюрном корпусе и с поддержкой Alexa, Google Home, IFTTT. Поскольку было абсолютно неизвестно, на какой базе она построена — первым делом разобрал :)
Вот так выглядит пришедшая кучка.
На самом видном месте красуется красивая наклейка, о том, что 2кВт для этой малышки не проблема.
И здесь я повертел в руках розетку, и единственное место, куда могло бы поместиться реле — это межштыревое пространство. Сопоставил размер реле, которое туда поместится с цифрой 2кВт, и в уме пробежались очередные формулы из китайской математики.
Первый сюрприз, еще не открывая:
непригодна для силовых нагрузок.
Изначально думал, что все будет заклеено, но присмотрелся и нашел небольшой винт. Выкручиваем, легко снимаем верхнюю часть, и здесь:
Второй сюрприз:
внутри все тот-же esp8266 с неудобной spi flash на 1МБ.
Для того, чтобы разобрать дальше — нужно выкрутить два винта, которые вкручены через плату в торец силовых клемм. И это:
Третий сюрприз:
все 2 кВт, по мнению китайцев, отлично будут себя чувствовать, проходя неизвестно с каким прижимом прикрученное соединение.
Выкрутил, отогнул земляной контакт и вытянул бутерброд. Здесь появился:
Четвертый сюрприз (на этот раз приятный):
китайцы вынесли достаточно большую антенну на боковую стенку. Т.е. по крайней мере с приемом проблем быть не должно.
Смотрим реле, которое
на ali целых $1,5 стоит, и видим во-первых маленький для 2кВт габарит, а во-вторых нестандартное расположение контактных групп, относительно друг-друга. Это еще один намек на то, что заменять данное реле будет и неудобно и не очень бюджетно.
Паяльник в руки, и через 2 минуты в руках три разобранных этажа.
Вместо синей изоленты китайцы предпочитают термоскотч, которым обмотана плата с реле.
Пятый сюрприз:
силовые дорожки проходят с двух сторон платы, на которой поселилось реле, но их размер и толщина говорят о том, что при 2кВт они сработают предохранителями, правда небезопасными.
Здесь уже абсолютно все говорит о том, что через данную реле можно относительно безболезненно прогонять ватт 300-500, а лучше 20-30 :) Собственно это, в первую очередь, сузило сферу применения данного реле.
Дальше — больше. Китайцы, конечно, молодцы, что умудряются совмещать несовместимые вещи. И в данном случае блок питания — бестрансформаторный. Упс… Это, конечно, уже не огромный гасящий конденсатор, а вполне опробованное китайцами решение, прижившееся в светодиодных 220В светильниках. Внутри один драйвер, гордо называющийся “ASZAHA”, но не имеющий даташита в свободном доступе. Два дросселя на входе, один на выходе — и имеем 12В для управления релюхой. Здесь выбор 12В оправдан, поскольку нужен меньший ток. Подобные светодиодные драйвера обеспечивают от 3 до 15Вт. На высоких напряжениях, под 100В нужно обеспечить от 30 до 150мА ток, что вполне вписывается в габаритные размеры. Здесь, скорее всего, тоже БП обеспечивает мощность в районе 3Вт. Проверять не стал, поскольку не имеет смысла, и сгорает только один раз :)
Шестым сюрпризом стал:
БП, не имеющий гальванической развязки от питающей сети. Т.е. сооружать выносные датчики минимум небезопасно.
На средней части бутерброда расположено реле и DC-DC с 12В на 3.3В для питания esp8266. Вполне оправданное и логичное здесь решение. DC-DC собран тоже на чем-то местно-китайском, с маркировкой cm8j.
В верхней части — esp8266 с обвесом. Здесь самое плохое — spi flash, живущая по своим правилам. Об этом писал в прошлом обзоре. Но зато нормальная антенна, и расположена наиболее грамотно.
Фен в руки, 2 минуты и флешка сдута (не отработала ни разу), а на ее место поставлена нормальная 4МБ (32Мб) для экспериментов.
На этом предварительные ласки окончены. Перевернем подопытную :)
А здесь в целом неплохо. Аккуратно выведены пятачки RX, TX, питания. Кроме них здесь же пятачки GPIO0 и GPIO2.
После прозвонки полный список выведенных GPIO выглядит так:
GPIO0 — не используется, можно задействовать под SCL
GPIO1 — TX
GPIO2 — не используется, можно задействовать под SDA
GPIO3 — RX
GPIO4 — используется под распаянный LED
GPIO5 — полностью разведен под второй LED (нужен резистор и сам LED)
GPIO12 — используется для управления реле, разведен в месте соединения плат
GPIO13 — используется под штатную кнопку.
в целом вполне нормальное количество, но из-за отсутствия гальванической развязки на I2C можно разве что дисплейчик повесить. Хотя в данную конструкцию можно отлично вписать датчик CO2, ему для работы как раз нужно 5-16В, которые есть около реле.
Кстати, собрать розетку оказалось немного сложнее, чем разобрать. Два винта в штыри нужно продеть сквозь контактные отверстия, при помощи тонкой отвертки, и при этом умудриться их не уронить, поскольку обратно они сами не выпадают.
Что интересного можно построить с подобными входящими?
Из очень полезного — розетку для зависающих роутеров, либо для роутеров, неспособных самостоятельно переподключаться после разрыва связи. Вполне живое решение. И очень малый габарит самой розетки здесь играет в плюс — в 99,99% случаев эта проходная розетка влезет под основную вилку.
И раз ребутилка не обделенная “умом” — думаем, какой функционал может пригодиться, и на базе какой прошивки можно с минимумом усилий собрать подобный девайс.
Зависание можно определить по пропавшему пингу цели. Пинговать можно как интернетовский 8.8.8.8, так и ip самого роутера. В целом можем пинговать любую другую железку в инфраструктуре.
Не помешает возможность задать плановые перезагрузки.
Нужно какое-то осознанное управление, как с кнопки, так и с web интерфейса, но без обязательного доступа к интернету.
Синхронизация времени по NTP серверу (в локальной сети, или в интернет — без разницы) тоже пригодится.
Возможность WOL-ом запустить удаленную железку, вполне возможно.
Простой и понятный выход в safe mode, если розетку уже перенесли, а предварительные настройки на другой сервер сделать забыли.
И возможность видеть погоду с gismeteo.ru, narodmon.ru, или просто данные с разнесенных датчиков — будет только плюсом.
Думаю все уже догадались, что с минимальным геморром, особенно для тех, у кого с программированием на «ВЫ» — это проект Макса
WiFi-ioT.
Ключик к прошивке обойдется в $2, зато устройство через полчаса будет готово к эксплуатации.
Я выбрал такие опции в прошивке:
Gismeteo.ru
Virtual GPIO
Virtual SENS
Ping тест
TCP/UDP Клиент
WakeOnLan
Время и NTP
Датчики GET запросом
Поддержка календаря
Ручная установка времени
Web KEY
GPIO
Обновление OTA
Auto OTA
Работа с прерываниями
Планировщик заданий
Конструктор main page 2
Logic2
IP security
Safe GPIO (здесь в настройках указать gpio13 и включение при 0)
Конструктор строк
Русский шрифт
Дальше допаял второй светодиод (зеленый :) ) и, собственно все. Остальное — настройки.
Прошиваем — как обычно. В РОЗЕТКУ НЕ ВСТАВЛЯЕМ. До подачи 3.3В зажимаем пинцетом gpio0 и gnd. Вначале льем пустой бинарник, по размеру впаянной spi flash. По идее в этом проекте может и заведется родная, не пробовал.
Затем отключаем питание, еще раз зажимаем gpio0 и gnd, подаем питание. Вливаем скомпилированную однофайловую прошивку с сайта, с 0х00000 адреса.
Еще раз передергиваем питание, и если все нормально — появится беспарольная точка доступа wifi-iot, подключаемся к ней, идем на 192.168.4.1 и занимаемся дальнейшими настройками. Когда введете имя своей wifi сети и ее пароль — переподключайтесь на свою сеть и продолжайте. Здесь особо не расписываю — для “бывалых” esp-шников ничего нового :)
Из нюансов по настройке:
NTP я использовал — 62.149.0.30
Номер своего города для gismeteo смотрите
здесь. (gismeteo какое-то время назад перестал работать в данном проекте, но уже все починили, все работает)
GPIO2 — INPUT (используется как dummy устройство, для обхода неоднозначностей)
GPIO4 — OUTPUT INVERT (поскольку инверсная логика) дальше в логике используем 1, когда включено и 0, когда выключено.
GPIO5 — OUTPUT INVERT
GPIO12 — OUTPUT INVERT
(если нужно, чтобы устройство сохраняло свое состояние при отключении питания — то на GPIO12 поставьте галку на Flash, это признак того, что КАЖДОЕ изменение сохраняется на spi flash и при следующей подаче питания будет именно в последнем состоянии. Но это гораздо быстрее изнашивает flash) Для данного случая розетка должна быть всегда включена, при возобновлении питания. Поэтому галочки не ставим.
interrupt: (нужно использовать для быстрого реагирования на кнопку)
Int1 on GPIO13 — Time Key
Time for Key — 5 (в секундах, на какое время меняется состояние gpio)
GPIO for Key — 12 (здесь реле, при нажатии на кнопку — на 5 сек. отключаем нагрузку, затем она подключается обратно). 5 сек должно хватить на разряд конденсаторов в БП ведомого устройства. Можно поиграться временем.
Ping test — задействуем, и задаем узел, который будем пинговать. При пропадании пинга в течении минуты розетка уберет на 5 сек питание (это время не настраивается) и затем будет продолжать данную процедуру каждые 3 минуты, до момента появления доступа к узлу.
Edit main — редактирование части web интерфейса под себя. Можно нарисовать красивые кнопки (css стилями, поскольку максимум 600 байт дано). У меня так:
<style>
P {
text-indent: 1.5em; /* Отступ первой строки */
text-align: center; /* Выравнивание по центру */
}
</style>
<p>По GISMETEO: <b>_GTT_</b>°C ... <b>_GTH_</b>%% ... <b>_GTP_</b>мм</p>
Нет пинга _GPIO4_
Есть пинг _GPIO5_
Web Key — «GPIO12 — ВЫКЛ»
Это кнопка, которая появится в интерфейсе, и назначение ее понятно из названия :) Отключает нагрузку.
Можно и светодиоды так вывести, но тогда поломается логика работы. Лучше только в режиме индикации обрамить их красивой формой (если кто-то доделает — выкладывайте в комментариях, докину в обзор)
И самое сложное (хоть на первый взгляд таким не кажется) это заполнение логики действий.
Как сделал я:
При отключении нагрузки (не важно, с кнопка на 5 сек, от пинговалки или просто при отключении кнопкой в интерфейсе) — гаснут оба светодиода.
При доступе контролируемого узла горит зеленый светодиод (gpio5)
При пропадании пинга — горит красный (gpio4) и каждые 3 минуты на 5 сек гаснет.
После появления доступа — снова загорается зеленый светодиод.
Поскольку логический модуль обрабатывается отдельно, со своей дискретностью изменение свечения светодиодов происходит с задержкой до 1 минуты. Поскольку это лишь удобные информеры — не критично.
При коротком нажатии кнопки на розетке — на 5 сек отключается нагрузка и подключается обратно.
Если нужно зайти в safe mode — зажимаем кнопку, затем вставляем в розетку. Появится точка доступа wifi-iot.
В целом получилось вполне информативно, и понятно даже при боковом взгляде. Зажигать оба светодиода не рекомендую, либо нужно вторым ставить синий — издалека фиолетовый более-менее нормально различается. Но мне кажется только зеленый и только красный гораздо информативней.
Сами модули логики у меня выглядит так:
1) Event options - GPIO2, Time 0
1. if GPIO12 = 0
false - Event state 1
true - Event state 0
2) Event - GPIO4, Time 0
1. if GPIO2 = 1
false - Next step
true - Event state 0
2. Ping test = 0
false - Event state 0
true - Event state 1
3) Event - GPIO5, Time 0
1. if GPIO2 = 1
false - Next step
true - Event state 0
2. Ping test = 1
false - Event state 0
true - Event state 1
Итого задействовал 3 правила, по 1..2 шага в каждом. При желании можно их скомпоновать в одно.
В целом смотрятся легко, но пришел к такому виду через несколько итераций, поскольку в некоторых случаях поведение логики не соответствовало ожидаемому. В таком варианте все нормально.
Розетку брал
здесь. Ну как брал — это моя первая и пока единственная 1-центовая халява :) В целом цена ее колеблется в диапазоне $10...$12. Ключ к прошивке — еще $2.
Из плюсов подобной реализации именно пинговалки, можно отметить компактность и хорошее расположение антенны. А также много выведенных пинов.
Из минусов — отсутствие гальванической развязки, слабое реле (для 2кВт), тонкие силовые дорожки, неремонтопригодная, в части питания, схемотехника.
Для использования по прямому назначению 2кВт, Alexa, Google Home, IFTTT —
не использовать ни в коем случае.
Для переделки во вполне годную пинговалку с квалкомом и мандрами — очень неплохой вариант, в первую очередь из-за габаритов.
Для любителей автоматики на wifi сетях напоминаю, любую wifi сеть в нижнем диапазоне (2,4ГГц) можно напрочь лишить работоспособности вот такой малявкой.
Причем либо только вашу, либо нафлудить на всю округу.
Это не взлом, а именно целенаправленное наведение паралича на сеть.
Это нужно держать в голове, когда занимаетесь автоматизацией.
Пока доезжают акционные sonoff basic по $3,5 — уже придумал во что их переделать. Тоже вполне очевидное решение, но как всегда есть нюансы :)
p.s. готовый
бинарник, как просили. Но активация pro режима индивидуальна для каждого чипа.
Надо собрать, пригодится. =)
Видимо, забанили…
Вот еще одна ссылка на тот же комплект
а сяоми смарт плуг?
В теории Sonoff TH16 должен осилить нормально. В бойлере нет индуктивных составляющих. Т.е. реле работают в облегченном режиме.
Но для 100% гарантии — лучше релюхой (из всяких Sonoff-ов) управлять обмоткой контактора. А уже силовая часть контактора может рулить огромными нагрузками. Контакторы от 25А до 63А есть на каждом углу (обмотка на 220В). При желании можно найти 90...95А. Для одной фазы это выше крыши (если проводка позволяет).
Да, использование контакторов — это 100% верный подход. Об этом тоже написал.
Сугубо на мой взгляд, может стоило выложить уже готовый бинарники (может даже рассказать как шить)и т.п для последователей, кто захочет просто собрать по вашей методике из обзора.
Не сделал этого потому, что на сайте он собирается за 15 секунд. Нужные чекбоксы указал.
В первоисходнике, вроде бы, более политкорректно. Активация Pro версии привязана к серийнику в чипе, и она индивидуальна для каждого модуля. Т.е. бинарник заведется, но все-равно нужно будет зарегистрироваться там на сайте и пополнить свой баланс на $2 минимум.
Фраза целиком звучала так:
Для любого пользователя узел 8.8.8.8 находится за периметром внутренней сети, т.е. «где-то в интернете».
PS: Почему вы выбрали в качестве ntp, адрес в Украине, а не «глобальный» сервис?
Потому, что живу я здесь. И сервис этот глобальный, роскомнадзор его не забанил.
А акцентировал внимание на NTP потому, что дефолтный из прошивки часто не работает. И простому обывателю сложно понять, почему часы не выставляются.
Естественно вписать туда можно любой удобный ntp сервер, хоть поднятый на собственном роутере (если он это умеет).
Ручками желательно прописывать из пула стратум2, проверить нагрузку и блокировку можно вот тут
На текущий момент для ru наименее загружен ntp3.stratum2.ru = 88.147.254.235
Давно использую другой — 109.195.19.73. Неудобство в том, что когда приходится сбрасывать модуль на дефолтные настройки, то этот адрес надо поправлять ручками.
А за обзор плюс. Хорошо расписано.
Все ясно. Почти всегда юзаю гугловский сервис.
PS: Ребят, вы думаете, что мне заняться не чем и/или я тормоз, а может у меня бан в гугле?.. Прочитайте мой первый пост!
Пинговать можно 8.8.8.8 (условный адрес в интернете, за NAT-ом), либо 192.168.0.1(условный адрес внутри своей сети), если роутер не имеет доступа к интернету (работает Asterisk-ом внутренним, например), и иногда просто виснет.
сорри, можно удалить.
Поделитесь ссылочкой где покупали.
Флешка, которая идет по умолчанию (и которая была заменена Вами на 4МБ), какой у нее объем?
Верно ли я понимаю, что та прошивка, которая была скачана у Макса не зальется на флешку, которая идет с розеткой?
1МБ
Не могу ни подтвердить, ни опровергнуть (экспериментировал еще на прошлом термостате). Точно стартанула с ab-logа, и точно не стартануло 3 варианта других. Про Макса прошивку — не помню.
В принципе — проверить то Вам ничего не мешает. Если не стартанет — узнаете первым :)
Софтово положить там практически не реально, не заведется — поэкспериментируете с режимами (dout, dio), если все-равно не стартанет — замените флешку. Если дома нет, то они есть на многих свежих модулях с esp8266, в роутерах, еще в куче разных железяк.
Насколько трудно было решить проблему по замене реле? Вы писали, что новое имеет совсем другие контактные группы…
Прошивка abloga — это про Jan Penninkhof?
Прошивка которая выложена в конце поста это прошивка от MaksMS, которая собрана именно под Ваш чип? Не понимаю тогда, почему Вы не помните как она работает…
Это прошивка с ресурса ab-log.ru, ссылка есть в предыдущей статье.
Собрана указанная в тексте конфигурация. Залит у меня именно этот бинарник. На подобную специфическую флешку я пробовал заливать различные версии в прошлом проекте. Там это описано. В этом данная флешка была заменена еще до первого включения.
ebay.com/itm/292693715664
Винтов внутри розетки не нашел, как разобрать дальше пока не понял.
Интересует еще такой разрез, а родную ее прошивку никто не пробовал зашивать в обычную esp8266? Хотелось бы замутить пару нативно дружелюбных Алисе девайсов.