Hbars's personal
Заметки
wifi розетка
Купил я на али вот такую розетку.
Поставил на телефон программку, скрестил с роутером и оно все заработало. Но это все не то. А именно, есть привязка к некому ресурсу в интернете и соответственно никакой свободы, и масса подводных камней.
Так что проблему нужно было решить и она быстро решилась.
В розетке у меня модуль T102_v1.1 на RTL8710BX. Ваттметра не распаяно, так что с ним я и не заморачивался.
Можно было-бы написать все с нуля, но для розеток и других подобных штук есть такой проект как esphome. Так что поехали.
Для прошивки нам потребуется преобразователь уровней rs232<->ttl, или usb<->rs232(ttl).
Их есть всяких разных множество. Так что, что использовать ваше дело. У меня был usb<->rs232 на pl2303.
Паяем ваш RX на TX2 (PA30) модуля и TX на RX2 соответственно. Ground на GND. Внешнего питания я не подавал, а просто включал все это дело в 220! Соответственно usb<->rx232 был подключен ЧЕРЕЗ USB ИЗОЛЯТОР! И ПОДКЛЮЧЕННУЮ РОЗЕТКУ В СЕТЬ РУКАМИ НЕ ТРОГАТЬ! Мне так было проще. Так как развязка была и развязывающий трансформатор, на всякий случай, тоже. Можно конечно подключить внешнее питание 3в (что будет правильно), но как выяснилось, для этого видимо придется выпаять стабилизатор напряжения, или перерезать от него дорожку на питание модуля.
Забираем esphome:
git clone https://github.com/esphome/esphome
Документации как обычно не читаем :), поэтому просто копируем туда наш готовый конфиг.
В конфиге необходимо поправить ваше название точки доступа wifi и пароль! Остальное опционально и если понимаете что делаете.
Для теста можно запустить:
python3 -m esphome wizard yourdevice.yml
Ну и за одно посмотреть как конфигурируется новое устройство...
Если все прошло успешно и вы уверены что ваше устройство соответствует нашему конфигу можно собрать прошивку:
python3 -m esphome compile outlet.yaml
Ну и если все ок - загрузить ее в контроллер:
python3 -m esphome upload outlet.yaml
Во время процедуры прошивки usb<->rs232 должен быть подключен, или существовать нужный вам физический com порт.
Там же будет нарисована распайка программатора и описана процедура прошивки.
Так как вывода RESET на нашем модуле нет, то перевести в режим программирования его можно замыканием (на пример пинцетом) tx на gnd и его включением.
Запускаем:
python3 -m esphome upload outlet.yaml
и модуль благополучно прошивается.
После прошивки, если розетка подключилась к роутеру, идем на нее по http://<IP>/ нажимает кнопку и радуемся. :)
IP - адрес который она получила по dhcp от вашего роутера.
В противном случае ищем ее по wifi и в случае удачи пробуем то же самое по адресу http://10.1.1.1/
Если с подключением все в порядке то розетку можно собрать и дальнейшие эксперименты с прошивкой можно производить заливая ее по воздуху.
Прошивка находится в esphome/.esphome/build/outlet1/.pioenvs/outlet1/firmware.uf2
Файлы здесь.