RaspBar icon

mod9_DHT22_SSD1306

RaspBar | PRO | 10/19/21 06:05:15 PM UTC (Edited) | 0 ⭐ | 920 👁️ | Never ⏰ | []
C++ |

1.81 KB

|

None

|

0 👍

/

0 👎

/*
 * Name: mod9_DHT22_SSD1306.ino
 * Date: 2021/10/14
 * Author: fsc
 * Version 1.0
 */
 
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>
 
#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);
 
}

Comments