(Обновляемая тема)Подключение esp8266 ESP-01 5 в релейный модуль wi fi

Дим M
Автор темы, Администратор
Администратор
Аватара
Дим M
Автор темы, Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#1 Дим » 15 июля 2019, 19:47

phpBB [media]

распиновка esp8266 ESP-01.PNG
распиновка esp8266 ESP-01
распиновка esp8266 ESP-01.PNG (90.21 КБ) 7816 просмотров

Статья ведётся путём добавления материала.
По началу думал что с данным девайсом что то не так. При подаче напряжения, щелкала релюха и один раз мигали светодиоды на платах. Но открыв настройки WI-FI на смартфоне, обнаружил сеть FaryLink_38CEA9, которой ранее не было.
FaryLink_38CEA9
FaryLink_38CEA9.JPG
FaryLink_38CEA9
FaryLink_38CEA9.JPG (51.66 КБ) 7850 просмотров
(2)FaryLink_38CEA9.JPG
FaryLink_38CEA9
(2)FaryLink_38CEA9.JPG (44.65 КБ) 7850 просмотров
Значит не всё так плохо как я думал, модуль рабочий. Теперь нужно разобраться с программным кодом. Вот тут то и начались мои мучения, ну не буду в них вдаваться - начнём.
Что бы как то начать программировать и получить информацию с модуля, я решил что буду использовать Arduino IDE. Более подробно можно ознакомиться в статье "ESP8266 прошивка, программирование в Arduino IDE". Я же постараюсь рассказать по короче, но это суть дела не меняет, тем более сам брал информацию из той статьи. :oops:
Так как Arduino IDE у меня уже была установлена, то мне оставалось только добавить плату ESP8266. Для этого запускаем среду разработки и перейдя в "Файл-Настройки" и в поле "Дополнительные ссылки для Менеджера плат" вставляем ссылку http://arduino.esp8266.com/stable/package_esp8266com_index.json и "OK"
Arduino IDE Файл-Настройки
Arduino IDE Файл-Настройки.PNG
Arduino IDE Файл-Настройки
Arduino IDE Файл-Настройки.PNG (81.63 КБ) 7829 просмотров
Далее нажимаем на "Инструменты-Плата-Менеджер плат".
Инструменты-Плата-Менеджер плат
Инструменты Плата Менеджер плат..png
Инструменты-Плата-Менеджер плат
Инструменты Плата Менеджер плат..png (48.73 КБ) 7829 просмотров
И в появившемся окне менеджера плат находим esp8266, она будет в самом низу, и выбрав последнюю версию, устанавливаем её.
менеджер плат esp8266
менеджер плат esp8266.PNG
менеджер плат esp8266
менеджер плат esp8266.PNG (30.29 КБ) 7829 просмотров
Теперь в списке плат у нас есть разнообразные ESP8266.
разнообразные ESP8266
разнообразные ESP8266.png
разнообразные ESP8266
разнообразные ESP8266.png (86.88 КБ) 7829 просмотров
Из них выбираем "Generic ESP8266 Module"
выбрав нужный COM порт(у меня это COM6),
Upload Speed выставляем на 115200.
Так как работать с платой будем через Arduino - "Программатор: AVR ISP"
настройка платы ESP8266
настройка платы ESP8266.png
настройка платы ESP8266
настройка платы ESP8266.png (40.75 КБ) 7829 просмотров
Теперь нам нужно ESP8266 подключить к Arduino по схеме которая расположена в нижеприведённом спойлере.
ESP8266 подключить к Arduino
ESP8266 подключить к Arduino.PNG
ESP8266 подключить к Arduino
ESP8266 подключить к Arduino.PNG (122.21 КБ) 7828 просмотров
Подключать нужно именно так RX к RX, а TX к TX. Если всё сделано верно, то открыв монитор порта, выставляем скорость 115200 . И отправив AT команду, в ответ от платы мы получим OK.
AT команда
AT команда.png
AT команда
AT команда.png (50.04 КБ) 7828 просмотров
Так же можно поиграться и другими базовыми AT командами ESP8266
Вот такой ответ приходит на команду AT+GMR – проверить информацию о версии
AT+GMR
AT+GMR.png
AT+GMR
AT+GMR.png (16.92 КБ) 7828 просмотров
Прошивка
Ну если наигрались то можно приступить к прошивке. Для этого подключаем модуль по нижеприведённой схеме. Она не многим чем отличается от вышеприведённой. Тут добавлена кнопка RES она нам потребуется при заливке скетча. И выключатель на желтый провод GPIO 0, который мы будем включать для заливки скетча и отключать для проверки результатов (работы модуля). Только учтите что заливкой скетча вы удаляете заводскую прошивку модуля, и не сможете работать с AT командами. В общем то это не так уж и страшно, вы всегда сможете прошить родную прошивку Esp8266 ESP-01
схема для прошивки esp8266 ESP-01
схема для прошивки esp8266 ESP-01.PNG
схема для прошивки esp8266 ESP-01
схема для прошивки esp8266 ESP-01.PNG (161.34 КБ) 7817 просмотров
Выбираем Файл - Пример - ESP8266 - Blink и заливаем скетч.
Файл - Пример - ESP8266 - Blink
Файл - Пример - ESP8266 - Blink.png
Файл - Пример - ESP8266 - Blink
Файл - Пример - ESP8266 - Blink.png (15.4 КБ) 7816 просмотров
Как только он скомпилируется и появиться надпись Загрузка - нажимаем на кнопку RES . И дождавшись загрузки, наблюдаем как мигает светодиод на плате Ардуино.
phpBB [media]

Работа ESP8266 с 5v реле
Ну и настало время собрать воедино ESP8266 и реле и проверить их работоспособность без Arduino. Но в нам нужно залить скетч, который был найден на просторах интернета:

Код: Выделить всё

 /**
* WiFi розетка. Версия 1.0
* Copyright (C) 2015 http://samopal.pro
*/
#include <ESP8266WiFi.h>
#include <WiFiClient.h> 
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

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

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

ESP8266WebServer server(80);

void setup() {
// Последовательный порт для отладки
  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);
     Serial.println(WiFi.localIP());
  }
  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 =
"<html>\
  <head>\
    <meta charset="utf-8" />\
    <title>WiFi розетка</title>\
    <style>\
      body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }\
    </style>\
  </head>\
  <body>\
    <h1>WiFi розетка. Версия 1.0</h1>\n"
;

  if( stat ){
      out+="\
    <h2>Состояние: Включено</br>\
    <a href="/?stat=0">Выключить</a></h2>\
    "
;
  }
  else {
      out+="\
    <h2>Состояние: Выключено</br>\
    <a href="/?stat=1">Включить</a><h2>\
    "
;            
  
}
   out+= "\
  </body>\
</html>"
;
   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");
   }
   
}
 

Подключаем модуль к питанию и перейду по адресу http://192.168.0.100 сможем управлять реле.
192.168.0.100.png
192.168.0.100
192.168.0.100.png (10.76 КБ) 7792 просмотра


phpBB [media]


Возможно у вас будет другой, в зависимости от подключённых устройств к wi-fi роутеру.
подключённые устройства к wi-fi роутеру.png
подключённые устройства к wi-fi роутеру
подключённые устройства к wi-fi роутеру.png (15.44 КБ) 7792 просмотра
[center]i love you [s]mxIni[/s] Mysql[/center]


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Аппаратная часть»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 4 гостя