Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- TO DO
- LCD Pins aendern
- Relais beruhigen
- Menues anfertigen
- ___________________________________
- Key Codes (in left-to-right order):
- None - 0
- Select - 1
- Left - 2
- Up - 3
- Down - 4
- Right - 5
- */
- #include <dht.h>
- #include <LiquidCrystal.h>
- #include <DFR_Key.h>
- LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
- dht DHT;
- DFR_Key keypad;
- #define dhtA 5
- #define dhtI 6
- #define relais 7
- int localKey = 0; //Tastenerkennung
- String keyString = ""; //??
- double dewPointFast(double celsius, double humidity) //Taupunkt berechnung
- {
- double a = 17.271;
- double b = 237.7;
- double temp = (a * celsius) / (b + celsius) + log(humidity/100);
- double Td = (b * temp) / (a - temp);
- return Td;
- }
- float dewI = 0; //Taupunkt Innen
- float dewA = 0; //Taupunkt Aussen
- float tempI = 0;//Temperatur Innen
- float tempA = 0;//Temperatur Aussen
- float humI = 0; //Luftfeuchtigkeit Innen
- float humA = 0; //Luftfeuchtigkeit Aussen
- int count = 0; //Counter fuer die Eingabe
- int statL = 1; //Status der Luefter
- int menueH = 0; //Durchs Hauptmenue gehen
- int statS = 0; //brauche ich das??
- void setup()
- {
- Serial.begin(115200); //Verbindung Computer
- //pinMode(relais, OUTPUT);
- digitalWrite(relais, HIGH);
- lcd.begin(16, 2);
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("0.01 by Jules");
- delay(2500);
- }
- void loop()
- {
- if(statL == 1) //notwendig um Relais zu schalten!!
- {
- digitalWrite(relais, LOW);
- }
- else
- {
- digitalWrite(relais, HIGH);
- }
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("Messung laeuft");
- DHT.read22(dhtI); //Sensor Innen auslesen
- delay(500);
- DHT.read22(dhtI);
- float humI = DHT.humidity;
- float tempI = DHT.temperature;
- float dewI = (dewPointFast(DHT.temperature, DHT.humidity));
- DHT.read22(dhtA); //Sensor Aussen auslesen
- delay(500);
- DHT.read22(dhtA);
- float humA = DHT.humidity;
- float tempA = DHT.temperature;
- float dewA = (dewPointFast(DHT.temperature, DHT.humidity));
- dewA = dewA + 5; //Test!!!!!!!!!!!!!!!!!!!
- if (dewA > dewI) //Ueberprueft die Luftfeuchtigkeit schaltet die Luefter und speichert den Status in statL
- {
- digitalWrite(relais, HIGH); //Luefter ausschalten
- statL = 0;
- delay(10000); //Test!!!!!!!
- }
- else
- {
- digitalWrite(relais, LOW); //Lufter einschalten
- statL = 1;
- }
- Serial.println(statL); //loeschen
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("Erwarte Befehle");
- count = 0; //integer, wenn zu hoch Speicherüberlauf!!!
- while(count < 30000) //Menuefunktion
- {
- keypad.getKey();
- menueH = keypad.getKey();
- if(statL == 1) //notwendig um Relais zu schalten!!
- {
- digitalWrite(relais, LOW);
- }
- else
- {
- digitalWrite(relais, HIGH);
- }
- switch (menueH) //Einzelne Menuepunkte
- {
- case 1:
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("Taste1");
- delay(2000);
- lcd.clear();
- break;
- case 2:
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("Taste2");
- delay(2000);
- lcd.clear();
- break;
- case 3:
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("Taste3");
- delay(2000);
- lcd.clear();
- break;
- case 4:
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("Taste4");
- delay(2000);
- lcd.clear();
- break;
- case 5:
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("Taste5");
- delay(2000);
- lcd.clear();
- break;
- }
- if(menueH != SAMPLE_WAIT) //Setzt den Counter auf Null wenn Eingabe erfolgt ist.
- {
- count = 0;
- }
- else
- {
- count++; //Ohne Einmgabe laueft der Counter
- }
- //Serial.println(count);
- }
- // Serial.println ("Innensensor:");
- // Serial.print ("humI: ");
- // Serial.println (humI);
- // Serial.print ("tempI: ");
- // Serial.println (tempI);
- // Serial.print ("dewI: ");
- // Serial.println (dewI);
- // Serial.println ("");
- //
- //
- // Serial.println ("Aussensensor:");
- // Serial.print ("humA: ");
- // Serial.println (humA);
- // Serial.print ("tempA: ");
- // Serial.println (tempA);
- // Serial.print ("dewA: ");
- // Serial.println (dewA);
- // Serial.println ("____________________");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement