#include <Wire.h>
#include <Adafruit_GFX.h> //แอดจากไรบรารี่
#include <Adafruit_SSD1306.h>
#define WIDHT 128
#define HIGHT 64 //ขนาดของจอความละเอียด
#define RESET -1
#include <DHT.h>
#define DHTPin 13
#define DHTTYPE DHT22
float Temp;
float Humi;
DHT dht(DHTPin,DHTTYPE);
Adafruit_SSD1306 OLED(WIDHT, HIGHT, &Wire, RESET); //คำสั่งใช้งาน ขนาดเท่าไหร่
void setup() {
OLED.begin(SSD1306_SWITCHCAPVCC, 0x3C);//กรณีใช้ไรบรารี่นี้ สั่งทำงาน ใช้แอดเดรสเครื่อง
OLED.clearDisplay();
dht.begin();
}
void loop() {
datatemp();
OLED.display(); // สั่งให้จอแสดงผล ห้ามลืม
delay(3000);
datahumi();
OLED.display();
delay(3000);
}
void datatemp(){
OLED.clearDisplay();
Temp=dht.readTemperature();
if(isnan(Temp)){
Serial.println("fail");
delay(200);
}
OLED.setTextColor(WHITE,BLACK); //กำหนดข้อความสีขาว ฉากหลังสีดำ
OLED.setCursor(30,10); // กำหนดตำแหน่ง x,y ที่จะแสดงผล
OLED.setTextSize(1); // กำหนดขนาดตัวอักษร
OLED.println("Temperature"); // แสดงผลข้อความ ALL
OLED.setCursor(20,25);
OLED.setTextSize(2);
OLED.print(Temp);
OLED.print(" C");
OLED.drawCircle(88, 25, 3, WHITE);
OLED.setCursor(95,25);
delay(200);
}
void datahumi(){
OLED.clearDisplay();
Humi=dht.readHumidity();
if(isnan(Humi)){
Serial.println("fail");
delay(200);
}
OLED.setTextColor(WHITE,BLACK); //กำหนดข้อความสีขาว ฉากหลังสีดำ
OLED.setCursor(40,10); // กำหนดตำแหน่ง x,y ที่จะแสดงผล
OLED.setTextSize(1); // กำหนดขนาดตัวอักษร
OLED.println("Humidity"); // แสดงผลข้อความ ALL
OLED.setCursor(20,25);
OLED.setTextSize(2);
OLED.print(Humi);
OLED.print("%RH");
delay(200);
}