Blog

LightSensor&Schalter2WWW mit XMLHttpRequest



Die backgroundColor Eigenschaft mit dem ESP8266 über einen Lichtsensor und/oder einen Schalter dynamisch angesteuert.

 

LIGHTSENSORundSCHALTER.ino

/*
——————————————————————————
Author: BNC
Platforms: ESP8266
Board: Generic ESP8266 MODULE
Language: C++/Arduino

Thank you:
——————————————————————————
https://github.com/acrobotic/Ai_Tips_ESP8266/tree/master/webserver_html_js
——————————————————————————

Web server on ESP32: How to update and display sensor values?

———————————————————————————
*/

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

int schalter = 5;

ESP8266WebServer server;

char* ssid = „FRITZ!Box 6490 Cable“;
char* password = „02012639530344060106“;

char MAIN_page[] PROGMEM = R“=====(
<!DOCTYPE html>
<html>
<body>
<div id=“demo“>
<h1>Licht an Licht aus – TEST</h1>
</div>

<div>
Sensor Status: <span style=“color: blue;“ id=“ADCValue“>0</span><br>
</div>
<script>

setInterval(function() {
getData();
}, 100); //update rate

function getData() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById(„ADCValue“).innerHTML = this.responseText;

document.body.style.backgroundColor = ‚rgb(‚ + this.responseText + ‚,‘ + this.responseText + ‚,‘ + this.responseText + ‚)‘;
document.getElementById(„ADCValue“).innerHTML = this.responseText;
}
};
xhttp.open(„GET“, „readADC“, true);
xhttp.send();
}
</script>
<br>
</body>
</html>
)=====“;

void setup()
{
WiFi.begin(ssid,password);
Serial.begin(115200);

// Programmierung Schalter
pinMode(schalter, INPUT);

while(WiFi.status()!=WL_CONNECTED)
{
Serial.print(„.“);
delay(500);
}
Serial.println(„“);
Serial.print(„IP Address: „);
Serial.println(WiFi.localIP());

server.on(„/“,[](){server.send_P(200,“text/html“, MAIN_page);});
server.on(„/readADC“, handleADC);
server.begin();
}

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

void handleADC() {
int a = analogRead(A0);
if (digitalRead(schalter) == HIGH){
a = 0;
} else {
a = a/4;
digitalRead(schalter) == LOW;
}
Serial.print(a);
Serial.print(‚\n‘);
String adcValue = String(a);
server.send(200, „text/plane“, adcValue);
}