#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <SPI.h>
#include <DHT.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define SCREEN_ADDRESS 0x3C // Use the default address
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
#define DHTPIN 2 // Digital pin connected to the DHT sensor
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
static const unsigned char PROGMEM image_rain_bits[] = {0x00,0x0f,0xe0,0x00,0x00,0x3c,0x78,0x00,0x00,0x60,0x0c,0x00,0x00,0xc0,0x06,0x00,0x01,0x80,0x03,0x00,0x03,0x00,0x03,0xc0,0x02,0x00,0x07,0xf0,0x02,0x00,0x1c,0x0c,0x06,0x00,0x10,0x06,0x0e,0x00,0x00,0x02,0x3f,0x80,0x00,0x03,0x60,0xc0,0x00,0x01,0xc0,0x00,0x00,0x01,0xc0,0x00,0x00,0x01,0x80,0x00,0x00,0x03,0x80,0x00,0x00,0x03,0xc0,0x00,0x01,0x06,0x60,0x00,0x03,0x8c,0x30,0x00,0x06,0x80,0x1f,0xff,0xf4,0xc0,0x00,0x00,0x04,0x40,0x00,0x0c,0x04,0x40,0x00,0x0e,0x06,0xc0,0x00,0x1a,0x03,0x80,0x00,0x1e,0x00,0x00,0x01,0x8e,0x00,0x00,0x01,0x80,0x00,0x00,0x03,0xc0,0x60,0x00,0x03,0xc0,0x60,0x00,0x01,0x80,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x60,0x00};
void setup() {
Serial.begin(9600);
dht.begin();
Wire.begin();
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);// Use the default address
display.clearDisplay();
}
void loop() {
float w = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
delay(100); // Wait a few seconds between measurements.
aw(w, t, f);
}
void aw(float w, float t, float f) {
display.clearDisplay();
display.drawLine(64, 6, 64, 57, 1);
display.drawCircle(64, 3, 2, 1);
display.drawCircle(64, 60, 2, 1);
display.drawCircle(95, 21, 21, 1);
display.setTextColor(1);
display.setTextSize(1);
display.setCursor(16, 36);
display.setTextWrap(false);
display.print("Rainy");
display.setTextColor(1);
display.setTextSize(1);
display.setCursor(1, 46);
display.setTextWrap(false);
display.print("temp");
display.setTextColor(1);
display.setTextSize(1);
display.setCursor(1, 55);
display.setTextWrap(false);
display.print("humi");
display.setTextColor(1);
display.setTextSize(1);
display.setCursor(25, 46);
display.setTextWrap(false);
display.print(t);
display.print("C");
display.setTextColor(1);
display.setTextSize(1);
display.setCursor(25, 55);
display.setTextWrap(false);
display.print(w);
display.print("%");
display.setTextColor(1);
display.setTextSize(1);
display.setCursor(72, 44);
display.setTextWrap(false);
display.print("22:33");
display.setTextColor(1);
display.setTextSize(1);
display.setCursor(103, 44);
display.setTextWrap(false);
display.print("mon");
display.setTextColor(1);
display.setTextSize(1);
display.setCursor(82, 54);
display.setTextWrap(false);
display.print("10/01");
display.drawBitmap(15, 2, image_rain_bits, 32, 32, 1);
display.drawPixel(87, 62, 1);
display.drawPixel(88, 62, 1);
display.drawPixel(105, 62, 1);
display.display();
}