• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

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

N33R0S4P1AN%

New member
//****** Подключаемые библиотеки ******
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

MDNSResponder mdns;

//WiFi параметры
const char* ssid = "rostelecom"; //Имя Wi-Fi сети
const char* password = "123456789"; //Пароль Wi-Fi сети

byte arduino_mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
IPAddress ip(192,168,1,42); // Ад
IPAddress gateway(192,168,1,1);
IPAddress subnet(255,255,255,0);

ESP8266WebServer server(80);

int D0_pin = 15; //Пин для управления реле розетки 1
int D2_pin = 13; //Пин для управления реле розетки 2
int D1_pin = 12; //Пин для управления реле розетки 3


void setup(void){
// preparing GPIOs
pinMode(D0_pin, OUTPUT);
digitalWrite(D0_pin, LOW);
pinMode(D2_pin, OUTPUT);
digitalWrite(D2_pin, LOW);
pinMode(D1_pin, OUTPUT);
digitalWrite(D1_pin, LOW);


delay(100);
Serial.begin(115200);
WiFi.begin(ssid, password);
WiFi.config(ip, gateway, subnet);


Serial.println("");

// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500); //задержка
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());

if (mdns.begin("esp8266", WiFi.localIP())) {
Serial.println("MDNS responder started");
}

//+++++++++++++++++++++++ Запуск Розетка1 ++++++++++++++++++++
server.on("/", [](){
server.send(200, "text/html", webPage());
});
server.on("/socket1On", [](){
digitalWrite(D0_pin, HIGH);
server.send(200, "text/html", webPage());
delay(100); //задержка

});
server.on("/socket1Off", [](){
digitalWrite(D0_pin, LOW);
server.send(200, "text/html", webPage());
delay(100); //задержка
//+++++++++++++++++++++++ Конец Розетка1 ++++++++++++++++++++

//+++++++++++++++++++++++ Запуск Розетка2 ++++++++++++++++++++
});
server.on("/socket2On", [](){
digitalWrite(D2_pin, HIGH);
server.send(200, "text/html", webPage());
delay(100); //задержка
});
server.on("/socket2Off", [](){
digitalWrite(D2_pin, LOW);
server.send(200, "text/html", webPage());
delay(100); //задержка

// +++++++++++++++++++++++ Конец Розетка2 ++++++++++++++++++++

//+++++++++++++++++++++++ Запуск Розетка3 ++++++++++++++++++++
});
server.on("/socket3On", [](){
digitalWrite(D1_pin, HIGH);
server.send(200, "text/html", webPage());
delay(100); //задержка
});
server.on("/socket3Off", [](){
digitalWrite(D1_pin, LOW);
server.send(200, "text/html", webPage());
delay(100); //задержка

// +++++++++++++++++++++++ Конец Розетка3 ++++++++++++++++++++


});
server.begin();
Serial.println("HTTP server started");
}

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

String webPage()
{
String web;
web += "<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/> <meta charset=\"utf-8\"><title>Управление WiFi розетками</title><style>button{color:red;padding: 10px 27px;}</style></head>";
web += "<h1 style=\"text-align: center;font-family: Open sans;font-weight: 100;font-size: 20px;\">WiFi розетка</h1><div>";
//++++++++++ Розетка1 +++++++++++++
web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">РОЗЕТКА №1</p>";
if (digitalRead(D0_pin) == 1)
{
web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #43a209;margin: 0 auto;\">ВКЛ</div>";
}
else
{
web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #ec1212;margin: 0 auto;\">ВЫКЛ</div>";
}
web += "<div style=\"text-align: center;margin: 5px 0px;\"> <a href=\"socket1On\"><button>ВКЛ</button></a>&nbsp;<a href=\"socket1Off\"><button>ВЫКЛ</button></a></div>";
// ++++++++ Розетка1 +++++++++++++

//++++++++++ Розетка2 +++++++++++++
web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">РОЗЕТКА №2</p>";
if (digitalRead(D2_pin) == 1)
{
web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #43a209;margin: 0 auto;\">ВКЛ</div>";
}
else
{
web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #ec1212;margin: 0 auto;\">ВЫКЛ</div>";
}
web += "<div style=\"text-align: center;margin: 5px 0px;\"> <a href=\"socket2On\"><button>ВКЛ</button></a>&nbsp;<a href=\"socket2Off\"><button>ВЫКЛ</button></a></div>";
// ++++++++ Розетка2 +++++++++++++

//++++++++++ Розетка3 +++++++++++++
web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">РОЗЕТКА №3</p>";
if (digitalRead(D1_pin) == 1)
{
web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #43a209;margin: 0 auto;\">ВКЛ</div>";
}
else
{
web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #ec1212;margin: 0 auto;\">ВЫКЛ</div>";
}
web += "<div style=\"text-align: center;margin: 5px 0px;\"> <a href=\"socket3On\"><button>ВКЛ</button></a>&nbsp;<a href=\"socket3Off\"><button>ВЫКЛ</button></a></div>";
// ++++++++ Розетка3 +++++++++++++

// ========Обновить данные=============
web += "<div style=\"text-align:center;margin-top: 20px;\"><a href=\"/\"><button style=\"width:158px;\">Обновить данные</button></a></div>";
// ========Обновить данные=============


web += "</div>";
return(web);
}
 

CodeNameHawk

Moderator
Команда форума
Вы напишите какого оператора не можете найти описания в интернете.
И потом понять как он работает.
Наверное у вас примеры программ не установились.
 
Сверху Снизу