Делаем недорогую WiFi розетку на ESP8266

Компоненты для недорогой WiFi розеткиПродолжая цикл статей о WiFi-модулях ESP8266 расскажу как сделать очень бюджетную WiFi розетку

Для этого нам нужно:

Итого, бюджет $5-$8 в зависимости от выбора компонентов

Компоненты для недорогой WiFi розетки

Розетка под переделку в WiFi

Подробнее про омроновские реле я писал статью здесь

Схема нашей WiFi розетки будет такой

Схема WiFi розетки

Собираем все внутри корпуса розетки

WiFi розетка

 

Теперь загружаем программу через  Arduino IDE. Статья про программирование ESP8266 в Arduino IDE

Скетч WiFi розетки для...

Включаем розетку, а в нее лампу в 25Вт. Теперь можно подключаться с компьютера/планшета/телефона к нашей розетке по HTTP

Подключаюсь с планшета к веб-серверу ESP-шки по имени или IP-адресу

Подключение к WiFi розетке

Подключение к WiFi розеьке

Видео работы WiFi розетки

А это мечтающий об умном доме кот )))
2001

 

 

Скетч ESP8266 WiFi розетки
2.4 KiB
13819 Downloads
Детали
Вы можете оставить отзыв или трекбек со своего сайта.

107 комментариев на «Делаем недорогую WiFi розетку на ESP8266»

  1. igneus:

    Спасибо огромное за скетч. Не могли бы вы сделать версию с 2мя кнопками под 2 реле, чтобы можно было разобраться как добавлять новые реле.

    P.S. и еще у меня почему-то не работает адрес который выдается в мониторе порта, подключиться удается только по http://192.168.1.4

    • Serg:

      Вместо строки:
      Serial.printf( «HTTP server ok! Open http://%s.local in your browser\n», host);

      Пишем строку:
      Serial.println(WiFi.localIP());

      Итого в мониторе будет виден IP ESP, который используем вместо ссылки.

      П.С. Эти реле работают только с переменным током.

      • Serg:

        Еще полезно добавить статический IP:

        После const char* password = «***»; добавляем:
        IPAddress ip(192,168,1,128); //Статический IP
        IPAddress gateway(192,168,1,1); //IP роутера
        IPAddress subnet(255,255,255,0); //маска

        После WiFi.begin(ssid, password); добавляем:
        WiFi.config(ip, gateway, subnet);

  2. AVL:

    Спасибо.
    Прошил скетч.
    В терминале: HTTP server ok! Open http://esp8266-power.local in your browser
    На мой взгляд это абсолютно сбивающее с толку сообщение.
    Лучше б оно выдавало адрес в локальной сети, а то я пол часа потратил, пока запустил веб-интерфейс.
    Использовал сторонний сканер ай-пи что б выловить адрес нашего девайса.
    Разве в термнал не может выводиться его значение?
    Спасибо.

    • Serg:

      «В терминале: HTTP server ok! Open http://esp8266-power.local in your browser На мой взгляд это абсолютно сбивающее с толку сообщение.
      Лучше б оно выдавало адрес в локальной сети»

      Добавь вместо строки:
      Serial.printf( «HTTP server ok! Open http://%s.local in your browser\n», host);

      Строку:
      Serial.println(WiFi.localIP());

      Итого в мониторе будет виден IP ESP.

  3. AVL:

    И ещё два неприятных момента из моих наблюдений.
    1-й.
    После РЕСЕТа розетка принимает ВЫКЛЮЧЕННОЕ состояние, хотя до РЕСЕТа была включена.

    2-й.
    Во время РЕСЕТа светодиод мна управляющем пине мигает. Значит, если в реальной жизни к розетке подключён, к примеру, привод гаражных ворот, то ворота или приоткроются или вообще неснкционированно откроются, что не есть хорошо.

  4. Michael:

    не могу загрузить, выдаёт ошибку в этой строке

    server.onNotFound ( HTTP_handleRoot );

  5. motor:

    С прошивкой от homes-smart.ru будет эта схема работать?

  6. Александр:

    Добрый день

    Меня мучает вопрос, каким образом реле на 5В управляется напрямую напряжением 3.3В?
    Везде пишут, что для этого надо подключать его через транзистор и дополнительный источник питания на 5В. Не хочется заморачиваться с дополнительным питанием, потому и спрашиваю.

    • Alexey:

      Это реле состоит из оптопары и симистора, к ней подключенного.
      Оптопара открывается загоранием светодиода. В цепи светодиода стоит ограничивающий резистор. При 3.3В на управляющем светодиоде ток меньше чем при 5В, но достаточный для открытия симистора.

  7. Александр:

    Прошу прощения, не заметил ссылки на статью про это реле, что оно работает и от пониженного напряжения.

  8. IROBOT:

    Спасибо за статью.Залил в Node MCU.Адрес пришлось через роутер узнавать.Добавить еще пару команд и можно дистанционно управлять роботом ))

  9. no_nic:

    а с esp8266 esp-14 не сталкивались?

  10. Алексей:

    я начинающий. скажите а какое реле можно использовать, чтобы не 220V наргрузку, а постоянный ток 12v.
    Спасибо

    • Alexey:

      Либо любое механическое реле. (Только они в большинстве своем питаются от 5 В и выше), либо мощный MOSFET транзистор. Причем вторым можно настроить диммирование 12В, то есть если у вас лента светодиодная, управлять яркостью

  11. Omega:

    У мены несколько блоков реле. Механические, синие. Самые распространенные, расчитанные на 5В по управлению. В общем начинают срабатывать от 3.1, и на 3.3 уверенно отрабатывают. Причем для опытов я не только управляющий сигнал подавал 3.3 Вольта на оптопары, но и саму обмотку запитывал от 3.3.

    Заметил следующее- реле срабатывает (мое, механическое) если на вход подать логический ноль (на GND т.е. замкнуть).
    Соответственно работает инверсно. Т.е . пишет состояние «выключено», когда оно включено, и наоборот. Но это подправить не проблема. Смущает, как уже выше упоминалось, что плата при отключении питания (иммитация отключения света) НЕ запоминает состояние. В моем случае (управление нулем) реле переходит в состояние ВКЛ. Т.е если, предположим, управляем поливом воды на даче, то если свет перемигнул, то реле перейдет в состояние ВКЛ (предположим было ВЫКЛ до пропадания электричества) и зальет весь огород.
    Ведь я-то не проверяю состояние регулярно в телефоне.
    Можно, конечно инвертировать управление, но тогда все равно я буду думать что включил полив огорода….засеку например часа три и буду выключать воду. А окажется что электричество пропадало сразу же и полива по факту не было.

    PS: возможно можно в вебсервере врисовать еще и его uptime, по которому ориентироваться когда был ребут платы.

    • Alexey:

      Видел такую схему. С питания диод шоттки + большой электролит. А один из входов на питание до диода.
      Вся периферия сильноточная тоже до диода. Получается следующее. При выключении питания вся периферия вырубается, а контроллеру еще есть драгоценные секунды, пока электролит держит. Вход, что к питанию подключен фиксирует что напряжение пропало и контролер валит текущее состояние в EEPROM.
      А потом при возобновлении питания восстанавливает состояние из EEPROM

      • Ged:

        А почему нельзя писать в EEPROM при установке состояния? Там ограниченное количество перезаписи?

        • Alexey:

          Можно и так
          EEPROM имеет ограниченное количество циклов записи. Например, у той что большинстве ESP — 100000, так что «на наш век хватит», если не выключать много раз в секунду.
          На крайний случай, ставится хороший кондер по питанию и один вход через диод заводится на питание.
          При пропадании питания на этом входе производится запись в EEPROM до того как микроконтроллер выключится.

          • Максим:

            Есть еще один вариант — использовать бистабильное реле. Валялось у меня такое с серебряными контактами, советского образца))). Там две переключающие катушки, вроде на 220в, перемотал их на 5в., собрал схему на мосфетах с таймером (реле срабатывает после полу-секундной задержки, иначе щелкало бы при включении т.к. у меня ESP-01) одинаковые для каждой катушки. Управляется реле секундными импульсами от выводов GPIO0 и GPIO2. Получилась механическая память)

  12. Дмитрий:

    Алексей, спасибо за полезную и рабочую штуку! А как все-таки сделать, чтобы реле было 2 (или несколько, если пользовать ESP с большим количеством gpio)? Для чайников дайте, пожалуйста, понятное объяснение, как добавлять в скетч нужные строчки!
    Спасибо.
    С уважением,
    Дмитрий

  13. Александр:

    Приветствую алексей. Пробую организовать гет запрос на примере вашего проекта. Подскажите, что не так? Не идёт гет отправка на страницу. Вы как бывалый программист должны знать.
    Вот код. Я добавил всего две строчки.
    #include
    #include
    #include
    #include

    // GPIO, куда подцелено реле
    uint8_t PowerPin = 2;
    bool PowerOn = false;

    // Имя хоста
    const char* host = «esp8266-power»;
    // Вместо звездочек свои параметры WiFi сети
    const char* ssid = «INGR»;
    const char* password = «hotswf»;

    ESP8266WebServer server(80);

    WiFiClient client;
    IPAddress ip1(192,168,83,80);

    void setup() {

    if (!client.connect(ip1, 80)) {
    Serial.println(«Connection %s failed»);
    }
    String out1 = «GET http://192.168.83.80/site1.ru/www/index.php?t=32 HTTP/1.1\r\n\r\n»;
    client.print(out1);

    // Последовательный порт для отладки
    Serial.begin(115200);
    Serial.printf(«\n\nFree memory %d\n»,ESP.getFreeHeap());

    // Инициализация выхода реле
    pinMode(PowerPin , OUTPUT);
    digitalWrite(PowerPin , PowerOn);

    // Подлючение к WiFi

    WiFi.mode(WIFI_AP_STA);
    WiFi.begin(ssid, password);
    if(WiFi.waitForConnectResult() == WL_CONNECTED){
    // Запуск WEB-сервера
    MDNS.begin(host);
    server.on ( «/», HTTP_handleRoot );
    server.onNotFound ( HTTP_handleRoot );
    server.begin();
    Serial.printf( «HTTP server ok! Open http://%s.local in your browser\n», host);
    }
    else {
    Serial.printf(«WiFi started is fail»);
    }

    }

    void loop() {
    server.handleClient();
    delay(50);
    }

    /*
    * Оработчик главной страницы сервера
    */
    void HTTP_handleRoot(void) {
    bool stat = false;

    if( server.hasArg(«stat») ){
    if( strncmp(server.arg(«stat»).c_str(),»1″,1) == 0 )stat = true;
    }
    else {
    stat = PowerOn;
    }

    String out = «»;

    out =
    «\
    \
    \
    WiFi розетка\
    \
    body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }\
    \
    \
    \
    WiFi розетка. Версия 1.0\n»;

    if( stat ){
    out+=»\
    Состояние: Включено\
    Выключить\
    «;
    }
    else {
    out+=»\
    Состояние: Выключено\
    Включить\
    «;
    }
    out+= «\
    \
    «;
    server.send ( 200, «text/html», out );
    if( stat != PowerOn ){
    PowerOn = stat;
    digitalWrite(PowerPin , PowerOn);
    if( PowerOn )Serial.println(«Power is ON»);
    else Serial.println(«Power is OFF»);
    }

    }

    • Алексей:

      Вполне вероятно, что переменная client не проинициализирована в тот момент, когда её пытаетесь позвать.
      Попробуйте
      WiFiClient client = server.available();
      а потом уже что-то посылать, но есть ощущение, что врядли этот GET пройдёт.
      GET я так понял нужно с web клиента делать, а не с WiFiClient`а.
      Надеюсь, я ошибаюсь.

  14. Стас:

    А возможно как-нибудь сделать управление этой розеткой с приложения E-control
    http://4pda.ru/forum/index.php?showtopic=573779&st=3580

  15. Александр:

    Добрый день не могу скомпелировать WiFi_power.ino версия 1.6.5 дает ошибки
    Arduino: 1.6.5 (Windows XP), Плата»Generic ESP8266 Module, Serial, 80 MHz, 40MHz, DIO, 115200, 512K (64K SPIFFS), ck, Disabled, None»

    Изменена опция сборки, пересобираем все
    WiFi_power.ino: In function ‘void setup()’:
    WiFi_power:22: error: redefinition of ‘void setup()’
    sketch_mar25a:1: error: ‘void setup()’ previously defined here
    WiFi_power.ino: In function ‘void loop()’:
    WiFi_power:50: error: redefinition of ‘void loop()’
    sketch_mar25a:6: error: ‘void loop()’ previously defined here
    redefinition of ‘void setup()’
    версия 1.6.7
    Arduino: 1.6.7 (Windows XP), Плата:»Generic ESP8266 Module, Serial, 80 MHz, 40MHz, DIO, 115200, 1M (512K SPIFFS), ck, Disabled, None»

    In file included from c:\documents and settings\admin\local settings\application data\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\memory:63:0,

    from C:\Documents and Settings\Admin\Local Settings\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.1.0-rc2\libraries\ESP8266WiFi\src/WiFiClient.h:24,

    from C:\Documents and Settings\Admin\Local Settings\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.1.0-rc2\libraries\ESP8266WiFi\src/ESP8266WiFi.h:39,

    from D:\ARDUINO\WiFi_power\WiFi_power.ino:5:

    c:\documents and settings\admin\local settings\application data\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\allocator.h:46:75: fatal error: bits/c++allocator.h: No such file or directory

    #include // Define the base class to std::allocator.

    ^

    compilation terminated.

    Что делать посоветуйте может какую другую версию Arduino IDE предложите качал с оф сайта https://www.arduino.cc/en/Main/Software. Помогите я в программировании не силен.

    • Alexey:

      Я увидел параметр сборки «Версия 1.6.7». Нормально работает ESP Core for Arduino IDE под версию 1.6.5

      • Александр:

        Я пробовал и 1.6.5 посмотрите в начале ошибки 1.6.5

        • Александр:

          Arduino: 1.6.5 (Windows XP), Плата»Generic ESP8266 Module, Serial, 80 MHz, 40MHz, DIO, 115200, 512K (64K SPIFFS), ck, Disabled, None»

          Изменена опция сборки, пересобираем все
          WiFi_power.ino: In function ‘void setup()’:
          WiFi_power:22: error: redefinition of ‘void setup()’
          sketch_mar25a:1: error: ‘void setup()’ previously defined here
          WiFi_power.ino: In function ‘void loop()’:
          WiFi_power:50: error: redefinition of ‘void loop()’
          sketch_mar25a:6: error: ‘void loop()’ previously defined here
          redefinition of ‘void setup()’

          • Alexey:

            Мне кажется, в папке со скетчем лежит два файла имеющих setup() и loop()

  16. Александр:

    Спасибо Вы были правы два фйла. Прошлась но ничего в WiFi не появилось. Может сначала прошить чем нибудь стандартным ? Чем посоветуете?
    Вот что при прошивке говорит:
    Sketch uses 248 796 bytes (57%) of program storage space. Maximum is 434 160 bytes.
    Global variables use 36 652 bytes (44%) of dynamic memory, leaving 45 268 bytes for local variables. Maximum is 81 920 bytes.
    Uploading 252944 bytes from C:\DOCUME~1\Admin\LOCALS~1\Temp\build6809773912049107277.tmp/WiFi_power.cpp.bin to flash at 0x00000000
    ………………………………………………………………………………………………………………………………………………………………………………………………..

  17. Александр:

    Спасибо огромное перепрошил ECP залил прогу и все заработало!

  18. Спасибо! Классно работает!

    А как можно привязать к MQTT серверу с вашим скриптом (с сохранением веб странички)? Перерыл вес гитхуб, ничего не нашел.

    • Alexey:

      Поставить туда MQTT библиотеку
      Сходу нашлось это и это

      В принципе большинство ардуиновских библиотек, если они не «низкоуровневые» переносятся на ESP8266 без проблем

      • Да, по этим линкам я уже тоже бывал. Проблема в том что в коде я ничего не соображаю, как связать два проекта в один для меня тёмный лес. В наличии имеется парочка таких вот бутербродов http://mysku.ru/blog/aliexpress/38586.html и парочка Sonoff HT.

        Этот проект вроде совмещает оба удовольствия но у меня не компилется, ругается на «callback»

        • Alexey:

          Возьмите прошивку HOME-SMART как в этой статье
          Возможно для ваших задач бесплатной версии хватит. В крайнем случае, заплатите 100 руб на развитие проекта и получите полную версию

          Очень богатый функционал и ничего не нужно программировать

          • Там получаю ошибку

            mqtt-0 2016-04-21 17:15:03 error Cannot parse {«system»:{«hostname»:»ESP000CD343″,»uptime»:3,»rssi»:-57,»freemem»:33720},»sensors»:},»gpio»:{«12″:0,»13»:0}}
            mqtt-0 2016-04-21 17:15:03 info Client [ESP8266000cd343] subscribes on topic «timestamp»
            mqtt-0 2016-04-21 17:15:03 info publishOnSubscribe send all known states
            mqtt-0 2016-04-21 17:15:03 info Client [ESP8266000cd343] subscribes on «ESP000CD343.#» with regex /^mqtt\.0\.ESP000CD343\..*/
            mqtt-0 2016-04-21 17:15:03 info Client [ESP8266000cd343] subscribes on «ESP000CD343.#» with regex /^ESP000CD343\..*/
            mqtt-0 2016-04-21 17:15:03 info Client [ESP8266000cd343] connected
            mqtt-0 2016-04-21 17:11:51 info Starting MQTT server on port 1883

            12 — пин релюшки
            13 — пин светодиода

  19. Петр:

    Чтоб не ломать голову какой там локальный IP Просто добавьте такую команду » Serial.println(WiFi.localIP()); »
    после того как модуль отчитается о том что подключился к вашей локалке в порт вылетит локальный IP и всё заработает.

  20. Никита:

    Какие резисторы нужны (лучше ссылку на али)
    Сам на али нашёл набор из 30 видов по 10 шт всё за 100 руб
    Но наверное ,я больше половины из них не придумаю как использовать.
    (Работу резисторов и ост буду изучать во время их пути ко мне)

  21. Vladimir:

    Здравствуйте.

    Спасибо огромное за скетч. Можно попросить добавить возможность переключать реле через кнопку (например D3 — поключается на «-«) и дополнительно показывать статус реле через светодиод (например через D4).

    Зарание спасибо если это не трудно.

    • Alexey:

      А не хотите самостоятельно попробовать?
      Если вы уж залили скетч в ESP-шку, то разобраться в несложном коде и добавить несколько строк просто

      • Sergey:

        Здраствуйте. скетч залил без проблем, непонятно почему ESP работает одновременно и сервером и клиентом, тоесть она подключилась к моей сети через указанный пароль и логин и тут же сама работает как точка доступа причём на том же канале где и роутер к которому подключилась, при этом доступ к ней незащищён подключайся кто хочеш. как так вышло ?

  22. Albert:

    спасибо за скетч. именно с него и начинал, пока не пришел к majordomo.
    единственный минус — модуль не сохраняет состояние пина на случай неожиданного пропадания питания. в прошивке от wi-iot.ru решили эту ситуацию. там в коде добавляется приставка &flash. это позволяет записать состояние в память модуля и при перезагрузке он неожиданно не включает реле.
    такой фокус можно провернуть и с esp-01, проверял.

  23. Albert:

    единственно вопрос. сейчас выпускают бутерброды по типу такого https://ru.aliexpress.com/item/ESP8266-serial-WIFI-Witty-cloud-Development-Board-ESP-12F-module-MINI-nodemcu/32577398010.html?spm=2114.10010208.1000014.27.5DY9h5&scm=1007.13338.49932.0&pvid=db157451-5b23-46e2-b675-fa8a020a6ace&tpp=1&detailNewVersion=&categoryId=400103

    надо ли на них подтяжку ног делать или там уже все есть ?

  24. Никита:

    Купил поняжающий преобразователь AC-DC Преобразователь Питания Понижающий Преобразователь Сыходзь Модуль 3.3 В 600mA
    http://s.aliexpress.com/fIBZ3uYf
    (from AliExpress Android)
    А он выдаёт не 3.3v а 9 .может это я чтото не так делаю или что то не то прислали (1в 1 как на фото)

  25. Никита:

    Вольтаж упал до 4.5 вольт (16 резисторов по 10 кОм)Это нормально ?
    Мне esp напрямую подключать ?(без резисторов(не сгорит?)

  26. Рахат Лукумович:

    Кот шикарный.

  27. Никита:

    Блин вроде по схеие подключил а в com порт ничего не посылает и не прошивается.
    Что может быть не так ?
    ESP-07 ESP8266
    FT232RL FT232 FTDI TTL
    rts у него сбоку распаян как я понял

  28. Дмитрий:

    Подскажите как мне подключить к модулю файл?

  29. Дмитрий:

    Подскажите как мне подключить к модулю файл? Пользуюсь прошивкой NodeMCU, код пишу в ESPlorer

  30. Slaiterx:

    как сделать тоже самое но с двумя каналами

    • Alexey:

      Поставить второе реле к другому GPIO

    • Ололош:

      можно так:

      /**
      * WiFi розетка. Версия 1.0
      * Copyright (C) 2015 http://samopal.pro
      */
      #include
      #include
      #include
      #include

      // GPIO, куда подцелено реле
      uint8_t PowerPin1 = 4;
      uint8_t PowerPin2 = 5;
      bool PowerOn1 = false;
      bool PowerOn2 = false;

      // Имя хоста
      const char* host = «esp8266-power»;
      // Вместо звездочек свои параметры WiFi сети
      const char* ssid = «666»;
      const char* password = «11111111»;

      ESP8266WebServer server(80);

      void setup() {
      // Последовательный порт для отладки
      Serial.begin(115200);
      Serial.printf(«\n\nFree memory %d\n»,ESP.getFreeHeap());

      // Инициализация выхода реле
      pinMode(PowerPin1 , OUTPUT);
      pinMode(PowerPin2 , OUTPUT);
      digitalWrite(PowerPin1 , PowerOn1);
      digitalWrite(PowerPin2 , PowerOn2);

      // Подлючение к WiFi

      WiFi.mode(WIFI_AP_STA);
      WiFi.begin(ssid, password);
      if(WiFi.waitForConnectResult() == WL_CONNECTED){
      // Запуск WEB-сервера
      MDNS.begin(host);
      server.on ( «/», HTTP_handleRoot );
      server.onNotFound ( HTTP_handleRoot );
      server.begin();
      Serial.printf( «HTTP server ok! Open http://%s.local in your browser\n», host);
      Serial.println(WiFi.localIP());
      }
      else {
      Serial.printf(«WiFi started is fail»);
      }

      }

      void loop() {
      server.handleClient();
      delay(50);
      }

      /*
      * Оработчик главной страницы сервера
      */
      void HTTP_handleRoot(void) {
      bool stat1 = false;
      bool stat2 = false;

      if( server.hasArg(«stat1») ){
      if( strncmp(server.arg(«stat1″).c_str(),»1»,1) == 0 )stat1 = true;
      }
      else {
      stat1 = PowerOn1;
      }
      if( server.hasArg(«stat2») ){
      if( strncmp(server.arg(«stat2″).c_str(),»1»,1) == 0 )stat2 = true;
      }
      else {
      stat2 = PowerOn2;
      }
      String out = «»;

      out =
      «\
      \
      \
      WiFi выключатель\
      \
      body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }\
      \
      \
      \
      WiFi выключатель. Версия 1.0\n»;

      if( stat1 ){
      out+=»\
      Состояние1: Включено\
      Выключить\
      «;
      }
      else {
      out+=»\
      Состояние1: Выключено\
      Включить\
      «;
      }
      if( stat2 ){
      out+=»\
      Состояние2: Включено\
      Выключить\
      «;
      }
      else {
      out+=»\
      Состояние2: Выключено\
      Включить\
      «;
      }
      out+= «\
      \
      «;
      server.send ( 200, «text/html», out );
      if( stat1 != PowerOn1){
      PowerOn1 = stat1;
      digitalWrite(PowerPin1 , PowerOn1);
      if( PowerOn1 )Serial.println(«Power1 is ON»);
      else Serial.println(«Power1 is OFF»);
      }
      if( stat2 != PowerOn2 ){
      PowerOn2 = stat2;
      digitalWrite(PowerPin2 , PowerOn2);
      if( PowerOn2 )Serial.println(«Power2 is ON»);
      else Serial.println(«Power2 is OFF»);
      }

      }

  31. NexusPlane:

    Прошился и всё работает до момента подпайки резистрора и реле
    Вот фото подключения до подпайки https://goo.gl/photos/bbZP1T33LtaZUP4a7
    Вот после https://goo.gl/photos/t28ZWx3MjehX1Awf9
    После того как подпоял то модуль не подключается к wi-fi и просто горит светодиод на модуле, что нетак ?
    Питание использовал как от arduino так и от 3.3v 600mA разницы никакой
    Когда не подпаян модуль нормально подключается и включает выключает светодтод через браузер

    • NexusPlane:

      В общем не дождавшись ответа сменил в скетче пин2 на пин5 и всё заработало.
      Только я подключил к 4 портовому удлиеителю перед оранжевой кнопкой(переключатель) и когда нажимаю включить у меня сначала пол секунды мигает кнопка (вместе с тем что подключено в разетку) и включается .
      Так и должно быть ?

    • Alexey:

      А в порт отладочный что выдает?

      • NexusPlane:

        в этом есть проблема так как плата с самого начала (с моментак покупки) ничего не пишет в монитор порта ( может програмно что-то не настроил правильно, прошивается нормально а в мониторе пустота)

        • Alexey:

          // Последовательный порт для отладки
          Serial.begin(115200);
          Serial.printf("\n\nFree memory %d\n",ESP.getFreeHeap());

          Этот код настраивает отладку в первый порт.
          Скорость 115200
          Отладка там выдается при старте, либо при событии включения/выключения розетки
          Скетч — это простой пример для дальнейшего развития

          Более серьезный можно взять в этом проекте
          http://samopal.pro/sonoff-th1016/
          Только GPIO у ESP правильно объявить

  32. Евгений:

    Здравствуйте Алексей!
    У меня вопрос по схеме.
    Скажите пожалуйста, какие резисторы должны стоять между
    GPIO 15 и GND, а также CH_PD и VCC
    Они не промаркированы на схеме.

    Заранее Благодарю!

  33. Sam:

    Подскажите с кодом кнопки для параллельного управления состоянием релехи, ну чтобы реле можно было не только по вайфаю вкл/выкл но и кнопкой

  34. Константин:

    Повторил идею на ESP8266 NODEMCU . Всё работает, спасибо.

  35. Денис:

    Здравствуйте! Сразу извините, но я чайник в этом деле. Вот смотрю на схему соединения и вроде все легко, но вот вопрос возник, что за прямоугольнички, что ими обозначается при соединении 14 и 9 ноги esp? Как помню со школы, таким значком обозначалось сопротивление вроде бы…

  36. beholder:

    Добрый день, не подскажете как собрать данную схему на 8266 1-ой версии? там всего 8 ног и нет gpio15, по-моему из-за этого и не работает, плата то прошилась, но вот в спаянном виде не хочет запускаться, горят оба светодиода

  37. Егор:

    День добрый. Сделал всё по инструкции, посмотрел на роутере ip модуля, но на сайт по нему не заходит (такое ощущение, что сервер не запущен вообще), хотя в мониторе порта никаких ошибок.
    Сделал управление через blynk, всё работает (значит к wifi подключается, и сам модуль работает нормально). Что может быть не так? Пингуется по этому ип, но на веб сервер не пускает…

  38. Игорь:

    Добрый день, Алексей и все сочувствующие )

    У меня почти такая же ситуация
    «Собрал все на esp07, с платой подключения, если стартую плату без подключенного 2 пина, видит вай фай и все хорошо, втыкаю пин2, все работает, переключает 220 вольт, как надо, НО если стартовать весь процесс с УЖЕ подключенным пином 2, то плата как будто не стартует, т.е. к вай фаю не коннектит, резисторы на 10 кОм ничем не помогают, подскажите, где может быть косяк?»

    Только я собрал на ESP01 , и хотел использовать GPIO0   и GPIO2.
    Причем с подключенными светодиодами все работает абсолютно нормально, без проблем.

    Как только перехожу на реле — то еспшка запускается при отключенных пинах от реле.

    И, кстати — меряю сопротивление исполнительных контактов реле — в случае, если запуск еспшки идет при отключенных от реле контактов GPIO0   и GPIO2 (которые после запуска присоединяются) — то сопротивление нормальное — 0 и КЗ.
    А вот если GPIO0   и GPIO2 подсоединены к релюхе — то сразу сопротивление становится примерно 100 ком. как будто реле приоткрывается наполовину.

    У кого какие мысли по запуску именно реле? (напомню, что со светодиодами все работает отлично)

    • Alexey:

      Попробуйте другой GPIO и подтянуть его через резистор 10к к земле
      У ESP в момент перезагрузки выводы переводятся в высокоимпедантное состояние

  39. Игорь:

    Вроде бы нашел, от чего отталкиваться
    http://forum.amperka.ru/threads/esp8266-как-не-надо-делать.4748/

    Как думаете — такая схема может управлять SSR реле, а не обычным механическим?

  40. Игорь:

    Вообщем — победил ситуацию.
    Подсоединил реле таким образом — от +V к резистору 220 ом. Дальше от режиссера — к 3 ноге реле. Дальше от 4 ноги реле — к GPIO.
    ПРишлось немного переделать код, т.к. управление получилось инверсное.

    Возник еще вопрос — в розетку включил обычные лампы накаливания 60 вт.

    Так они периодически моргают, примерно раз в 4-8 секунд.
    Кто-нить сталкивался и как это можно победить?

  41. Алекс:

    Если не сложно помогите с кодом: ESP должен быть связующим звеном между смартфоном, который подключаешь к точке доступа из ESP. На смартфоне программа которая шлет и получает АТ команды по wi-fi, на RX TX сидит устройство, которое делает тоже самое, получает и шлет АТ команды, все должно пересылаться в оба конца по заданному IP и порту. и скорости порта. Вроде все. Заранее спасибо.

  42. Евгений:

    Доброго дня. У меня точно по той же схеме с тем же омроновским реле есп12 выдавала на ногу 3.03 и омрону этого не хватало, чтобы открыться. Поставил через пару резисторов транзистор без маркировки, который нашёл в рассыпухе, через него заводил на плюс омрона 3.3 вольта — работало, но есп очень часто зависала. Переделал — на плюс омрона завёл 5в напрямую с бп, подтянул через 10к к земле, есп запитал через ams1117 с обвязкой в виде двух электролитов на 10 и 100мф, а управлять стал нулём, прижимая его к земле — это сразу решило все мои проблемы. Неделя, полёт нормальный, всё стабильно. Кстати, очень рекомендую прошивку ESPEasy. Для подобных устройств просто то, что надо. mqtt из коробки, поддержка кучи датчиков и железа, вебморда а-ля роутер, возможность прямо из браузера написать простую логику, которой для iot часто достаточно и прочие вкусности вроде синхронизации с ntp, объединения в сети и т.п.. Может кому-то будет полезно.

  43. Александр:

    А можно вместо ссылки Выключить
    сделать кнопку? За ранее благодарен.

  44. Роман:

    Добрый день, подскажите где искать разработчиков на arduino для удалённых заказов, какой сервис лучше использовать?

    • Alexey:

      Все зависит от того, какого уровня разработчики нужны. Что-то занедорого разработать на ардуине, то на сайте arduino.ru. Нормальных разработчиков на фрилансерных сайтах. Я сейчас стараюсь браться за проекты с программной и аппаратной частью и бюджетом от 300$.

  45. алексей:

    где искать ip адрес ?

  46. алексей:

    где искать ip адрес после установки скетча

Ваш отзыв

Вы должны войти, чтобы оставлять комментарии.