|
@ -23,9 +23,6 @@ |
|
|
|
|
|
|
|
|
*/ |
|
|
*/ |
|
|
|
|
|
|
|
|
// Bibliothek für WLAN
|
|
|
|
|
|
#include <ESP8266WiFi.h>
|
|
|
|
|
|
|
|
|
|
|
|
// Bibliothek für die I2C-Schnittstelle
|
|
|
// Bibliothek für die I2C-Schnittstelle
|
|
|
#include <Wire.h>
|
|
|
#include <Wire.h>
|
|
|
|
|
|
|
|
@ -33,16 +30,10 @@ |
|
|
// oder aus dem GitHub-Repository https://github.com/sparkfun/SparkFun_MicroPressure_Arduino_Library )
|
|
|
// oder aus dem GitHub-Repository https://github.com/sparkfun/SparkFun_MicroPressure_Arduino_Library )
|
|
|
#include <SparkFun_MicroPressure.h>
|
|
|
#include <SparkFun_MicroPressure.h>
|
|
|
|
|
|
|
|
|
// Server an Port 80 initialisieren
|
|
|
|
|
|
WiFiServer server(80); |
|
|
|
|
|
|
|
|
|
|
|
// Konstruktor initialisieren
|
|
|
// Konstruktor initialisieren
|
|
|
// Ohne Parameter werden Default Werte verwendet
|
|
|
// Ohne Parameter werden Default Werte verwendet
|
|
|
SparkFun_MicroPressure mpr; |
|
|
SparkFun_MicroPressure mpr; |
|
|
|
|
|
|
|
|
// Bibliothek für das Flashen über WLAN
|
|
|
|
|
|
#include <ArduinoOTA.h>
|
|
|
|
|
|
|
|
|
|
|
|
// Zuordnung der Ein- Ausgänge
|
|
|
// Zuordnung der Ein- Ausgänge
|
|
|
#define VENTIL 5 // GPIO5 (PWM MotorA)
|
|
|
#define VENTIL 5 // GPIO5 (PWM MotorA)
|
|
|
#define DA 0 // GPIO0 (Richtung MotorA)
|
|
|
#define DA 0 // GPIO0 (Richtung MotorA)
|
|
@ -55,10 +46,6 @@ SparkFun_MicroPressure mpr; |
|
|
#define ZU HIGH // Ventil schliessen
|
|
|
#define ZU HIGH // Ventil schliessen
|
|
|
#define EIN HIGH // Pumpe einschalten
|
|
|
#define EIN HIGH // Pumpe einschalten
|
|
|
|
|
|
|
|
|
// Heimnetz Parameter (an eigenes Netz anpassen)
|
|
|
|
|
|
const char* ssid = "Heimnetz-Name"; |
|
|
|
|
|
const char* pass = "Heimnetz-Passwort"; |
|
|
|
|
|
|
|
|
|
|
|
// An eigene Zisterne anpassen (zur Berechnung der Füllmenge)
|
|
|
// An eigene Zisterne anpassen (zur Berechnung der Füllmenge)
|
|
|
const int A = 3140; // Grundfläche der Zisterne in cm^2 (d * d * 3,14 / 4)
|
|
|
const int A = 3140; // Grundfläche der Zisterne in cm^2 (d * d * 3,14 / 4)
|
|
|
const int maxFuellhoehe = 3040; // Füllhöhe der Zisterne in mm
|
|
|
const int maxFuellhoehe = 3040; // Füllhöhe der Zisterne in mm
|
|
@ -163,30 +150,6 @@ void setup() { |
|
|
while(1); |
|
|
while(1); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// WiFi initialisieren
|
|
|
|
|
|
WiFi.mode(WIFI_STA); |
|
|
|
|
|
Serial.println("Verbindung zu " + String(ssid) + " wird hergestellt"); |
|
|
|
|
|
WiFi.begin(ssid, pass); |
|
|
|
|
|
while (WiFi.status() != WL_CONNECTED) { |
|
|
|
|
|
delay(500); |
|
|
|
|
|
Serial.print("."); |
|
|
|
|
|
} |
|
|
|
|
|
Serial.println(); |
|
|
|
|
|
server.begin(); |
|
|
|
|
|
Serial.println("Server ist gestartet"); |
|
|
|
|
|
Serial.print("IP-Adresse: "); |
|
|
|
|
|
Serial.println(WiFi.localIP()); |
|
|
|
|
|
|
|
|
|
|
|
ArduinoOTA.onStart([]() { // Pumpe und Ventil ausschalten beim Flashen
|
|
|
|
|
|
digitalWrite(VENTIL, AUF); |
|
|
|
|
|
digitalWrite(PUMPE, AUS); |
|
|
|
|
|
messSchritt = 0; |
|
|
|
|
|
}); |
|
|
|
|
|
// Passwort zum Flashen
|
|
|
|
|
|
ArduinoOTA.setPassword((const char *)"esp8266"); |
|
|
|
|
|
// OTA initialisieren
|
|
|
|
|
|
ArduinoOTA.begin(); |
|
|
|
|
|
|
|
|
|
|
|
messTakt = 0; |
|
|
messTakt = 0; |
|
|
messSchritt = 0; |
|
|
messSchritt = 0; |
|
|
atmDruck = 97400.0; // Augangswert Atmosphärendruck in Pa
|
|
|
atmDruck = 97400.0; // Augangswert Atmosphärendruck in Pa
|
|
@ -195,10 +158,6 @@ void setup() { |
|
|
void loop() { |
|
|
void loop() { |
|
|
static String inputString; |
|
|
static String inputString; |
|
|
|
|
|
|
|
|
// OTA-Service bedienen
|
|
|
|
|
|
ArduinoOTA.handle(); |
|
|
|
|
|
yield(); |
|
|
|
|
|
|
|
|
|
|
|
// Kommandos über serielle Schnittstelle
|
|
|
// Kommandos über serielle Schnittstelle
|
|
|
if (Serial.available()) { |
|
|
if (Serial.available()) { |
|
|
char inChar = (char)Serial.read(); |
|
|
char inChar = (char)Serial.read(); |
|
@ -256,19 +215,4 @@ void loop() { |
|
|
|
|
|
|
|
|
// State-Machine
|
|
|
// State-Machine
|
|
|
messablauf(); |
|
|
messablauf(); |
|
|
|
|
|
|
|
|
// Start der Messung und Übergabe des letzten Ergebnisses bei jeder Client-Anfrage
|
|
|
|
|
|
WiFiClient client = server.available(); |
|
|
|
|
|
if (client) { |
|
|
|
|
|
client.print("<head><title>Fuellstandsmesser</title>"); |
|
|
|
|
|
client.print("<meta charset=\"utf-8\" http-equiv='refresh' content='10'>"); |
|
|
|
|
|
client.print("<meta name='viewport' content='width=device-width, initial-scale=1.0' /></head>"); |
|
|
|
|
|
client.print("<h1>Füllstand Zisterne</h1><br>"); |
|
|
|
|
|
client.print("<table>"); |
|
|
|
|
|
client.print("<tr><td><b>Füllhöhe:</b> </td><td>"); client.print(hoehe); client.print("<br></td></tr>"); |
|
|
|
|
|
client.print("<tr><td><b>Volumen:</b> </td><td>"); client.print(volumen); client.print("<br></td></tr>"); |
|
|
|
|
|
client.print("<tr><td><b>Füllstand:</b> </td><td>"); client.print(fuellstand); client.print("<br></td></tr>"); |
|
|
|
|
|
client.print("</table>"); |
|
|
|
|
|
if (messSchritt == 0) messSchritt = 1; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |