WiFi Розетка

AndreyD

New member
Вот и пришел мне модуль 1117. Выкладываю свой проектик:

Схема:



Прошивка ESP-01 - nodemcu, взял отсюда.

Код:
wifi.setmode(wifi.SOFTAP)

cf={}
cf.ip="192.168.4.1"
cf.netmask="255.255.255.0"
cf.gateway="192.168.4.1"
wifi.ap.setip(cf)

cfg = {}
cfg.ssid = "test"
cfg.pwd = "12345678"
wifi.ap.config(cfg)


gpio.mode(3,gpio_OUTPUT)
gpio.mode(4,gpio_OUTPUT)

dofile("wifiap.lua")

srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:eek:n("receive", function(client,request)

local buf = "";
buf = [[
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title>WIFI выключатель</title>

<style type="text/css">
body {background:[HASHTAG]#eee[/HASHTAG];}
.i1Style{
font:bold 36px Arial, Monaco, monospace;
font-style:normal;
color:[HASHTAG]#FFF9D0[/HASHTAG];
background:[HASHTAG]#32CD32[/HASHTAG];
border:6px inset [HASHTAG]#cccccc[/HASHTAG];
text-shadow:0px -1px 10px [HASHTAG]#222222[/HASHTAG];
box-shadow:1px 1px 9px [HASHTAG]#000000[/HASHTAG];
-moz-box-shadow:1px 1px 9px [HASHTAG]#000000[/HASHTAG];
-webkit-box-shadow:1px 1px 9px [HASHTAG]#000000[/HASHTAG];
border-radius:83px 0px 90px 40px;
-moz-border-radius:83px 0px 90px 40px;
-webkit-border-radius:83px 0px 90px 40px;
width:30%;
padding:20px 43px;
cursor:pointer;
margin:0 auto;
}
.i1Style:active{
cursor:pointer;
position:relative;
top:2px;
}

.i2Style{
font:bold 36px Arial, Monaco, monospace;
font-style:normal;
color:[HASHTAG]#FCDD76[/HASHTAG];
background:[HASHTAG]#FF0000[/HASHTAG];
border:6px inset [HASHTAG]#cccccc[/HASHTAG];
text-shadow:0px -1px 10px [HASHTAG]#222222[/HASHTAG];
box-shadow:1px 1px 9px [HASHTAG]#000000[/HASHTAG];
-moz-box-shadow:1px 1px 9px [HASHTAG]#000000[/HASHTAG];
-webkit-box-shadow:1px 1px 9px [HASHTAG]#000000[/HASHTAG];
border-radius:83px 40px 90px 0px;
-moz-border-radius:83px 40px 90px 0px;
-webkit-border-radius:83px 40px 90px 0px;
width:30%;
padding:20px 43px;
cursor:pointer;
margin:0 auto;
}
.i2Style:active{
cursor:pointer;
position:relative;
top:2px;
}


</style></head><body> ]]

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

local _on,_off = "",""
if(_GET.pin == "ON1")then
gpio.write(3, gpio.LOW);
a = 1;
elseif(_GET.pin == "OFF1")then
gpio.write(3, gpio.HIGH);
a= 0;
end
if(_GET.pin == "ON2")then
gpio.write(4, gpio.LOW);
b=1;
elseif(_GET.pin == "OFF2")then
gpio.write(4, gpio.HIGH);
b=0;
end

if(a == 0 or a == nil)then
buf = buf.."<br><p><a href=\"?pin=ON1\"><button class=\"i1Style\">ВКЛ</button></a></p>";
else
buf = buf.."<br><p><a href=\"?pin=OFF1\"><button class=\"i2Style\">ВЫКЛ</button></a></p>";
end

if(b == 0 or b == nil)then
buf = buf.."<br><p><a href=\"?pin=ON2\"><button class=\"i1Style\">ВКЛ</button></a></p>";
else
buf = buf.."<br><p><a href=\"?pin=OFF2\"><button class=\"i2Style\">ВЫКЛ</button></a></p>";
end

buf=buf.."</body></html>";

client:send(buf);
client:close();
collectgarbage();
end)
end)

Как работает на макетке (видео):




Управление через Винду:
1) качаем wget
2) создаем два батника в папке wget
on.bat со строкой: wget http://192.168.4.1/?pin=ON1 -O-
off.bat со строкой: wget http://192.168.4.1/?pin=OFF1 -O-
3) устанавливаем связь с розеткой, через внешний wifi адаптер, например, если нет встроенного.
4) и включаем/включаем запуская on.bat/off.bat или прописываем их выполнение в планировщике.

В линуксах та же утилитка и запуск по времени через крон.

На сайтах я думаю можно встроить через фрейм или другими способами.

Дальше буду паять.
 
Последнее редактирование:
Сейчас тоже занимаюсь розеткой в познавательных целях, управление будет через браузер и приложение на андроиде (рисую в апп инвенторе, еще не все правда доделал) и программирую в ардуино. Результат уже есть кое какой, если интересно могу выложить. Аппаратную часть еще не делал, но думаю делать бестрансформаторный БП, надеюсь меньше места займет. Приложение пока сырое и выглядит так
 

Вложения

alexsmd

New member
У меня затык, по вайфай все работает, но не могу правильно реализовать чтобы есп сидел и слушал гпио, не нажал ли я кнопку и не переключал свет.
 

AndreyD

New member
У меня затык, по вайфай все работает, но не могу правильно реализовать чтобы есп сидел и слушал гпио, не нажал ли я кнопку и не переключал свет.
Может отсюда можно что-нибудь почерпнуть, я сильно не вникал. Нет, не то, тоже без кнопки.

В соседней, новой теме человек подключил датчик движения, может он что подскажет.
 
Последнее редактирование:

AndreyD

New member
После сборки схемы оказалось проблематично ввести модуль esp в режим прошивки (GPIO0 на ноль замыкал).

Варианты решения:
1. Доработать схему для возможной прошивки.
2. Прошивать окончательно модуль до сборки.
3. Как поступил я, припаял два штырька на общий ноль и один на питание самого esp и подать на него отдельное питание 3,3 вольта, при этом общую схему выключить из розетки. Второй штырек на нуле для переходника usb-ttl.

Сейчас схема выглядит так:


Внизу по центру, два штырька, которые рядом, оказались лишние. Левый верхний угол схемы общий ноль.

Осталось прикрутить к клеймам реле две розетки и вилку и запихнуть все это в коробку.
Еще хочу радиатор к esp приклеить.
 
Последнее редактирование:

sav-13

New member
После сборки схемы оказалось проблематично ввести модуль esp в режим прошивки (GPIO0 на ноль замыкал).
Еще хочу радиатор к esp приклеить.
Посадите плату с ESP-шкой на такие разъемы и будет счастье. Нужно, достал ее, попрограммировал всласть и засунул обратно

P.S. На мой взгляд все очень громоздко получилось. Все это в корпус розетки запихивается
 

AndreyD

New member
Посадите плату с ESP-шкой на такие разъемы и будет счастье. Нужно, достал ее, попрограммировал всласть и засунул обратно

P.S. На мой взгляд все очень громоздко получилось. Все это в корпус розетки запихивается
Тоже вариант с разъемами.

Согласен, что громоздко, я в пластиковую коробку хочу все разместить, а на нее две внешних розетки прикрепить и шнур с вилкой к ней. Получиться WiFi удлинитель. )
 

sav-13

New member
Все не могу придумать практическое применение этих розеток ))) Ну да ладно
Скажите, а какое значение на логическом выходе ESP, куда подключена розетка, при перезагрузке контроллера?
Они вроде в высокоинпендансное (тьфу блин) состояние уходят и реле непонятно как работает.
 

AndreyD

New member
Скажите, а какое значение на логическом выходе ESP, куда подключена розетка, при перезагрузке контроллера?
Они вроде в высокоинпендансное (тьфу блин) состояние уходят и реле непонятно как работает.
Могу только по факту сказать, что при подаче питания кратковременно срабатывает реле, затем на обоих gpio выход становиться ноль. Для этого я их в коде выходами и прописал. А нули автоматом получаются, переменные обнуляются.
 

sav-13

New member
Могу только по факту сказать, что при подаче питания кратковременно срабатывает реле, затем на обоих gpio выход становиться ноль. Для этого я их в коде выходами и прописал. А нули автоматом получаются.
Может выходы ESP к которым реле подключены подтянуть к земле через резисторы 10К ?
Тогда не будет кратковременного включения.
 

AndreyD

New member
Может выходы ESP к которым реле подключены подтянуть к земле через резисторы 10К ?
Тогда не будет кратковременного включения.
Попробовал, все равно моргает.

Фото со шнуром питания и розетками:

 
Последнее редактирование:

AndreyD

New member

Lstt

New member
На али можно и совсем готовую купить, но смысл же самому собрать.
Так а в чём профит по железу? - Стоимость с учётом корпуса - я думаю, такая же - а вот софтовая часть - Arduino IDE, к примеру, и вперёд, воплощайте все Ваши фантазии в красивом и безопасном корпусе...
 
Сверху Снизу