Модуль реле для ESP8266-01S

Сегодня расскажу о простом Wi-Fi реле основаны на ESP-01S (ESP8266). С помощью данного реле, можно удаленно отключать свет, электроприборы и многое другое.

Технические параметры
► Модель ESP8266: ESP-01S
► Напряжение питания: DC 5 В
► Рабочий ток: 250 мА
► Вывод управления реле: GPIO0
► Нагрузка переменного тока: 10 А, 250 В
► Нагрузка постоянного тока: 10 А, 30 В
► Габариты пульта: 37 мм х 25 мм

Общие сведения о модуле реле для ESP8266-01S (ESP-01S)
С помощью данного модуля можно управлять любым устройством по сети Wi-Fi,
в качестве передающего устройства используется контроллер ESP8266-01S (ESP-01S). Модуль собран на зеленом стеклотекстолите габаритами 37 см на 25 см, большую часть платы занимает реле SRD-5DVC-SL-C, такое же используется в обычных модулях реле на один и два канала. Рядом с реле небольшая электрическая обвязка, необходимая для нормального переключения этого реле. Так как управление реле осуществляя напряжение 5В, а для ESP01 необходимо напряжение 3.3 В на плате предусмотрен стабилизатор напряжения AMS1117 рядом установлены керамические конденсаторы. На плате предусмотрена кнопка RESET с помощью которой можно перегрузить модуль, рядом установлен светодиод показывающий включение реле.

Настройка Wi-Fi реле
Необходимые детали:
► Беспроводной Wi-Fi модуль ESP8266-01S (ESP-01S) x 1 шт.
► Модуль реле для ESP8266-01S x 1 шт.
► Адаптер для ESP-01 (USB, CH340G, ESP8266) x 1 шт.
► Блок питания на 5В

Прошивка ESP-01S:
Первым делом, необходимо прошить модуль ESP-01S (ES8266), для этого берем USB адаптер на CH340G (с небольшой доработкой, которая включаем в себя перемычку между GND и GPIO0). Устанавливаем модуль ESP-01S в USB адаптер CH340G и подключаем его в USB разъем компьютера (в системе должен появится новый последовательный порт (COMx).

Программа написана в среде IDE Arduino, для работы с чипами ESP8266. Теперь осталось загрузить скетч в программу IDE и загрузить в модуль ESP-01S.

#include <ESP8266WiFi.h>                      // Подключаем библиотеку ESP8266WiFi
 
const char* ssid = "Название Вашей Сети";     // Название Вашей WiFi сети
const char* password = "Пароль от вашей сети";// Пароль от Вашей WiFi сети

#define RELAY 0                               // Пин к которому подключен датчик
WiFiServer server(80);                        // Указываем порт Web-сервера
 
void setup(){
  delay(2200);      
  Serial.begin(115200);                       // Скорость передачи 115200 
  pinMode(RELAY,OUTPUT);                      // Указываем вывод RELAY как выход
  digitalWrite(RELAY, LOW);                   // Устанавливаем RELAY в LOW (0В)
  Serial.println();                           // Печать пустой строки 
  Serial.print("Connecting to ");             // Печать "Подключение к:"
  Serial.println(ssid);                       // Печать "Название Вашей WiFi сети"
 
  WiFi.begin(ssid, password);                 // Подключение к WiFi Сети
 
  while (WiFi.status() != WL_CONNECTED)       // Проверка подключения к WiFi сети
  { 
    delay(500);                               // Пауза 500 мкс
    Serial.print(".");                        // Печать "."
  }
  Serial.println("");                         // Печать пустой строки  
  Serial.println("WiFi connected");           // Печать "WiFi connected"
 
  server.begin();                             // Запуск сервера
  Serial.println("Server started");           // Печать "Server starte"
  Serial.print("Use this URL to connect: ");  // Печать "Use this URL to connect:" 
  Serial.print(WiFi.localIP());               // Печать выданого IP адресса          
}
 
void loop(){
   WiFiClient client = server.available();    // Получаем данные, посылаемые клиентом 
  if (!client)                                
  {
    return;
  }
  Serial.println("new client");               // Отправка "new client"
  while(!client.available())                  // Пока есть соединение с клиентом 
  {
    delay(1);                                 // пауза 1 мс
  }

  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();
 
  int value = LOW;
  if (request.indexOf("/RELAY=ON") != -1)  
  {
    Serial.println("RELAY=ON");
    digitalWrite(RELAY,LOW);
    value = LOW;
  }
  if (request.indexOf("/RELAY=OFF") != -1)  
  {
    Serial.println("RELAY=OFF");
    digitalWrite(RELAY,HIGH);
    value = HIGH;
  }

  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); 
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");
  client.println("<head><title>ESP8266 RELAY Control</title></head>");
  client.print("Relay is now: ");
 
  if(value == HIGH) 
  {
    client.print("OFF");
  } 
  else 
  {
    client.print("ON");
  }
  client.println("<br><br>");
  client.println("Turn <a href=\"/RELAY=OFF\">OFF</a> RELAY<br>");
  client.println("Turn <a href=\"/RELAY=ON\">ON</a> RELAY<br>");
    client.println("</html>");
 
  delay(1);
  Serial.println("Client disonnected");
  Serial.println("");
}

Определение IP (ESP-01S):
Далее, необходимо узнать IP модуля, для этого открываем окно «Мониторинг порта» с выставленной скоростью «115200», в моем случаи сеть выдала «192.168.22.100».

Теперь устанавливаем прошитый модуль ESP-01S в модуль WiF-Fi реле, подключаем питание и открываем любой браузер, вводим IP-адрес (192.168.22.100) и нажимаем Enter.
Вот и все.

Пример второй принцип подключения тот же

#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 https://%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");
   }
   
}

 

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
× iOs app

To install this Web App in your iPhone/iPad press iOs sourse and then Add to Home Screen.