Temperaturwächter für Gewächshaus

Der Temperaturwächter dient dazu, im Gewächshaus junge Pflanzensetzlinge im Frühjahr vor noch vereinzelt auftretendem Nachtfrost zuschützen.

Die Anlage schaltet eine elektrische Beheizung ein und aus und signalisiert ggf. durch eine Alarmglocke, daß eine Mindesttemperatur unterschritten ist.

Als Temperatursensor wird ein TSIC 306 verwendet. Er ist auf 0,3 °C genau. Die Steuerung der Ausgabegeräte erfolgt über eine  2-fach Relaiskarte. Ein TFT-Display zeigt den aktuellen Status an.  Eine Folientastatur  ermöglicht Eingaben zur Änderung der Einstellungen. Zur Anzeige der Uhrzeit wird ein Uhren-Modul vom  Typ DS1307 verwendet. Es hat eine Pufferbatterie und läuft dadurch auch bei Stromausfall weiter. Ausserdem besitzt es auch nichtflüchtigen RAM-Speicher. In diesem Speicher werden die Einstellungen gesichert, sodass sie nach einer Unterbrechung der Stromversorgung unverändert zur Verfügung stehen.

Das Ganze wird durch einen Arduino Nano gesteuert und ist in einem Schaltkasten untergebracht..

image001

Hier das Blockschaltbild :

image003

Ein TFT-Display zeigt die aktuelle Temperatur, Uhrzeit und Status der Heizungssteuerung sowie der Alarmglocke an.

image005

Über ein Menu können die Uhr und alle Parameter gestellt werden.

Ein sog. Loggbuch protokolliert die Temperatur der letzten 24 Stunden, als Augenblickswert zu jeder vollen Stunde.. Zusätzlich wird im Stundenintervall die Einschaltdauer der Heizung und  ggf. der Zeitpunkt einer Alarmmeldung festgehalten

image007

Da nur ein kleines Keyboard vorhanden ist, wird der Dialog über Auswahlmenues und Zifferncodes geführt.

image009

Die Tomaten- und Gurkenpflanzlinge haben es uns gedankt und gedeihen prächtig.

 

Hubert

 

 

 

 

3 Gedanken zu „Temperaturwächter für Gewächshaus

  1. Hi!

    Super Projekte habt ihr da. Könnt ihr zu den Projekten auch den Code veröffentlichen?

    Ich weiß zB nicht, wie man so eine Tastatur ansteuert und ein Menü programmiert und anhand eines Beispielcodes wäre das sicherlich ganz gut zu verstehen.

    VG,
    matthias

    • Hallo Mattias,

      mein Code ist nicht für die Veröffentlichung gedacht. Zu Deinen Fragen : Ein Menu ist Fleißarbeit. Am besten für jedes Bild eine Unterroutine schreiben, die das Bild erzeugt. Dann eine Steuerung mit einer Variablen, die den aktuellen Dialogschritt enthält und die Eingaben und Aktionen steuert

      Zur Keyboardabfrage hier ein Auszug aus meinem Code :

      // Pinbelegung

      //D2 Keypoard Spalte 1 Output
      //D3 Keypoard Spalte 2 Output
      //D4 Keypoard Spalte 3 Output

      //D5 Keypoard Zeile 1 Input Pullup
      //D6 Keypoard Zeile 2 Input Pullup
      //D7 Keypoard Zeile 3 Input Pullup
      //D8 Keypoard Zeile 4 Input Pullup

      // Key-Matrix Mapping
      unsigned char keyboard_map[] = „#9630852*741“;

      // im Setup
      pinMode(5,INPUT_PULLUP);
      pinMode(6,INPUT_PULLUP);
      pinMode(7,INPUT_PULLUP);
      pinMode(8,INPUT_PULLUP);

      // Keyboard Routine
      unsigned char keyboard(){
      static char lastkey = 0;
      unsigned char key = 0;
      byte n=-1;

      for (int i=2;i<5;i++){
      pinMode(i,OUTPUT);
      digitalWrite(i,LOW);
      delay (2);
      for (int k=5;k<9;k++){
      n++;
      if (digitalRead(k)==0) {
      key = keyboard_map[n];
      }
      }
      digitalWrite(i,HIGH);
      pinMode (i,INPUT);
      }

      // entprellen
      if (key == lastKey){
      key = 0;
      }
      else {
      lastKey = key;
      delay(50);
      }
      return key;
      }

      Viel Erfolg damit

      Hubert

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

I accept that my given data and my IP address is sent to a server in the USA only for the purpose of spam prevention through the Akismet program.More information on Akismet and GDPR.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.