#include "DHT.h"
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH1106.h>
#define DHTPIN 2 // Digital pin connected to the DHT sensor
#define DHTTYPE DHT11 //#define DHTTYPE DHT11 // DHT 11
DHT dht(2, DHTTYPE);
// กำหนดขาต่อ I2C กับจอ OLED
#define OLED_RESET 4
Adafruit_SH1106 display(OLED_RESET);
void setup() {
Serial.begin(9600);
dht.begin();
display.begin(SH1106_SWITCHCAPVCC, 0x3C);
display.display();
display.clearDisplay(); // ลบภาพในหน้าจอทั้งหมด
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *c");
Serial.print("\n");
delay(500);
display.setTextSize(0.5);//กำหนดขนาดข้อความบนจอ LED
display.setCursor(0,0); //กำหนดตำแหน่งบนจอ
display.setTextColor(WHITE); //กำหนดข้อความสีขาว
display.print("Humidity:");
display.clearDisplay();
if(h <= 30 && h >= 0){
display.println(" low");
display.clearDisplay();
}
else if (h >= 50 && h <= 110){
display.println(" High");
display.clearDisplay();
}
display.print("Temperature:");
if(t <= 15 && t >= 0){
display.println(" Cool");
display.clearDisplay();
}
else if (t >= 40 && t <= 100){
display.println(" Hot");
display.clearDisplay();
}
else {
display.println(" 55555");
display.clearDisplay();
}
display.display(); // สั่งให้จอแสดงผล
delay(500);
}