RaspBar

mod9_DHT22_SSD1306

Oct 16th, 2021 (edited)
541
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * Name: mod9_DHT22_SSD1306.ino
  3.  * Date: 2021/10/14
  4.  * Author: fsc
  5.  * Version 1.0
  6.  */
  7.  
  8. #include <SPI.h>
  9. #include <Wire.h>
  10. #include <Adafruit_GFX.h>
  11. #include <Adafruit_SSD1306.h>
  12. #include <DHT.h>
  13.  
  14. #define OLED_RESET 4
  15. #define SSD1306_LCDWIDTH 128 // OLED mit 128 Picel in der Breite
  16. #define SSD1306_LCDHEIGHT 64 // OLED mit 64 Pixel in der Höhe
  17.  
  18. Adafruit_SSD1306 display(SSD1306_LCDWIDTH, SSD1306_LCDHEIGHT, &Wire, OLED_RESET);
  19.  
  20. #define DHTPIN  8                        // DHT22 an Pin 8
  21. #define DHTTYPE DHT22                    // DHT22 auswählen
  22. DHT dht(DHTPIN, DHTTYPE);                // Objekt mit Parameter anlegen
  23.  
  24. char temperature[] = "00.0 C";
  25. char humidity[]    = "00.0 %";
  26.  
  27. void setup(void) {
  28.  
  29.   display.begin(SSD1306_SWITCHCAPVCC, 0x3D);  // OLED auf I2C-Adresse 0x3D festlegen
  30.  
  31.   dht.begin();                // DHT initialisieren
  32.  
  33.   delay(1000);
  34.  
  35.   // Anzeigepuffer löschen
  36.   display.clearDisplay();
  37.  
  38.   display.drawFastHLine(0, 32, SSD1306_LCDWIDTH, WHITE);
  39.  
  40.   display.setTextSize(1);
  41.   display.setTextColor(WHITE, BLACK);
  42.   display.setCursor(10, 5); // Position der Pixel (x,y)
  43.   display.print("DHT22 TEMPERATUR:");
  44.   display.setCursor(10, 37);
  45.   display.print("DHT22 LUFTFEUCHTE:");
  46.   display.display();
  47. }
  48.  
  49. void loop() {
  50.   // Wert für Luftfeuchte auslesen
  51.   byte RH = dht.readHumidity();
  52.   // Wert für Temperatur auslesen
  53.   byte Temp = dht.readTemperature();
  54.  
  55.   temperature[0] = Temp / 10 + 48;
  56.   temperature[1] = Temp % 10 + 48;
  57.   humidity[0]    = RH / 10 + 48;
  58.   humidity[1]    = RH % 10 + 48;
  59.  
  60.   display.setCursor(46, 20);
  61.   display.print(temperature);
  62.   display.setCursor(46, 52);
  63.   display.print(humidity);
  64.   display.drawRect(71, 20, 3, 3, WHITE);     // Grad-Symbol zeichnen ( ° ), nicht im Zeichensatz enthalten
  65.   display.display();
  66.  
  67.   delay(1000);
  68.  
  69. }
RAW Paste Data