
Вот так выглядит пришедшая кучка.
На самом видном месте красуется красивая наклейка, о том, что 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, зато устройство через полчаса будет готово к эксплуатации.
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 — уже придумал во что их переделать. Тоже вполне очевидное решение, но как всегда есть нюансы :)
(c) 2017 Источник материала