/* * Name: mod9_DHT22_SSD1306.ino * Date: 2021/10/14 * Author: fsc * Version 1.0 */ #include #include #include #include #include #define OLED_RESET 4 #define SSD1306_LCDWIDTH 128 // OLED mit 128 Picel in der Breite #define SSD1306_LCDHEIGHT 64 // OLED mit 64 Pixel in der Höhe Adafruit_SSD1306 display(SSD1306_LCDWIDTH, SSD1306_LCDHEIGHT, &Wire, OLED_RESET); #define DHTPIN 8 // DHT22 an Pin 8 #define DHTTYPE DHT22 // DHT22 auswählen DHT dht(DHTPIN, DHTTYPE); // Objekt mit Parameter anlegen char temperature[] = "00.0 C"; char humidity[] = "00.0 %"; void setup(void) { display.begin(SSD1306_SWITCHCAPVCC, 0x3D); // OLED auf I2C-Adresse 0x3D festlegen dht.begin(); // DHT initialisieren delay(1000); // Anzeigepuffer löschen display.clearDisplay(); display.drawFastHLine(0, 32, SSD1306_LCDWIDTH, WHITE); display.setTextSize(1); display.setTextColor(WHITE, BLACK); display.setCursor(10, 5); // Position der Pixel (x,y) display.print("DHT22 TEMPERATUR:"); display.setCursor(10, 37); display.print("DHT22 LUFTFEUCHTE:"); display.display(); } void loop() { // Wert für Luftfeuchte auslesen byte RH = dht.readHumidity(); // Wert für Temperatur auslesen byte Temp = dht.readTemperature(); temperature[0] = Temp / 10 + 48; temperature[1] = Temp % 10 + 48; humidity[0] = RH / 10 + 48; humidity[1] = RH % 10 + 48; display.setCursor(46, 20); display.print(temperature); display.setCursor(46, 52); display.print(humidity); display.drawRect(71, 20, 3, 3, WHITE); // Grad-Symbol zeichnen ( ° ), nicht im Zeichensatz enthalten display.display(); delay(1000); }