Sorry, war zu voreilig.
Mehr habe ich nicht geschafft.
Auf den Display bekommt man die Temperatur nur wenn man Parallel über Web die Daten abruft.
Ohne Abrufen über Web bleiben die Anzeigen alle auf 0.
#include <ESP8266WebServer.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS D2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
byte tempSensor1, tempSensor2, tempSensor3, tempSensor4;
byte data[12];
byte sensor1[8] = { 0x28, 0xA9, 0x55, 0x76, 0xE0, 0x01, 0x3C, 0x2C };
byte sensor2[8] = { 0x28, 0xA2, 0x75, 0x75, 0xD0, 0x01, 0x3C, 0x7A };
byte sensor3[8] = { 0x28, 0x2E, 0x8B, 0x76, 0xE0, 0x01, 0x3C, 0xBF };
byte sensor4[8] = { 0x28, 0xCF, 0x1A, 0x75, 0xD0, 0x01, 0x3C, 0x8D };
unsigned int raw;
const char* ssid = "xxxxxxx"; // SSID
const char* password = "xxxxxxxx"; //
ESP8266WebServer server(80);
void setup()
{
Serial.begin(115200);
delay(100);
sensors.begin();
Serial.println("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected..!");
Serial.print("Got IP: "); Serial.println(WiFi.localIP());
server.on("/", handle_OnConnect);
server.onNotFound(handle_NotFound);
server.begin();
Serial.println("HTTP server started");
Wire.begin();
lcd.init();
lcd.setBacklight(1);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("T1=");
lcd.setCursor(0, 1);
lcd.print("T2=");
lcd.setCursor(10, 0);
lcd.print("T3=");
lcd.setCursor(10, 1);
lcd.print("T4=");
delay(200);
}
void loop()
{
server.handleClient();
lcd.setCursor(3, 0);
lcd.print(tempSensor1);
lcd.write(223);
lcd.setCursor(3, 1);
lcd.print(tempSensor2);
lcd.write(223);
lcd.setCursor(13, 0);
lcd.print(tempSensor3);
lcd.write(223);
lcd.setCursor(13, 1);
lcd.print(tempSensor4);
lcd.write(223);
delay(200);
}
void handle_OnConnect()
{
sensors.requestTemperatures();
tempSensor1 = sensors.getTempC(sensor1);
tempSensor2 = sensors.getTempC(sensor2);
tempSensor3 = sensors.getTempC(sensor3);
tempSensor4 = sensors.getTempC(sensor4);
server.send(200, "text/html", SendHTML(tempSensor1,tempSensor2,tempSensor3,tempSensor4));
}
void handle_NotFound()
{
server.send(404, "text/plain", "Not found");
}
String SendHTML(byte tempSensor1,byte tempSensor2,byte tempSensor3,byte tempSensor4)
{
String ptr = "<!DOCTYPE html> <html>\n";
ptr +="<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\">\n";
ptr +="<title>Wasser Temperature Monitor</title>\n";
ptr +="<meta http-equiv=\"refresh\" content=\"2\" >";
ptr +="<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}\n";
ptr +="body{margin-top: 50px;} h1 {color: #444444;margin: 50px auto 30px;}\n";
ptr +="p {font-size: 24px;color: #444444;margin-bottom: 10px;}\n";
ptr +="</style>\n";
ptr +="</head>\n";
ptr +="<body>\n";
ptr +="<div id=\"webpage\">\n";
ptr +="<h1>Wasser Temperature Monitor</h1>\n";
ptr +="<p>T1: ";
ptr +=tempSensor1;
ptr +="°C</p>";
ptr +="<p>T2: ";
ptr +=tempSensor2;
ptr +="°C</p>";
ptr +="<p>T3: ";
ptr +=tempSensor3;
ptr +="°C</p>";
ptr +="<p>T4: ";
ptr +=tempSensor4;
ptr +="°C</p>";
ptr +="</div>\n";
ptr +="</body>\n";
ptr +="</html>\n";
return ptr;
}