- Цена: $13.39
Мне нравится 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 за помощь в доработке библиотеки энергомониторинга.