commit 3f25265bd88e7c81d29751a6c906bcdda2459874 Author: sven Date: Fri Aug 25 13:45:14 2023 +0200 Initial commit diff --git a/TankCool.ino b/TankCool.ino new file mode 100644 index 0000000..afc5179 --- /dev/null +++ b/TankCool.ino @@ -0,0 +1,104 @@ +// First we include the libraries +#include +#include +#include +#include +#include + +/********************************************************************/ +// Data wire is plugged into pin 2 on the Arduino +#define ONE_WIRE_BUS 20 +/********************************************************************/ +// Setup a oneWire instance to communicate with any OneWire devices +// (not just Maxim/Dallas temperature ICs) +OneWire oneWire(ONE_WIRE_BUS); +/********************************************************************/ +// Pass our oneWire reference to Dallas Temperature. +DallasTemperature sensors(&oneWire); +/********************************************************************/ +byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x09, 0x70 }; +IPAddress ip(192,168,178,57); +EthernetServer server(80); + +void setup() { + // start serial port + Serial.begin(9600); + // Start up the library + sensors.begin(); + Ethernet.begin(mac, ip); + server.begin(); +} + +void loop() { + // put your main code here, to run repeatedly: + +} + +void WebServer(){ +// ETHERNET + EthernetClient client = server.available(); + // Wenn es einen Client gibt, dann... + if (client) { + Serial.println("Neuer Client"); + // Jetzt solange Zeichen lesen, bis eine leere Zeile empfangen wurde + // HTTP Requests enden immer mit einer leeren Zeile + boolean currentLineIsBlank = true; + // Solange Client verbunden + while (client.connected()) { + // client.available() gibt die Anzahl der Zeichen zurück, die zum Lesen + // verfügbar sind + if (client.available()) { + // Ein Zeichen lesen und am seriellen Monitor ausgeben + char c = client.read(); + Serial.write(c); + // In currentLineIsBlank merken wir uns, ob diese Zeile bisher leer war. + // Wenn die Zeile leer ist und ein Zeilenwechsel (das \n) kommt, + // dann ist die Anfrage zu Ende und wir können antworten + if (c == '\n' && currentLineIsBlank) { + client.println("HTTP/1.1 200 OK"); + client.println("Content-Type: text/html"); + client.println("Connection: close"); // Verbindung wird nach Antwort beendet + client.println("Refresh: 30"); // Seite alle 25 Sekunden neu abfragen + client.println(); + // Ab hier berginnt der HTML-Code, der an den Browser geschickt wird + client.println(""); + client.println(""); + client.println("CONTROLLINO Analog Input"); + client.println("

CONTROLLINO

"); + + client.println("

"); + client.print("Aktuelle Temperatur: "); + client.println(temperatureA); + client.println("

"); + client.println("

"); + client.print("Sollwert Temperatur: "); + client.println(temperatureSP); + client.println("

"); + client.println("

"); + client.print("Delta Temperatur: "); + client.println(DeltaT); + client.println("

"); + client.write("
T: "); + client.write("R:
"); + client.println(r,t); + client.println(""); + break; + } + if (c == '\n') { + // Zeilenwechsel, also currentLineIsBlack erstmal auf True setzen + currentLineIsBlank = true; + } + else if (c != '\r') { + // Zeile enthält Zeichen, also currentLineIsBlack auf False setzen + currentLineIsBlank = false; + } + } + } + // Kleine Pause + delay(1); + // Verbindung schliessen + client.stop(); + Serial.println("Verbindung mit Client beendet."); + Serial.println(""); + } +}