Видимо я самый бестолковый на этом сайте, но сделать авторизацию не могу. Три дня потратил в пустую. Скетч у меня конечно другой и сделан не мной. Обычный градусник. Подскажите как сделать вход по паролю.
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS D2 // пин GPIO-4 к которому подключено реле
#define RELAY D1 // пин GPIO-5 к которому подключен датчик температуры DS18b20
bool relay = false; // разомкнуто для низкоуровнего реле при включении микроконтроллера.
float temp;
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
// Вместо звездочек свои параметры WiFi сети
const char* ssid = ",,,,,,,,";
const char* password = ",,,,,,,,";
ESP8266WebServer server(80); // Порт сервера
void setup() {
// Последовательный порт для отладки
Serial.begin(115200);
// Инициализация выхода реле
pinMode(RELAY, OUTPUT);
digitalWrite(RELAY, relay); // при включении микроконтроллера низкоуровневое реле разомкнуто
// Инициализация датчика температуры DS18b20
sensors.begin();
// Подлючение к WiFi
WiFi.mode(WIFI_STA);
// присваиваем статичесий IP адрес
WiFi.config(IPAddress(192,168,0,96),IPAddress(192,168,0,1),IPAddress(255,255,255,0),IPAddress(192,168,0,1));
WiFi.begin(ssid, password);
if (WiFi.waitForConnectResult() == WL_CONNECTED) {
// Запуск WEB-сервера
server.on ( "/", HTTP);
server.onNotFound ( HTTP);
server.begin();
Serial.println ();
Serial.print( "HTTP server start! Open http://");
Serial.println(WiFi.localIP());
}
else {
Serial.printf("WiFi started is fail");
}
}
void loop() {
server.handleClient();
delay(50);
}
/*
Оработчик главной страницы сервера
*/
void HTTP(void) {
bool stat = false;
sensors.requestTemperatures(); // Опрос датчиков
temp = sensors.getTempCByIndex(0);
if ( server.hasArg("stat") ) {
if ( strncmp(server.arg("stat").c_str(), "1", 1) == 0 )stat = true;
}
else {
stat = relay;
}
String website = "";
website =
"<html>\
<head>\
<meta charset=\"utf-8\" />\
<title>WiFi control temр</title>\
<style>\
body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: blue; }\
</style>\
</head>\
<body>\
<h1 style=\"color: black;\">Температура</h1>\
<h1>Температура: \n";
website += (float)temp;
website += "°С";
website += "\</h3>\n";
if ( stat ) {
website += "\
<h3>Реле: Включено</br>\
<a style=\"color: red;\" href=\"/?stat=0\">Выключить</a></h1>\
";
}
else {
website += "\
<h3>Обогрев: Выключено</br>\
<a style=\"color: red;\" href=\"/?stat=1\">Включить</a><h1>\
";
}
website += "\
</body>\
</html>";
server.send ( 200, "text/html", website );
Serial.println (temp);
if ( stat != relay ) {
relay = stat;
digitalWrite(RELAY, relay);
if (relay)Serial.println("Power is ON");
else Serial.println("Power is OFF");
}
}