Wasserstand einer Zisterne mit einem Wemos D1 mini überwachen.

Die Beschaltung

Der Programmcode:
#include <ESP8266WiFi.h>

const char* ssid = "Wifi Name";
const char* password = "Password vom Wifi";

WiFiServer server(80);

int trigger = 0;
int echo = 2;
long dauer = 0;

long entfernung = 0;

void setup() {
  Serial.begin(115200);
  delay(10);
  Serial.println();

  pinMode(trigger, OUTPUT);
  pinMode(echo, INPUT);

  // Connect to WiFi network

  WiFi.mode(WIFI_STA);
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");

  // Start the server
  server.begin();
  Serial.println("Server started");

  // Print the IP address
  Serial.println(WiFi.localIP());
}

void loop() {

  digitalWrite(trigger, LOW);
  delay(5);
  digitalWrite(trigger, HIGH);
  delay(10);
  digitalWrite(trigger, LOW);
  dauer = pulseIn(echo, HIGH);
  entfernung = (dauer / 2) / 29.1;

  String cmd;
  cmd += "\"";

  WiFiClient client = server.available();
  client.println("HTTP/1.1 200 OK");
  client.println();
  client.println("<!DOCTYPE html>");
  client.println("<html xmlns='http://www.w3.org/1999/xhtml'>");
  client.println("<head>\n<;meta charset='UTF-8'>");
  client.println("<title>Wasserstand Regenwasserzisterne</title>");
  client.println("</head>\n<body>");
  client.println("<H2>Wasserstand Regenwasserzisterne</H2>");
  client.println("<h3>");

  if (entfernung >= 200 || entfernung <= 0)
  {
    client.println("Kein Messwert");
  }
  else
  {
    entfernung = 192 - entfernung;
    entfernung = entfernung * 84.7457;
    client.print(entfernung);
    client.println(" Liter");
  }
  if (entfernung >= 0 && entfernung <= 1833)
  {
    client.print("<br><img src=");
    client.print(cmd);
    client.print("http://xxx/bat_0.jpg");
    client.print(cmd);
    client.print(" ");
    client.print("width=");
    client.print(cmd);
    client.print(80);
    client.print(cmd);
    client.println("/>");
  }
  if (entfernung >= 1833 && entfernung <= 3666)
  {
    client.print("<br><img src=");
    client.print(cmd);
    client.print("http://xxx/bat_emty.jpg");
    client.print(cmd);
    client.print(" ");
    client.print("width=");
    client.print(cmd);
    client.print(80);
    client.print(cmd);
    client.println("/>");
  }
    if (entfernung >= 3666 && entfernung <= 5500)
  {
    client.print("<br><img src=");
    client.print(cmd);
    client.print("http://xxx/bat_2.jpg");
    client.print(cmd);
    client.print(" ");
    client.print("width=");
    client.print(cmd);
    client.print(80);
    client.print(cmd);
    client.println("/>");
  }
    if (entfernung >= 5500 && entfernung <= 7332)
  {
    client.print("<br><img src=");
    client.print(cmd);
    client.print("http://xxx/bat_half.jpg");
    client.print(cmd);
    client.print(" ");
    client.print("width=");
    client.print(cmd);
    client.print(80);
    client.print(cmd);
    client.println("/>");
  }
    if (entfernung >= 7332 && entfernung <= 9165)
  {
    client.print("<br><img src=");
    client.print(cmd);
    client.print("http://xxx/bat_4.jpg");
    client.print(cmd);
    client.print(" ");
    client.print("width=");
    client.print(cmd);
    client.print(80);
    client.print(cmd);
    client.println("/>");
  }
    if (entfernung >= 9165 && entfernung <= 16000)
  {
    client.print("<br><img src=");
    client.print(cmd);
    client.print("http://xxx/bat_full.jpg");
    client.print(cmd);
    client.print(" ");
    client.print("width=");
    client.print(cmd);
    client.print(80);
    client.print(cmd);
    client.println("/>");
  }
  
  client.println("</h3>");
  client.print("</body>\n</html>");
  delay(500);
}
Die Berechnung des Volumen:

Weitere Beträge zum Thema Füllstand:

Zisterne 4.0 + Nextion Display ohne Internet / WLAN Router (UPD)

In diesem Beitrag geht es um einen Füllstandsanzeige für eine Zisterne, Brunnen oder einen Wassertank. Sicher gibt es noch viele weitere Anwendungsgebiete.

Das besondere an diesem Projekt ist, man kann es überall einsetzten wo kein WLAN / Internet zur Verfügung steht. Wie zum Beispiel abgelegene Gartenanlagen oder ähnliches.

Weiterlesen »

Zisterne 3.0 Web Server + SPIFFS

In meinem ersten Beitrag für die Zisterne (Wasserstandsmessung), verwende ich Batterie Bilder für den Füllstand der Zisterne. Hier werde ich immer wieder gefragt wie die Bilder angezeigt werden können.

Weiterlesen »