#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
DHT dht(26, DHT22);
DHT dht2(27, DHT22);
DHT dht3(5, DHT22);
DHT dht4(18, DHT22);
DHT dht5(19, DHT22);
void setup() {
Serial.begin(115200);
dht.begin();
dht2.begin();
dht3.begin();
dht4.begin();
dht5.begin();
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
delay(2000);
display.clearDisplay();
display.setTextColor(WHITE);
}
void loop() {
delay(5000);
//read temperature and humidity
float h = dht.readHumidity();
float h2 = dht2.readHumidity();
float h3 = dht3.readHumidity();
float h4 = dht4.readHumidity();
float h5 = dht5.readHumidity();
float t = dht.readTemperature();
float t2 = dht2.readTemperature();
float t3 = dht3.readTemperature();
float t4 = dht4.readTemperature();
float t5 = dht5.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Sensor 1 tidak dapat dibaca");
}
display.clearDisplay();
if (isnan(h2) || isnan(t2)) {
Serial.println("Sensor 2 tidak dapat dibaca");
}
display.clearDisplay();
if (isnan(h3) || isnan(t3)) {
Serial.println("Sensor 3 tidak dapat dibaca");
}
display.clearDisplay();
if (isnan(h4) || isnan(t4)) {
Serial.println("Sensor 4 tidak dapat dibaca");
}
display.clearDisplay();
if (isnan(h5) || isnan(t5)) {
Serial.println("Sensor 5 tidak dapat dibaca");
}
display.clearDisplay();
// display temperature
display.setTextSize(1);
display.setCursor(0,0);
display.print("Temperature: ");
display.setTextSize(2);
display.setCursor(0,10);
display.print(t);
display.print(" ");
display.setTextSize(1);
display.cp437(true);
display.write(167);
display.setTextSize(1);
display.setTextSize(2);
display.print("C");
// display humidity
display.setTextSize(1);
display.setCursor(0, 35);
display.print("Humidity: ");
display.setTextSize(2);
display.setCursor(0, 45);
display.print(h);
display.print(" %");
display.display();
delay(1000);
// display temperature 2
display.setTextSize(1);
display.setCursor(0,0);
display.print("Temperature 2: ");
display.setTextSize(2);
display.setCursor(0,10);
display.print(t2);
display.print(" ");
display.setTextSize(1);
display.cp437(true);
display.write(167);
display.setTextSize(1);
display.setTextSize(2);
display.print("C");
// display humidity 2
display.setTextSize(1);
display.setCursor(0, 35);
display.print("Humidity 2: ");
display.setTextSize(2);
display.setCursor(0, 45);
display.print(h2);
display.print(" %");
display.display();
delay(1000);
display.clearDisplay();
// display temperature 3
display.setTextSize(1);
display.setCursor(0,0);
display.print("Temperature 3: ");
display.setTextSize(2);
display.setCursor(0,10);
display.print(t3);
display.print(" ");
display.setTextSize(1);
display.cp437(true);
display.write(167);
display.setTextSize(1);
display.setTextSize(2);
display.print("C");
// display humidity 3
display.setTextSize(1);
display.setCursor(0, 35);
display.print("Humidity 3: ");
display.setTextSize(2);
display.setCursor(0, 45);
display.print(h3);
display.print(" %");
display.display();
delay(1000);
display.clearDisplay();
// display temperature 4
display.setTextSize(1);
display.setCursor(0,0);
display.print("Temperature 4: ");
display.setTextSize(2);
display.setCursor(0,10);
display.print(t4);
display.print(" ");
display.setTextSize(1);
display.cp437(true);
display.write(167);
display.setTextSize(1);
display.setTextSize(2);
display.print("C");
// display humidity 4
display.setTextSize(1);
display.setCursor(0, 35);
display.print("Humidity 4: ");
display.setTextSize(2);
display.setCursor(0, 45);
display.print(h4);
display.print(" %");
display.display();
delay(1000);
display.clearDisplay();
// display temperature 5
display.setTextSize(1);
display.setCursor(0,0);
display.print("Temperature 5: ");
display.setTextSize(2);
display.setCursor(0,10);
display.print(t5);
display.print(" ");
display.setTextSize(1);
display.cp437(true);
display.write(167);
display.setTextSize(1);
display.setTextSize(2);
display.print("C");
// display humidity 5
display.setTextSize(1);
display.setCursor(0, 35);
display.print("Humidity 5: ");
display.setTextSize(2);
display.setCursor(0, 45);
display.print(h5);
display.print(" %");
display.display();
delay(1000);
display.clearDisplay();
display.setTextSize(1);
display.setCursor(0, 30);
display.print("Terima Kasih");
display.display();
}