• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

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

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

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

AndreyD

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

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

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

sav-13

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

AndreyD

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

sav-13

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

AndreyD

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

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

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

Lstt

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