Pull to refresh

Полезные устройства для дома: WiFi-розетка своими руками

Smart House IOT DIY Electronics for beginners
Sandbox

Привет 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 на одной плате не получилось из-за ограничений на размер корпуса.


Представленные платы совместимы для 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:



Всё получится компактно.


Питание ESP8266

Для питания легче всего использовать китайскую USB зарядку для телефона похожую на зарядку для IPhone.



Замене подвергнется только выделенный красным стабилитрон (диод Зенера). В USB зарядке на 5 Вольт, стоит стабилитрон на 5 Вольт. Для питания ESP8266 нужно 3.3 Вольта, и стабилитрон на 3.3 Вольта мощностью более 1 Ватта с запасом судя по потреблению (3.3 Вольт, <300 mA).



Далее выпаиваем USB коннектор и припаиваемся к + и -.


Плата контроля 220 Вольт

Понадобится:


  • 1 штук 500k Ом и 1 штука 470 Ом, 1 штука 200 Ом 0.125 Вт SMD резисторов;
  • 1 Симистор
  • 1 Опто-пара, MOC3052
  • две пары клемм для зажима 220 Вольтовых проводов

Развязка проводов между платами в Sprint-Layout

Файл доступен для скачивания вместе с другими ресурсами.


Прошивка

Скрипты находятся тут
Я использовал:


  • 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
    https://esp8266.ru/esplorer/>

Для оптимизации памяти, чтобы память 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 переходник.

Android

Управление розеткой происходит из андройд телефона. WiFi-Switcher Git-Hub


Процесс сканирования розетки

Когда розетка и телефон подключены к роутеру, андройд-телефон шлёт UDP-широковещательные пакеты роутеру на порт 33248, открытый на розетке. Она отвечает на него, передаёт свой Id и Type.


Ресурсы для скачивания

Конечное изделие




Ссылки


ESP8266 — подключение и обновление прошивки
Lua programming language information
Flashing the NodeMCU firmware
Лужение печатной платы сплавом Розе

Tags:
Hubs:
Total votes 32: ↑22 and ↓10 +12
Views 33K
Comments Comments 86