Мне нравится esp8266. Достаточно дешевый чип (стоимостью наверное где-то в пару долларов), комплектуемая к нему флеш-память (все чаще размером не менее 4 мегабайт) и открытое SDK позволило многим производителям железа делать свои изделия для домашнего использования, весьма недорогих и с возможностью подключаться к Wifi сетям диапазона 2.4 ГГц.
В данной статье я попытаюсь объяснить, как весьма неплохую «умную» розетку BlitzWolf BW-SHP6 подключаться не к китайским серверам производителя, а к собственным серверам Blynk и MQTT, возможность пинговать оборудование и дергать его питание в случае неответа. Конечно никто не запрещает использовать и родное облако Blynk.
Также есть возможность отправлять свои данные на narodmon.ru
Цена за розетку дана ориентировочная, она завышена — нередки случаи скидок, примерная цена 9.90-10.30$.
Розетка весьма приятная по качеству исполнения, родной интерфейс приложения Smart Life таков(есть возможность посмотреть текущее напряжение в сети и нагрузку):
ВНИМАНИЕ! Все действия по разбору и перепрошивке проводить с розеткой, отключенной от 220В!
(а то мне так было интересно снять логи с sonoff pow, когда он был подключен в сеть —
не делайте так!)
Для заливки своей прошивки необходимо разобрать розетку, выкрутив тонкой длинной крестовой отверткой винт с ее тыльной стороны:
(фото не мои, честно взяты в интернете, зачем делать то, что уже сделано другими)
Далее, сняв верхнюю часть розетки, мы должны будем открутить еще два винта, чтобы вынуть плату из корпуса. Перед этим необходимо пинцетом или отверткой отсоединить разъем u.fl от антенны, приклеенной к корпусу.
Обнаружено две ревизии версии этой розетки, скорее всего первый уже отсутствует на рынке, различия у них небольшие (но все же есть).
Необходимо иметь переходник который называется usb2ttl. Их много на али, цена копеечная.
Что-то типа такого:
ссылка
Тем более что такие переходники классно могут работать с шиной OneWire и расположенной ней датчиках DS18B20 и собирать данные о температуре на больших расстояниях с помощью копеечного роутера в самых неожиданных местах.Работает очень стабильно. Ладно, что-то я отвлекся…
Для первоначальной заливки прошивки необходимо на любой версии розетки подпаяться к контактам RX,TX, GND, и 3V3.
Также надо иметь что-то типа пинцета, чтобы замкнуть на период первоначальной загрузки после подачи питания разъема GPIO0 на землю.
RX соединить с разъемом TX переходника, TX с RX, питание с переходника подавать с разъема 3.3 вольта
На фото ниже зеленой линией указано, что надо замыкать при загрузке прошивки. К разъему reset во второй версии розетки подпаиваться не нужно.
Есть методика прошивки подобных розеток не разбирая их, но у меня это ни разу не получилось. При использовании ESP8266Flasher важно выставить правильные настройки, естественно драйвер на usb2ttl переходник у вас должен быть уже установлен, и когда вы его вставляете в usb порт, у вас должен появляться виртуальный COM-порт.
Проверили? Вынимайте usb2ttl переходник, загружайте программу ESP8266Flasher, не обращая внимания на отсутствие у вас нужного ком порта, выставляйте нужные параметры так, как они указаны(особенно вкладку advanced — иначе не сможете загрузить свою прошивку через http и придется разбирать розетку опять). Многие советуют перед заливкой собственной прошивки забить нулями один 1Мб флешки, мы так и поступим:
Потом замыкаете GPIO0 на землю, вставляете usb2ttl переходник в USB порт, у вас появляется ваш виртуальный порт в программе ESP8266Flasher, и нажимайте кнопку Flash.
На фото одета внешняя антенна, если у вас до роутера небольшое расстояние, можно обойтись и без нее.
Через какое-то время у вас появится точка доступа BLZ_мак_адрес_устройства, на нее надо зайти с паролем 12345678b и прописать ту точку доступа и пароль, к которой необходимо присоединяться.
В прошивке можно досоздать несколько заранее заданных точек, к которым можно присоединяться в случае первичной загрузки или потери основной точки доступа (файл WifiScan.ino, строки 53,54,55).
Настройки весьма минималистичные:
Обязательно! Необходимо зайти в настройки и прописать их в eeprom(Settings->eeprom->Write settings to eeprom), поскольку поначалу там будет мусор.
Теперь по поводу Blynk. Сервис этот мне интересен тем, что его разработчик позволяет установить локальный сервис blynk там, где вам хочется. У меня он установлен на купленной за 350 руб в месяц VPS под управлением ubuntu 16.04, которая еще и часть других функций выполняет. Плюсы этого: вы ни от кого не зависите, не надо платить разработчикам за добавление себе «энергии» — внутренней валюты для использования новых устройств и функций, ваш сервер вы можете делить с кем хотите или не делить вообще. Опять же я могу собирать данные хоть с MQTT и посредством node-red отправлять в blynk, либо собирать данные с одного Blynk устройства и установить логику работы другого в зависимости от первого прямо со смартфона.
У розетки есть возможность измерения вольтажа и тока, проходящего через нее, с помощью микросхемы BL0937
Скажу честно, измерения не очень точные. Для Корректного измерения вам сначала надо подредактировать коэффициенты
для выдачи правильных значений, лучше это делать с потребителем, параметры которого вы знаете (например, лампа накаливания 60 ватт)
Настройки просты-виртуальный V10 пин — отвечает за реле
V4- Терминал
V11- Вольтаж
V12- Напряжение
V13 — Сила тока
В терминал можно писать разные команды, доступна помощь через отправку команды help.
Мне кстати понравилась одна хитрость — хотите получать уведомления на email в определенный срок? Сделайте задачу eventor в Blynk и отправляйте команду emailreport в нужное время в терминал, на виртуальный пин V4. Blynk достаточно гибок. Можете строить графики, обновление каждого виртуального пина, выдающего данные энергомониторинга, происходит раз в минуту.
Я временно собираю данные с помощью node-red через MQTT, пока я не решил какую более продвинутую систему умного дома поставить. Но учитывая MQTT внедрение практически в любую проблемы не составит.
Да, я как-то не особо люблю формат json, поэтому все данные отправляются исключительно в «старом формате» — один топик — одна порция данных.Срыв в графике — это тестирование новой прошивки, данные в это время на MQTT поступали не все.
Какие прошивки также умеют использовать эту розетку:
Tasmota (
ссылка)- одна из наиболее продвинутых прошивок. Для меня минусами были то, что нет Blynk и MQTT выводятся в формате json.
espurna (
ссылка) тоже нет blynk, немного сложна в настройке. Хотя библиотеку измерений электронагрузки я взял именно оттуда, доработал ее с помощью другого человека(не хватило )
wifi-iot (
ссылка) уверен, что заведется без проблем. Опять же, нет blynk. Возможно придется заплатить небольшой взнос
Есть возможность пинга указанного ip-адреса (устройство), и если в течение настраиваемого числа попыток реле не сможет до него «достучаться», то просто выключит и включит реле на 30 секунд.
Разницы в железе в различных ревизиях почти нет, только вместо 14 GPIO в первой версии используется 4.
Розетка видится по SSDP при нахождении с вами в одной сети.
Обе скомпилированные версии я кладу вместе с исходными кодами прошивки и средой Arduino IDE portable (то есть не надо ее устанавливать, менять настройки, добавлять библиотеки)
Вот ссылка:
ссылка
И не судите строго за код(и за web версию настроек — я знаю, что можно было бы сделать ajax, сделать все красивее) — это просто мое хобби, никак не приносящее доходов, я не профессионал в этом. Если есть замечания или вопросы — пишите, на все вопросы отвечу, все замечания приму к сведению.
Спасибо большое IamNikolay за помощь в доработке библиотеки энергомониторинга.
ps: в том, что эти розетки производятся tuya smart я не держав из в руках уверен на 90+%.
Во-первых большинство wifi iot делается туей. А большинство остального либо полугиковские штучки типа sonoff/electrodragon, либо подвал. И с тем и с тем Яндекс вряд-ли станет связаться
Во вторых, если вас не убеждает внешне сходство корпусов розеток (в конце концов все розетки похожи друг на друга), то сравните внешний вид Яндекс.Пульта и Tuya Smart Remote
Не могу знать, говоря честно и коротко. Поскольку я не владею знаниями глобальными, относительно производителей и вендоров iot. Иначе бы я не задавал подобного вопроса.
Получилось выдрать ключи доступа по инструкции github.com/codetheweb/tuyapi/blob/master/docs/SETUP.md и дергать релешкой через tuyapi (в принципе не самый плохой обходной путь).
Думал прошить тасмоту, но поскольку tuya-convert не сработал, а подпаяться не раскурочивая девайс, довольно затруднительно, то буду жить на стоковой прошивке. Сегодня сумел подружить розетки с mqtt на стоковой прошивке — почти всё работает, кроме запроса состояния устройства. Если интересно, код тут — github.com/eburtsev/tuya2mqtt (Очень альфа-версия)
Когда ток падает через эту розетку, то время идёт назад!
Nodered вообще слаб в плане постройки красивых графиков, но для общего контроля подойдет
Так выглядят без нее:
github.com/ct-Open-Source/tuya-convert
Это эмулятор китайского облака, позволяющий штатным механизмом апдейтить прошивку на произвольную (напр. Tasmota).
Для rpi есть готовый образ сервера, если rpi в хозяйстве нет — теоретически можно поднять на виртуалке.
Не все устройства можно прошить.
Чтобы получилось на виртуалке в нее совершенно точно должно быть проброшено устройство wi-fi адаптера, а не просто виртуальная сеть. Например usb-wifi адаптер и проброс usb в виртуалку.
Но гораздо проще взять rpi. Хоть у знакомых на поиграться, если свой нет. Она нужна буквально на 10 минут
С бинарником — шейте то, что предлагается по умолчанию (какая-то версия tasmota). А затем уже через веб интерфейс этой tasmotы обновляйтесь до чего угодно
правда, там и с проводами не получилось-туя же другая типа.
Что значит «туя другая»? Большинство wifi розеток (в том числе и этот blitzwolf) и прочая производятся tuya smart.
ссылка
ссылка
Берется простой роутер типа TL-MR3020 или TL-WR703n, либо что-то другое, с usb портом.
По возможности — не менее 4 Мб флеш памяти
Надо сказать, что в последнее время цены на эти устаревшие роутеры крайне завышены, поэтому я использую дешевейший клон Hame A15(обзор на него здесь ксть).
Во все вышеуказанные роутеры лучше залить свой u-boot типа breed (инструкции на 4pda полно)
А вот потом вы начинаете думать что надо вам в вашей прошивке.
У OpenWrt есть т.н. imagebuilder, туда можно запихнуть то, что вам надо. Для работы надо:
kmod-usb-serial-pl2303(для работы с переходником на ttl)
digitemp(для считывания датчиков)
я добавляю еще nano, mosuitto-client, libmosquitto (для слива данных по MQTT)
и убираю luci(место под нее не хватает — как раз для этого и используется imagebuilder)
Ну и роутер можно подключать по ethernet, можно по wifi как клиент.
Работает, повторюсь, очень стабильно.
Датчиков у меня порядка 7 на одном длинном проводе длинной 200 метров.
Если будут еще вопросы — не стесняйтесь, задавайте.
Ps
Нашел дешевые с фиксированной доставкой
Но зачем?
Nodemcu это физ.плата
mqtt и blynk это сервис.
Не хотите — не используйте, можно хоть по http реле дергать, заходя на нужную страницу напрямую.
Ну и фирменная плата. Не лучше, не хуже остальных
Upd. Esp 01 — самая душманская плате — прекрасно рулит 3мя каналами сразу и ещё остаётся канал опроса чертовой кучи датчиков по одному порту.
У китайского облака можно даже вроде как к Алисе присоединить.
ESP все таки лучше распаянные. Посмотрите мой очень давний обзор здесь же на Sonoff(прошивка оттуда взята и допилена)
Смысл именно в компактности, воткнули розетку в стенную розетку и дальше потребитель.
Ничего не валяется, провода не мешают.
Розетка кстати достаточно эстетичная.
Я бы конечно больше 10А ей коммутировать не доверил (в обеих версиях железных ревизий стоит 16амперное реле), но как возможность вручную включить-выключить что-то и посмотреть, что оборудование через эт розетку включилось и начало потреблять ток — самое оно.
Выбор китайского облака с родной прошивкой или обычного облака Blynk(в этой прошивке можно и его использовать) или своего сервиса — каждый выбирает сам, но на китайское облако при его падении или отключении, или блокировке вы никак не можете повлиять. На свой сервер — можете.
1) облако
2) китайское
Считайте 8$ платой за цивильный компактный корпус
Хороший вариант для тех, кто не боится облаков. Дешёвые, маленькие и легко интегрируются в iobroker или иные сервисы. Несколько месяцев использую, полет нормальный, проблем не замечено.