Wassermelder mit Ölmelder

Aus DL8RDS Wiki
Version vom 20. April 2019, 17:36 Uhr von Dl8rds (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Projektberschreibung Das gebaute Gerät soll erkennen, ob ein Öltank leckt. Da am Boden des Öltanks Wasser vermutet wird, soll ein Wassermelder angesteu…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Projektberschreibung

Das gebaute Gerät soll erkennen, ob ein Öltank leckt. Da am Boden des Öltanks Wasser vermutet wird, soll ein Wassermelder angesteuert werden, zudem sollen Dämpfe detektiert werden.

Komponenten

Software

Es wurde der Webserver-Sketch verwendet, mit einer geringfügigen Abwandlung

#include <SPI.h>
#include <Ethernet.h>

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 
  0xEA, 0xA1, 0x23, 0x04, 0xFE, 0xED };
IPAddress myIP;

// Initialize the Ethernet server library
// with the IP address and port you want to use 
// (port 80 is default for HTTP):
EthernetServer server(80);


void setup() {
  
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  // start the Ethernet connection and the server:
  myIP = Ethernet.begin(mac);
//  while (!myIP) {
//    ;
//  }
  
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
  
}


void loop() {
  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    Serial.println("new client");
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        if (c == '\n' && currentLineIsBlank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");  // the connection will be closed after completion of the response
	  client.println("Refresh: 5");  // refresh the page automatically every 5 sec
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          // output the value of each analog input pin
          int wassersensor = analogRead(0);
          if (wassersensor > 512) {
            client.print("WASSERSENSOR: ALARM: WASSERSENSOR AKTIV<br/>");
            Serial.println("WASSERSENSOR: ALARM: WASSERSENSOR AKTIV");
          } else {
            client.print("WASSERSENSOR: OK</br>");
            Serial.println("WASSERSENSOR: OK");
          }
          int gassensor = analogRead(1);
          client.print("GASSENSOR: ");
          client.print(gassensor);
          client.print("<br/>");
          Serial.print("GASSENSOR: ");
          Serial.print(gassensor);
        
          client.println("</html>");
          break;
        }
        if (c == '\n') {
          // you're starting a new line
          currentLineIsBlank = true;
        } 
        else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);
    // close the connection:
    client.stop();
    Serial.println("client disonnected");
  }
}

Erfahrungswerte

Auch wenn auf dem Arduino drauf steht, daß er mit bis zu 12 Volt versorgt werden kann, sollte er nur mit Spannungen unter 9V betrieben werden. Das KEMO Modul arbeitet mit Spannungen von ab 8 Volt, daher ergibt sich ein Spannungsbereich von 1 Volt, mit dem beide Komponenten miteinander betrieben werden können. Der DC Wandler kann auf diesen Spannungsbereich eingestellt werden.

Dies ist vor allem aus Rücksicht über die hohe Abwärme-Abgabe des Spannungswandlers auf dem Arduino selbst und die hohe Abwärme des WizNet-Chips sinnvoll.

Bilder

2019-04-20-wassermelder-oelmelder1.jpg 2019-04-20-wassermelder-oelmelder1.jpg

2019-04-20-wassermelder-oelmelder1.jpg 2019-04-20-wassermelder-oelmelder1.jpg

2019-04-20-wassermelder-oelmelder1.jpg 2019-04-20-wassermelder-oelmelder1.jpg

2019-04-20-wassermelder-oelmelder1.jpg 2019-04-20-wassermelder-oelmelder1.jpg

2019-04-20-wassermelder-oelmelder1.jpg 2019-04-20-wassermelder-oelmelder1.jpg

2019-04-20-wassermelder-oelmelder1.jpg 2019-04-20-wassermelder-oelmelder1.jpg