Schaltung
Das Thermometer wurde mit einem ESP8266-12F und einem DS18B20 (Temperatursensor) realisiert und in eine wetterfeste Box gepackt. Aus der Box reicht das Thermometer über ein ca. 1,5m langen Kabel, dass in den Pool gehalten werden kann. So wird die Themperatur nicht an der Oberfläche gemessen und man bekommt zuverlässigere Werte der Themperatur. Hier ist ein Foto vom Inneren der Box:

Da das Kabelchaos recht unübersichtlich ist, habe ich hier nochmal den Schaltplan mit Fritzing nachgebaut:

Software
Da die Batterien sich nicht lange halten würden, geht der ESP in den Deepsleep, um Strom zu sparen. Das heißt, dass sich der ESP alle 15min anschaltet und die Pooltemperatur an MSH übermittelt. Der Code für den ESP ist folgender (Sensible Daten verändert):
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <ArduinoJson.h>
// Replace with your network credentials
const char* ssid = "WLAN-NAME";
const char* password = "PWD";
// Server URL
const char* serverName = "MSH/api/temperatur/postData";
// GPIO where the DS18B20 is connected to
#define ONE_WIRE_BUS 4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
delay(10);
// Connecting to WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
}
sensors.begin();
// Request temperature
sensors.requestTemperatures();
float temperatureC = sensors.getTempCByIndex(0);
// Send temperature data to server
if (WiFi.status() == WL_CONNECTED) {
WiFiClient client;
HTTPClient http;
http.begin(client, serverName);
// Specify content-type header
http.addHeader("Content-Type", "application/json");
// Create JSON object
StaticJsonDocument<200> jsonDoc;
jsonDoc["temperatur"] = temperatureC;
// Serialize JSON object to string
String jsonString;
serializeJson(jsonDoc, jsonString);
// Send HTTP POST request
http.POST(jsonString);
// Close connection
http.end();
}
// Configure Deep Sleep mode
ESP.deepSleep(15 * 60 * 1000000); // Sleep for 15 minutes
}
void loop() {
// This will never be called
}
Dargestellt wurde es über MSH. Hier ist ein Screenshot der Ansicht:

Ein ganzer Artikel zu MSH kommt noch

Ein ganzer Artikel zu MSH kommt noch
Zusammenfassung
Durch die Auswertung konnten wir feststellen, wann und dadurch zurückschließen warum die Temperatur abfällt und etwas dagegen zu unternehmen. Somit konnten wir die Temperatur gut regeln.