• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

У Павла!

  • Контроллеры
    • Arduino
      • Приборы
      • Музыка
      • Проекты Arduino
      • Уроки Arduino
      • Игры на Arduino
      • Роботы на Ардуино
      • FLProg
    • Одноплатные ПК
      • Orange pi
      • Raspberry pi
        • Raspberry pi pico
        • Raspberry pi server
        • Проекты Raspberry pi
    • ESP
      • ESP8266
        • NodeMCU
      • ESP32
      • M5stack
    • Другие контроллеры
      • STM32
  • Умный дом
    • Home Assistant
      • Автоматизации
    • Tuya
    • Bluetooth
    • ESPHome
    • Frigate
    • Telegram
    • Яндекс
  • ЧПУ
  • 3d печать
  • Об авторе

NodeMCU управление реле.

12 августа, 2017

Нам понадобится:

Сама плата nodemcu: http://ali.pub/1qdz7a

nodemcu shield: http://ali.pub/1qdzd4

Реле: http://ali.pub/1qrtft

Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.

 

В данном примере показано, как с помощью платы nodemcu управлять релейными модулями.

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

После подключения всех компонентов необходимо скопировать программный код приведенный ниже и вставить его в программу Arduino IDE и загрузить этот программный код в саму плату Arduino.

 

#include <ESP8266WiFi.h>

// Имя и пароль вашей сети WiFi
const char* ssid = "test";
const char* password = "test";

// Создаем сервер и порт для прослушки 80

WiFiServer server(80);

void setup() {
 Serial.begin(115200);
 delay(10);

 // Подготовка GPIO
 pinMode(5, OUTPUT);
 digitalWrite(5, 1);
 pinMode(4, OUTPUT);
 digitalWrite(4, 1);
 pinMode(0, OUTPUT);
 digitalWrite(0, 1);
 pinMode(2, OUTPUT);
 digitalWrite(2, 1);

 // Подключаемся к сети WiFi
 Serial.println();
 Serial.println();
 Serial.print("Connecting to ");
 Serial.println(ssid);
 WiFi.begin(ssid, password);

 // Ожидание подключения
 while (WiFi.status() != WL_CONNECTED) {
 delay(500);
 Serial.print(".");
 }
 Serial.println("");
 Serial.println("WiFi connected");

 // Запуск сервера
 server.begin();
 Serial.println("Server started");

 // Вывод полученного IP адреса
 Serial.println(WiFi.localIP());
}

void loop() {

 // Проверка подключения
 WiFiClient client = server.available();
 if (!client) {
 return;
 }

 // Ожидание данных
 Serial.println("new client");
 while (!client.available()) {
 delay(1);
 }

 // Чтение первой строки запроса
 String req = client.readStringUntil('\r');
 Serial.println(req);
 client.flush();

 // Работа с GPIO
 if (req.indexOf("/1/0") != -1)
 digitalWrite(5, 0);
 else if (req.indexOf("/1/1") != -1)
 digitalWrite(5, 1);
 else if (req.indexOf("/2/0") != -1)
 digitalWrite(4, 0);
 else if (req.indexOf("/2/1") != -1)
 digitalWrite(4, 1);
 else if (req.indexOf("/3/0") != -1)
 digitalWrite(0, 0);
 else if (req.indexOf("/3/1") != -1)
 digitalWrite(0, 1);
 else if (req.indexOf("/4/0") != -1)
 digitalWrite(2, 0);
 else if (req.indexOf("/4/1") != -1)
 digitalWrite(2, 1);
 else if (req.indexOf("/5") != -1) {
 Serial.println("TEST OK");
 String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nTest OK. Uptime: ";

 // Подстчет UpTime
 int Sec = (millis() / 1000UL) % 60;
 int Min = ((millis() / 1000UL) / 60UL) % 60;
 int Hours = ((millis() / 1000UL) / 3600UL) % 24;
 int Day = ((millis() / 1000UL) / 3600UL / 24UL);
 s += Day;
 s += "d ";
 s += Hours;
 s += ":";
 s += Min;
 s += ":";
 s += Sec;
 s += "</html>\n";
 client.print(s);
 client.stop();
 return;
 }
 else
 // Если неверный запрос написать об ошибке
 {
 Serial.println("invalid request");
 String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nInvalid request";
 s += "</html>\n";
 client.print(s);
 client.stop();
 return;
 }

 client.flush();



 // Формирование ответа
 String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO set OK";
 s += "</html>\n";

 // Send the response to the client
 client.print(s);
 delay(1);
 Serial.println("Client disonnected");

}

 

Ссылка на скетч: https://yadi.sk/d/kU7ndqWQ3Lvpkq
Сначала в этом скетче нужно изменить

 

// Имя и пароль вашей сети WiFi
const char* ssid = "test";
const char* password = "test";

 

На свои ssid и пароль от вашей wi-fi сети.

Далее пользуясь распиновкой:

Определить к каким GPIO у вас подключено реле и в этих строчках заменить их на свои, или если у вас все подключено также как у меня, то ничего менять ненужно.

Меняется это здесь:

 // Работа с GPIO
  if (req.indexOf("/1/0") != -1)
    digitalWrite(5, 0);
  else if (req.indexOf("/1/1") != -1)
    digitalWrite(5, 1);
  else if (req.indexOf("/2/0") != -1)
    digitalWrite(4, 0);
  else if (req.indexOf("/2/1") != -1)
    digitalWrite(4, 1);
  else if (req.indexOf("/3/0") != -1)
    digitalWrite(0, 0);
  else if (req.indexOf("/3/1") != -1)
    digitalWrite(0, 1);
  else if (req.indexOf("/4/0") != -1)
    digitalWrite(2, 0);
  else if (req.indexOf("/4/1") != -1)
    digitalWrite(2, 1);

 

 

После того как залили скетч, в мониторе ком порта должен показаться ip адрес который получила плата NodeMCU. если у вас не получается посмотреть в ком порте, то можно воспользоваться сканированием сети.

Демонстрация работы данной программы можно увидеть в видео приведенном в конце статьи.

Подробнее в Видео:

 

Primary Sidebar

Поиск

Новые записи

  • Автоматизация перезагрузки устройства по команде Ping.
  • Разблокирование и добавление шлюза Xiaomi gateway 3 в Home Assistant для управления Bluetooth устройствами из экосистемы Xiaomi Home (mihome)
  • Интеграция для локального управления (без интернета) ик пультом Tuya работающим по wifi из Home Assistant
  • Транслируем показания с Уличного Bluetooth Датчика температуры по BTHome на дисплей датчика температуры XIaomi LYWSD03MMC
  • Заставляем Bluetooth датчики температуры tuya и xiaomi отправлять данные по Zigbee в Home Assistant.

Официальный YouTube Канал M5Stack:

Подписывайтесь на Телеграм канал

https://t.me/ypavla

Подписаться на YouTube!

Secondary Sidebar




Подписывайтесь на Telegram Канал!

У Павла!

Footer

Copyright_У Павла! © 2025 ·