ESP 2ch

Универсальное (1-8 каналов) Wi-Fi реле на ESP8266

Это полностью готовый проект — заливай скетч и пользуйся. Имеет несколько ключевых особенностей:

  • может быть легко перестроен под любое количество реле (от 1 до 8);
  • имеет диспетчер подключения к Wi-Fi (например в случае необходимости замены точки доступа или смены пароля от Wi-Fi);
  • управление через WEB интерфейс с любого устройства в локальной сети через браузер (подключение к Интернет не требуется);
  • запрос статуса состояния реле и возможность управления с помощью других плат ESP;
  • возможность присвоения статического IP адреса;
  • возможность работы с разными типами модулей реле.

Общий алгоритм работы показан блок-схеме:

После подачи питания программа ищет в файлах информацию необходимую для подключения к локальной (домашней) сети Wi-Fi. Если информация не найдена (первый запуск устройства) или сменился пароль от сети Wi-Fi — плата ESP82666 запускается как точка доступа.

Подключившись к этой точке доступа, можно открыть браузер, вбить в адресную строку IP 192.168.4.1 и в открывшейся странице задать параметры сети Wi-Fi, к которой необходимо подключиться.

Там же можно присвоить статический IP адрес и прописать шлюз. Перед этим необходимо зайти на домашний роутер и посмотреть, что раздает DHCP сервер и какие IP не заняты.

После нажатия кнопки Submit ESP8266 перезагрузится и будет доступна внутри домашней сети по адресу, который вы укажите. Я выбрал 10.168.0.200

Библиотека ESPAsyncWebServer умеет делать «динамический» HTML — количество отображаемых кнопок будет зависеть от настроек которые вы зададите в скетче. События происходящие при нажатии кнопок обрабатываются с помощью JavaScript — перезагрузка и обновление WEB страницы не требуются!
При запросе страницы — ползунки обновляются в соответствии с последним состоянием GPIO (можно одновременно управлять с нескольких устройств ПК, смартфон через WEB браузер).

Для проверки и отладки кода был собран прототип. (8 светодиодов + 8 резисторов номиналом 330-990 Ом)

Кроме WEB интерфейса, изменить состояние светодиодов можно отправив GET запрос вида:

Можно запросить состояние всех GPIO с помощью запроса:

Английская буква алфавита — номер реле, цифра после неё 1/0 включено/выключено.

Прошивка и настройка платы

Перед использованием необходимо установить в систему Arduino IDE две библиотеки:

В Папке с проектом есть папка DATA.

Файлы из этой папки необходимо разместить в файловой системе ESP (LittleFS).

Как установить загрузчик и загрузить файлы, читайте в этой статье:

После загрузки файлов необходимо откорректировать несколько строк в скетче:

Если устройств планируется несколько — лучше присвоить точке доступа понятное название. Я использую место установки + последняя цифра IP адреса который я планирую задать.

Читайте также:  Ноутбук тошиба вай фай нет

Задать пароль для точки доступа. Если у вас моргнет электричество и возникнет проблема с роутером, все ваши самодельные девайсы перейдут в режим точки доступа — чтобы в этот момент к ней не смог подключиться «замечательный сосед», лучше придумать свой надежный пароль.

Можно задать понятное название устройства — в WEB странице управления GPIO включена поддержка русской кодировки.

Количество реле — именно столько кнопок будет нарисовано в WEB интерфейсе управления. (у меня два реле)

Отредактировать массив к которым будут подключены реле (модули реле). Определиться с выбором GPIO, физических контактов на плате и особенностями подключения Вам поможет эта статья:

Источник

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

Привет 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.

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

Читайте также:  Передать файл через вайфай

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

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

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

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

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

её можно получить тут 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

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




Источник

Wi-fi розетка на esp8266 Умный дом

Умная розетка на ESP-wifi esp8266 esp-07

В сети Интернет поискал и нашёл много разных исполнений умных радиоуправляемых wifi розеток, но все варианты мне неустраивали или по исполнению или по методу управления или ардуино или инфа какая-то есть, но скучно читать — ни одной картинки, безобразие.

Представляю Вам Wifi розетку на модуле ESP8266.

В своём варианте исполнения релейной управляемой розетки использую модуль ESP-07(вы можете использовать ESP8266 сразу с UARTом на борту и NODEMCU вот такую напимер), Прошитый под LUA то есть nodemcu, соответственно напишу два скрипта LUA. О том как писать — вгружать скрипты писал в первой статье «Первая программа на LUA для ESP»
Использовать для написания и загрузки скриптов в модуль esp8266 буду программу

ESPlorer

схема умной радиоуправляемой wifi розетки релейного модуля esp8266" alt="схема умной радиоуправляемой wifi розетки релейного модуля esp8266

созданную именно под эти цели.
В первом скрипте будет реализована функция подключения к Wi-fi роутеру и 10 секундная задержка перед запуском второго скрипта основной программы.
Сделано именно с задержкой для того что-бы после перезагрузки модуля с помощью комманды tmr.stop остановки счётчика можно было остановить таймер и что-то подправить и вгрузить опять иначе программа при выполнении вам не даст ничего вгрузить вновь(вобщем делайте так)!
Второй скрипт будет содержать саму программу с поднятым веб сервером на котором будет простецкий html интерфейс с кнопками.
Простенькая схемка
Использовать — тоесть дёргать ногами будем GPIO2 и GPIO0.

Читайте также:  Wifi адаптер dwa 510

GO!

Первый скрипт

с именем init.lua
Обязательно с таким именем ибо nodemcu первым делом после старта загружает именно его.

 wifi.setmode(wifi.STATION) print('set mode=STATION (mode='..wifi.getmode()..')') print('MAC: ',wifi.sta.getmac()) wifi.sta.config("ИМЯ СЕТИ ВАЙФАЙ","ПАРОЛЬ") FileToExecute="rrr.lua" print("For stop have 10 sec") tmr.alarm(0, 10000, 0, function() print("Run".. FileToExecute) dofile(FileToExecute) --if wifi.sta.getip() == nil then print(wifi.sta.getip()) end) 

Незабываем в скрипте поменять имя и пароль от сети вайфай!

Второй скрипт назовём его rrr.lua
Будет поднимать вебсервер и ждать нажатия на кнопки.

print(wifi.sta.getip()) led1 = 3 led2 = 4 gpio.mode(led1, gpio.OUTPUT) gpio.mode(led2, gpio.OUTPUT) srv=net.createServer(net.TCP) srv:listen(80,function(conn) conn:on("receive", function(client,request) local buf = ""; local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP"); if(method == nil)then _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP"); end local _GET = <> if (vars ~= nil)then for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do _GET[k] = v end end buf = buf.." "; buf = buf.."  

ESP8266 2 channel Web Server

"; buf = buf.."

ESP8266 Web Server

"; buf = buf.."

GPIO0

"; buf = buf.."

GPIO2

"; buf = buf.."
Made in RUSSIA version 29.06.2018 radio.obninskiy.net "; buf = buf..""; local _on,_off = "","" if(_GET.pin == "ON1")then gpio.write(led1, gpio.HIGH); elseif(_GET.pin == "OFF1")then gpio.write(led1, gpio.LOW); elseif(_GET.pin == "ON2")then gpio.write(led2, gpio.HIGH); elseif(_GET.pin == "OFF2")then gpio.write(led2, gpio.LOW); end client:send(buf); client:close(); collectgarbage(); end) end)

Лучше скачать эти скрипты отсюда, так как в коде потёрлись(фильтранулись движком сайта) некоторые теги.

Скачать скрипты LUA для Умного дома реле.

init.lua

rrr.lua

Код может и корявый но рабочий_) Проверйяте)
Не обращайте внимание если при включении релюхи будут передёргиваться, это нормально для GPIO2 и GPIO0. Можете использовать другие ноги.

Если всё без ошибок, то Вы сможете войти в устройство через браузер по выданному от wi-fi роутера паролю. Ож нже будет выдан в интерфейс если смотреть в com порт автоматически при выполнении в скрипте комманды print(wifi.sta.getip())

соответствие GPIO LUA распиновка для скрипта

Распиновка ESP для работы с ногами GPIO в среде LUA

Добавлено 01.04.2020

Всвязи с распространением коронавируса по стране сидим дома и собираем очередную розетку для насоса малыша на обычном пускателе. Почему не твердотельное РЕЛЕ на симисторе? Да потому что китайцы суют в твердотелки 12 амперный 600вольт симистор и впаривают, а я в результате получу пробитый симистор от коммутации индуктивной нагрузки.
Пускатель(реле) тож может пригореть, но время покажет и эффективность снаббера.

Вот что получается.

Реле пускатель на ESP01
`Реле пускатель на ESP01
Реле пускатель на ESP01

Источник

Оцените статью
Adblock
detector