#include <Adafruit_Sensor.h> #include <DHT.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> // Define the pin for the DHT11 sensor #define DHTPIN 2 #define DHTTYPE DHT11 // Initialize DHT sensor DHT dht(DHTPIN, DHTTYPE); // Define the I2C address for the display #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 #define SCREEN_ADDRESS 0x3C // Common I2C address for SSD1306 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); void setup() { // Start serial communication Serial.begin(9600); // Start the DHT sensor dht.begin(); // Start the display if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) { Serial.println(F("SSD1306 allocation failed")); for(;;); } display.display(); delay(2000); display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); } void sendSensor() { // Read humidity and temperature float h = dht.readHumidity(); float t = dht.readTemperature(); // Check if any reads failed and exit early if (isnan(h) || isnan(t)) { Serial.println(F("Failed to read from DHT sensor!")); return; } // Print values to Serial Serial.print(F("Humidity: ")); Serial.print(h); Serial.print(F("% Temperature: ")); Serial.print(t); Serial.println(F("°C ")); // Display values on OLED display.clearDisplay(); display.setCursor(0,0); display.print(F("Humidity: ")); display.print(h); display.print(F("%")); display.setCursor(0, 10); display.print(F("Temp: ")); display.print(t); display.print(F(" C")); display.display(); }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter