Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Bibliotheken
  2. #include <DHT.h>
  3. #include <Wire.h>
  4. #include <LCD.h>
  5. #include <LiquidCrystal_I2C.h>
  6.  
  7. //Konstanten
  8. #define DHTPIN 4     //Pin an den der DHT22 Daten liefert
  9. #define DHTTYPE DHT22   // Sensortyp auf DHT 22  (AM2302) definieren
  10. DHT dht(DHTPIN, DHTTYPE); //// DHT Sensor initialisieren
  11.  
  12. //I2C LCD einbinden
  13. #define I2C_ADDR 0x27 //I2C Adresse des LCDs lautet 0x27 (kann an der I2C Platine angestellt werden)
  14. #define BACKLIGHT_PIN 3
  15. #define En_pin 2
  16. #define Rw_pin 1
  17. #define Rs_pin 0
  18. #define D4_pin 4
  19. #define D5_pin 5
  20. #define D6_pin 6
  21. #define D7_pin 7
  22. LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
  23.  
  24. //Variablen
  25. int sensePin =0; //Variable für ADC
  26. float feuchte;  //Beinhaltet die Feuchtigkeit in %
  27. float temperatur; //Beinhaltet die Temperatur in °C
  28. float vorherigeZeit;
  29. float oeltemp;
  30. float oeldruck;
  31. char secline;
  32.  
  33. void setup()
  34. {
  35.   //Serielle Verbindung konfigurieren
  36.   Serial.begin(9600);
  37.   dht.begin();
  38.   lcd.begin(16,2);
  39.   lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
  40.   lcd.setBacklight(HIGH);
  41. }
  42.  
  43. void loop()
  44. {
  45.   Serial.print("Poti: ");
  46.   Serial.print(analogRead(sensePin)); //ADC einlesen und über serielle Verbindung ausgeben für ADC Testzwecke
  47.   //Daten aus DHT Sensor lesen und in den Variablen "feuchte" sowie "temperatur" ablegen
  48.   feuchte = dht.readHumidity();
  49.   temperatur = dht.readTemperature();
  50.   //Temperatur und Feuchte über serielle Verbindung ausgeben
  51.   Serial.print(" Humidity: ");
  52.   Serial.print(feuchte);
  53.   Serial.print(" %, Temp: ");
  54.   Serial.print(temperatur);
  55.   Serial.println(" Celsius");
  56.  
  57.   secline="test";
  58.     if (millis()>vorherigeZeit+1000) {
  59.     secline=("ZeileA");
  60.     vorherigeZeit=millis();
  61.   }
  62.   else {
  63.     secline=("ZeileB");
  64.   }
  65.   lcd.clear();
  66.   lcd.setCursor(0,0); //Position im LCD (Horizontal, Vertikal)
  67.   lcd.print("\357ldruck:  "); //"\357" ergibt ein "Ö"
  68.   lcd.print("0"); //Öldruck
  69.   lcd.print(" ");
  70.   lcd.print("bar");
  71.   lcd.setCursor(0,1); //Position im LCD (Horizontal, Vertikal)
  72.   lcd.print(secline);
  73.  
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement