Привет Geektimes! В статье хочу представить инструкцию по созданию WiFi-розетки.
Началось всё с того, что осенью наткнулся на WiFi-розетки в магазинах, подумал, что вроде ничего сложного, потом ознакомился с ESP8266 и понял, что готов сделать розетку сам.
Розетка будет состоять из:
- Корпус;
- ESP8266 12E с платой развязки питания;
- Питание для ESP8266 от 220 Вольт;
- Плата контроля 220 Вольт;
- Контрольная панель (кнопка, led, порт RJ45 для прошивки).
Прототип:
Разбив статью на спойлеры, мне хочется структурировать знания.
Корпус задумывался легким для сборки и разборки во время разработки и отладки, и по возможности прозрачным, чтобы видеть все компоненты.
Все платы имеют максимальный размер 5 x 3.5 см, поэтому коробка будет 5 х 5 х 3.5 см.
Материал:
- кусок оргстекла, наименьшего размера 0.5 x 0.25 метра, вполне хватит на десяток таких поделок
- петли, наименьшие из найденных 2.5 x 2.5 см
- шурупы
Оргстекло вырезал паяльником, разогретым до 300 градусов: линию разреза расчерчивал лезвием ножа, и затем проводил паяльником по линии с нажимом на паяльник, потом проводил с другой стороны, и тогда можно ломать по линии разлома.
Отверстия для шурупов к петлям высверливал мини дрелью на двигателе с цангой и сверлом 1мм.
Реализовать развязку питания вместе с ESP8266 на одной плате не получилось из-за ограничений на размер корпуса.
Представленные платы совместимы для ESP8266 12F и 12E:
Сама ESP8266 положилась на эту плату:
А развязка питания, и прошивки происходит здесь:
Понадобится 5 штук 10k Ом и 1 штука 470 Ом 0.125 Вт SMD резисторов и 0.1 mkF кондесатор SMD.
На 6-ти контактах по два отверстия, одно для входящего провода от платы Esp8266, а другое для исходящего провода в плату для гнезда RJ45 (используемый для прошивки).
PS: Соединение "locking on programmator wires" замыкается в режиме прошивки, например сделать перемычку в кабеле с коннектором RJ45.
Плата под гнездо RJ45:
Всё получится компактно.
Для питания легче всего использовать китайскую USB зарядку для телефона похожую на зарядку для IPhone.
Замене подвергнется только выделенный красным стабилитрон (диод Зенера). В USB зарядке на 5 Вольт, стоит стабилитрон на 5 Вольт. Для питания ESP8266 нужно 3.3 Вольта, и стабилитрон на 3.3 Вольта мощностью более 1 Ватта с запасом судя по потреблению (3.3 Вольт, <300 mA).
Далее выпаиваем USB коннектор и припаиваемся к + и -.
Понадобится:
- 1 штук 500k Ом и 1 штука 470 Ом, 1 штука 200 Ом 0.125 Вт SMD резисторов;
- 1 Симистор
- 1 Опто-пара, MOC3052
- две пары клемм для зажима 220 Вольтовых проводов
Файл доступен для скачивания вместе с другими ресурсами.
Скрипты находятся тут
Я использовал:
- NodeMcu — нужная для работы lua скриптов
её можно получить тут https://nodemcu-build.com/ с пакетами enduser setup, file, gpio, net, node, rtc-time, sntp, timer, uart, wifi.
sudo python esptool.py --port /dev/ttyUSB0 write_flash 0x00000 The_Path_To_The_NodeMCU_Firmware.bin
- Esplorer — для загрузки lua скриптов, html, js, css, и других файлов на ESP8266
Для оптимизации памяти, чтобы память ESP8266, которой маловато, не тратилась на компиляцию, после загрузки файлов на ESP8266, необходимо скомпилировать .lua файлы (кроме init.lua) в .lc прямо на ESP8266 через Esplorer.
node.compile("actionsprocess.lua")
node.compile("constants.lua")
node.compile("espgetstatehtml.lua")
node.compile("estbehaviour.lua")
node.compile("httpfilesender.lua")
node.compile("httpsend.lua")
node.compile("httpsender.lua")
node.compile("schedulermanager.lua")
Такая получилась у меня
Кнопка переключает ESP8266 в режим создания своей точки доступа в положении "Выкл" (для указания Точки доступа пользователя и пароля к точке доступа пользователя), в "Вкл" — рабочее состояние.
Светодиод — горит, когда кнопка "Выкл" (ESP8266 находится в режиме создания своей точки доступа);
- мигает, когда кнопка "Вкл", и ESP8266 в процессе подключения;
- не горит, когда кнопка "Вкл", и ESP8266 подключено к роутеру.
гнездо RJ45 — для прошивки, или питания через USB Uart переходник.
Управление розеткой происходит из андройд телефона. WiFi-Switcher Git-Hub
Когда розетка и телефон подключены к роутеру, андройд-телефон шлёт UDP-широковещательные пакеты роутеру на порт 33248, открытый на розетке. Она отвечает на него, передаёт свой Id и Type.
Ссылки
→ ESP8266 — подключение и обновление прошивки
→ Lua programming language information
→ Flashing the NodeMCU firmware
→ Лужение печатной платы сплавом Розе
Автор: Sorbo