//Aufgabe: Lasst die Sensorwerte in das Display ausgeben
#include "DHT.h" //DHT-Bibliothek einbinden
#include "Wire.h" //I²C-Bibliothek
#include "Adafruit_GFX.h" //Graphic-Display-Bibliothek (Von Adafruit_SSD1306-Bibliothek vorausgesetzt)
#include "Adafruit_SSD1306.h" //Bibliothek für das spezielle Display
//Mehr zu den Funktionen des Displays: //OLED (https://hartmut-waller.info/arduinoblog/bibliothek-adafruit_ssd1306/)
#define DHTPIN 15 //Pin des Sensors definieren
#define DHTTYPE DHT22 //Sensortyp definieren
#define SCREEN_WIDTH 128 //OLED Pixel-Zahl Breite
#define SCREEN_HEIGHT 64 //OLED Pixel-Zahl Höhe
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); //Standard-Code zum Initialisieren dieses Displays an I²C. Das Display ist für unser Programm unter dem Namen "display" ansteuerbar.
DHT dht(DHTPIN, DHTTYPE); //Sensor initialisieren
void setup() {
Serial.begin(115200); // Starte Seiellen Monitor mit Baudrate 115200
dht.begin(); // Starte den DHT-Sensor
Serial.println("DHT-Test"); // Schreibe einen Text in den seriellen Monitor
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //Starte das Display mit Benennung des Display-Typs an der I²C-Adresse 0x3C
delay(2000);
//Wiederholung des HelloWorld-Teils
display.clearDisplay(); // Lösche bisherigen Display-Inhalt
//---//
// Setze Display-Einstellungen, sage, welcher Text wo hinkommt. Bestätigt und angezeigt wird das alles erst nach Zeile 38 --> display.display().
display.setTextSize(1); // Textgröße einstellen
display.setTextColor(WHITE); // Textfarbe einstellen (Weiß ist die einzige Option)
display.setCursor(0, 10); // Anfangsposition einstellen
display.println("Hello, world!"); // Sage, welcher Text geschrieben werden soll
//---//
display.display(); // Übernehme die Einstellungen und den zu schreibenden Text und zeige ihn auf dem Display an.
}
void loop() {
// put your main code here, to run repeatedly:
delay(1000); // Prozessor macht 1000ms lang nichts
float hum = dht.readHumidity(); // Deklariere die Gleitkommazahl-Variable "hum", diese nimmt den vom DHT22 im gleichen Zuge ausgelesenen Luftfeuchtigkeitswert an.
float temp = dht.readTemperature(); // Selbes Konzept für Temperatur
Serial.print("Feuchtigkeit: "); // Schreibe den Text "Feuchtigkeit" in den seriellen Monitor
Serial.print(hum); // Schreibe den Inhalt der Variable hum in den seriellen Monitor
Serial.println("%"); // ...
Serial.print("Temperatur: ");
Serial.print(temp);
Serial.println(" °C");
//Aufgabe: Lasst die Sensorwerte in das Display ausgeben
}