Hbars's personal
Новости
wifi розетка UPDATED
Купил я на али вот такую розетку.
Поставил на телефон программку, скрестил с роутером и оно все заработало. Но это все не то. А именно, есть привязка к некому ресурсу в интернете и соответственно никакой свободы, и масса подводных камней. Так что проблему нужно было решить и она быстро решилась.
Прошивка обновлена. Там же есть прошивка под другую розетку с ваттметром на BK7231N и BL0937.
В розетке у меня модуль 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.3в (что будет правильно), но как выяснилось, для этого видимо придется выпаять стабилизатор напряжения, или перерезать от него дорожку на питание модуля.
ps: Ничего выпаивать не нужно. 3.3в подается на выход стабилизатора.
Забираем esphome:
git clone https://github.com/esphome/esphome
Доустановить для python3 нужно будет еще кучу всего.
Что помню, то вот это точно.
sudo apt install python3-argcomplete
sudo apt install python3-voluptuous
sudo apt install python3-jinja2
sudo apt install python3-zeroconf
sudo apt install python3-hid python3-serial python3-tqdm
sudo apt install python3-pip
sudo apt install python3.12-venv
sudo pip install platformio --break-system-packages
sudo pip install zeroconf --break-system-packages
Документации как обычно не читаем :), поэтому просто копируем туда наш готовый конфиг.
В конфиге необходимо поправить ваше название точки доступа 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-адрес или имя в DNS, который она получила по DHCP.
В противном случае ищем ее по wifi и в случае удачи пробуем то же самое по адресу http://10.5.5.5/ (SSID: devicename в конфиге, пароль: G9vxWE7UoAB6) и заливаем прошивку с правильными параметрами wifi.
Если с подключением всё в порядке, то розетку можно собрать и дальнейшие эксперименты с прошивкой можно производить, заливая ее по воздуху.
Для этого ее нужно просто пересобрать.
python3 -m esphome compile outlet.yaml
Прошивка находится в .esphome/build/<devicename>/.pioenvs/<devicename>/firmware.bin
Файлы здесь.
Там же файл для другой розетки с ваттметром на BK7231N (T34) и BL0937.
Как подключаться к T34 и прошивать здесь.
