Вывод состояния пина на Web страницу
- Войдите на сайт для отправки комментариев
Пнд, 23/08/2021 - 10:44
Здравствуйте, есть плата ESP-01 на мк8266. Хочу организовать вывод на Web страницу - состояние пина 2 (настроен на вход), в режиме реального времени. Есть код который работает, но только при принудительном обновлении страницы, можно ли как-то сделать без перезагрузки страницы?
#include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ESP8266WebServer.h> #include <ESP8266mDNS.h> MDNSResponder mdns; // впишите сюда данные, соответствующие вашей сети: const char* ssid = "Homenet. Ua 14"; const char* password = "05041996"; ESP8266WebServer server(80); String webPage = ""; int gpio0_pin = 0; int val; void setup(void){ webPage += "<h1>ESP8266 Web Server</h1><p>Socket #1 <a href=\"socket1On\"><button>ON</button></a> <a href=\"socket1Off\"><button>OFF</button></a></p>"; // подготавливаем GPIO-контакты: pinMode(gpio0_pin, OUTPUT); digitalWrite(gpio0_pin, LOW); pinMode(2, INPUT); delay(1000); Serial.begin(115200); WiFi.begin(ssid, password); Serial.println(""); // ждем соединения: while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.print("Connected to "); // "Подключились к " Serial.println(ssid); Serial.print("IP address: "); // "IP-адрес: " Serial.println(WiFi.localIP()); if (mdns.begin("esp8266", WiFi.localIP())) { Serial.println("MDNS responder started"); // "Запущен MDNSresponder" } server.on("/", [](){ server.send(200, "text/html", webPage); }); server.on("/socket1On", [](){ server.send(200, "text/html", webPage); digitalWrite(gpio0_pin, HIGH); delay(1000); digitalWrite(gpio0_pin, LOW); }); server.on("/socket1Off", [](){ server.send(200, "text/html", webPage); digitalWrite(gpio0_pin, HIGH); delay(1000); digitalWrite(gpio0_pin, LOW); }); server.begin(); Serial.println("HTTP server started"); } void loop(void){ server.handleClient(); delay(1000); // "Здесь вывожу состояние пина 2 в блок div на странице, через String" webPage += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #5191e4;margin: 0 auto;\">"+ String(digitalRead(2))+"</div>"; }если не обновлять то видимо нет, значит что-то должно дёргать обновление страницы, вариантов знаю два
Можно, но ты не осилишь.
если не обновлять то видимо нет, значит что-то должно дёргать обновление страницы, вариантов знаю два
Можете подсказать что за варианты? У меня на странице будут ещё 2 кнопки. Я думал может как-то подвязать обновления состояния пина под нажатия этих кнопок?
если не обновлять то видимо нет, значит что-то должно дёргать обновление страницы, вариантов знаю два
так подсказал уже - websocket решает проблему
можно ли как-то сделать без перезагрузки страницы?
Вот здесь всё сделано - http://arduino.ru/forum/programmirovanie/microajax-dlya-arduino