Arduino + Temperatur/Luftfeuchtigkeitssensor + 4D Sysetem LCD Touch 32PTU

Hi
Bin noch noch neu in diesem Forum und habe schon einiges durch da lesen im Forum gelernt nur stehe ich jetzt leider mit meinem Wissen an.

Zu unserem Projekt
Wir lesen 3 Temperatur Sensor aus, erstellen den Mittelwert und vergleichen diesen Wert mit einem vorgebenen Wert.
Ab Luft Ventilator: Ab einer bestimmten Temperatur schaltet sich der Ventilator an und ab auch bei
einer bestimmten Temp und läuft noch einige Zeit nach
Zu Luft Ventilator: Ab einer bestimmten Temperatur schaltet sich der Ventilator an und ab auch bei
einer bestimmten Temp und läuft noch einige Zeit nach
Um Luft Ventilator: Läuft10 min, danach stopp für 10 min, dann läuift wieder 10 usw.

Das Programm läuft auch, nur unser Problem sind jetzt die Ausgaben und Eingaben vom Touchscreen

Ich hab es schon geschafft, die Uhrzeit am Display auszugeben, und den Temperaturmittelwert. Aber das wars dann auch schon wieder. Ich möchte eine LED damit verbinden, dass soll heißen, wenn sich der Ventilator einschaltet, dann soll eine LED leuchten und das geht nicht.

Als nächsten Schritt:
Momentan ist der Wert für die Temperatur, bei der sich der Venti einschaltet noch vorgeben, nur soll er über das Display eingeben werden. Nur weiß ich nicht, weil ich die Befehle nicht verstehe und welche Auswirkungen sie haben.

Ich möchte auch das Programm mit einem Button ein und aus schalten können, sodass es nur auf Wunsch läuft und nicht immer. Nur wie lese ich einen Button ein und verknüpfe die Eingabe mit einer Do-While Schleife??

Ich wär schon froh zu wissen, wenn nach dem drücken eines Button ein Text erscheint. Das würde mir schon weiter helfen.
Ich möchte die Funktion der Befehle verstehen. Weißt jemand vielleicht irgendeine eine deutsche Seite, wo die Befehle erklärt werden auf Deutsch.

Ich hoffe ihr könntt mir weiter helfen.
Danke
Wolfi

#include <genieArduino.h>
#include "DHT.h"
#include <Wire.h>
#include "RTClib.h"
#include <stdio.h>
#include <stdint.h>
#include <ctype.h>

RTC_Millis rtc;

#define DHT1PIN 30     // PIN für Datenleitung von Temperatur_Sensor_1
#define DHT2PIN 32     // PIN für Datenleitung von Temperatur_Sensor_2
#define DHT3PIN 34     // PIN für Datenleitung von Temperatur_Sensor_3

// Uncomment whatever type you're using!

#define DHTTYPE DHT22   // DHT 22  (AM2302)
#define Zu_VENTILATOR 31

// Initialisierung von DHT Sensoren
DHT dht1(DHT1PIN, DHTTYPE);
DHT dht2(DHT2PIN, DHTTYPE);
DHT dht3(DHT3PIN, DHTTYPE);

Genie genie;

int Relais1 = 0;  //Relais Zuluftventilator
int Relais2 = 0;  //Relais Abluftventilator
int Relais3 = 0;  //Relais Umluftventilator

void setup ()
{
    pinMode (Zu_VENTILATOR, OUTPUT);  //Ausgang für Temp/Feuchte_Sensor_1 Relais
    //digitalWrite(Zu_VENTILATOR, LOW);
    pinMode (33, OUTPUT);  //Ausgang für Temp/Feuchte_Sensor_2 Relais
    pinMode (35, OUTPUT);  //Ausgang für Temp/Feuchte_Sensor_3 Relais
    pinMode (41, OUTPUT);  //Ausgang für alle Bodenfeuchte_Sensoren
    pinMode (40, OUTPUT);  //Ausgang für Wasserpumpe Relais
    pinMode (42, OUTPUT);  //Ausgang für Magnetventil_1 Relais
    pinMode (44, OUTPUT);  //Ausgang für Magnetventil_2 Relais
    Serial.begin(115200);
    genie.Begin(Serial);

    // following line sets the RTC to the date & time this sketch was compiled
    rtc.begin(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    //rtc.adjust(DateTime(2015,05,12,22,42,00));
    delay (3500); //let the display start up after the reset (This is important)
    genie.WriteObject (GENIE_OBJ_FORM, 0, 0); // Select form 0
   
   
}

void loop()
{
    DateTime now = rtc.now();
    zeit();
    //feuchtemw();
    genie.WriteObject (GENIE_OBJ_LED_DIGITS, 3, tempmw());
    genie.WriteObject (GENIE_OBJ_LED_DIGITS, 4, feuchtemw());
    //genie.WriteObject (GENIE_OBJ_USER_LED, 0, Zu_VENTILATOR);
   
    if (Zu_VENTILATOR == LOW && (tempmw() > 27 || feuchtemw() > 80))   //Einschalten des Zuluftventilators
    {
        genie.WriteObject (GENIE_OBJ_LED_DIGITS, 3, tempmw());  //Ausgabe des Mittelwerts am Touch
        genie.WriteObject (GENIE_OBJ_LED_DIGITS, 4, feuchtemw());
        digitalWrite (Zu_VENTILATOR, HIGH);
        genie.WriteObject (GENIE_OBJ_USER_LED, 0, Zu_VENTILATOR); //LED sollte leuchten
        Relais1 = 1;
       
       
    }
 
    if (Zu_VENTILATOR == HIGH && tempmw() <=27 && feuchtemw() <= 80 )   //Ausschalten des Zuluftventilators
    {
        if(now.second() == 0 || now.second() == 10 || now.second() == 20 || now.second() == 30 || now.second() == 40 || now.second() == 50)
        {
           genie.WriteObject (GENIE_OBJ_LED_DIGITS, 3, tempmw());
           genie.WriteObject (GENIE_OBJ_LED_DIGITS, 4, feuchtemw());
           digitalWrite (Zu_VENTILATOR, LOW);
           genie.WriteObject (GENIE_OBJ_USER_LED, 0, Zu_VENTILATOR); //LED sollte wieder aus sein
           Relais1 = 0;
           
           
        }
     }
    delay(1000);
}

float tempmw()    //Berechnung von Temperaturmittelwert
{
    float t1 = dht1.readTemperature(); //Auslesen der Temperature in Celsius von Sensor 1
    float t2 = dht2.readTemperature(); //Auslesen der Temperature in Celsius von Sensor 2
    float t3 = dht3.readTemperature(); //Auslesen der Temperature in Celsius von Sensor 3
   
    return( (t1 + t2 + t3) / 3 );   //Errechnen des Mittelwerts
}

float feuchtemw()    //Berechnung von Luftfeuchtkeitmittelwert
{
    float h1 = dht1.readHumidity();    //Auslesen der Luftfeuchtigkeit von Sensor 1
    float h2 = dht2.readHumidity();    //Auslesen der Luftfeuchtigkeit von Sensor 2
    float h3 = dht3.readHumidity();    //Auslesen der Luftfeuchtigkeit von Sensor 3
 
    return( (h1 + h2 + h3) / 3 );   //Errechnen des Mittelwerts
}
void zeit()
{
    DateTime now = rtc.now();
   
    genie.WriteObject (GENIE_OBJ_LED_DIGITS, 0, now.hour());
    genie.WriteObject (GENIE_OBJ_LED_DIGITS, 1, now.minute());
    genie.WriteObject (GENIE_OBJ_LED_DIGITS, 2, now.second());
}