Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

WiFi Розетка

Тема в разделе "Умный дом", создана пользователем AndreyD, 18 окт 2015.

  1. AndreyD

    AndreyD Читатель

    Сообщения:
    22
    Симпатии:
    6
    Вот и пришел мне модуль 1117. Выкладываю свой проектик:

    Схема:

    [​IMG]

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

    Код:
    wifiap.lua (раскрыть)

    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)


    init.lua (раскрыть)

    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)


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


    [​IMG]

    Управление через Винду:
    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 или прописываем их выполнение в планировщике.

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

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

    Дальше буду паять.
     
    Последнее редактирование: 20 окт 2015
  2. alexsmd

    alexsmd Новичок

    Сообщения:
    39
    Симпатии:
    0
    А как бы вы реализовали управление по кнопке?
     
  3. AndreyD

    AndreyD Читатель

    Сообщения:
    22
    Симпатии:
    6
    По кнопке это wifi выключатель?

    del
     
    Последнее редактирование: 18 ноя 2015
  4. Сергей Соловьев

    Сергей Соловьев Новичок

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

    Вложения:

  5. alexsmd

    alexsmd Новичок

    Сообщения:
    39
    Симпатии:
    0
    У меня затык, по вайфай все работает, но не могу правильно реализовать чтобы есп сидел и слушал гпио, не нажал ли я кнопку и не переключал свет.
     
  6. sav-13

    sav-13 Читатель

    Сообщения:
    97
    Симпатии:
    11
  7. AndreyD

    AndreyD Читатель

    Сообщения:
    22
    Симпатии:
    6
    Может отсюда можно что-нибудь почерпнуть, я сильно не вникал. Нет, не то, тоже без кнопки.

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

    igrushkin Читатель

    Сообщения:
    148
    Симпатии:
    11
    только один вопрос: реле вот запросто работает от 3.3в?
     
  9. AndreyD

    AndreyD Читатель

    Сообщения:
    22
    Симпатии:
    6
    Реле питается от 5 В. Если ко мне вопрос, по первой схеме.
     
  10. sav-13

    sav-13 Читатель

    Сообщения:
    97
    Симпатии:
    11
    ivy нравится это.
  11. AndreyD

    AndreyD Читатель

    Сообщения:
    22
    Симпатии:
    6
    После сборки схемы оказалось проблематично ввести модуль esp в режим прошивки (GPIO0 на ноль замыкал).

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

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

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

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

    sav-13 Читатель

    Сообщения:
    97
    Симпатии:
    11
    Посадите плату с ESP-шкой на такие разъемы и будет счастье. Нужно, достал ее, попрограммировал всласть и засунул обратно

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

    AndreyD Читатель

    Сообщения:
    22
    Симпатии:
    6
    Тоже вариант с разъемами.

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

    sav-13 Читатель

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

    AndreyD Читатель

    Сообщения:
    22
    Симпатии:
    6
    Могу только по факту сказать, что при подаче питания кратковременно срабатывает реле, затем на обоих gpio выход становиться ноль. Для этого я их в коде выходами и прописал. А нули автоматом получаются, переменные обнуляются.
     
  16. sav-13

    sav-13 Читатель

    Сообщения:
    97
    Симпатии:
    11
    Может выходы ESP к которым реле подключены подтянуть к земле через резисторы 10К ?
    Тогда не будет кратковременного включения.
     
  17. AndreyD

    AndreyD Читатель

    Сообщения:
    22
    Симпатии:
    6
    Попробовал, все равно моргает.

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

    [​IMG]
     
    Последнее редактирование: 6 фев 2016
  18. Lstt

    Lstt Новичок

    Сообщения:
    64
    Симпатии:
    4
  19. AndreyD

    AndreyD Читатель

    Сообщения:
    22
    Симпатии:
    6
  20. Lstt

    Lstt Новичок

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

Поделиться этой страницей