#include <LiquidCrystal_I2C.h> //เรียกใช้งาน Library จาก Library Manager
#define LCD_ADDR 0x27
#define LCD_COLUMNS 16 // 16 คอลัมน์
#define LCD_ROWS 2 // 2 แถว
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
int btn = 3 ;
int btn1 = 4 ;
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(LCD_ADDR ,LCD_COLUMNS ,LCD_ROWS);
void setup() {
Serial.begin(9600);
pinMode(btn,INPUT_PULLUP);
pinMode(btn1,INPUT_PULLUP);
lcd.begin(16,2); //กำหนดขนาดของ LCD ที่มี 16 คอลัมน์ 2 แถว.
lcd.init(); // ทำการเริ่มต้น LCD
lcd.init(); // ทำการเริ่มต้น LCD
lcd.backlight(); // เปิดไฟ LCD
//lcd.clear();
dht.begin();
}
void loop() {
// put your main code here, to run repeatedly:
delay(100);
bool btnIV = !digitalRead(btn);
bool btnV = !digitalRead(btn1);
float h = dht.readHumidity();
float t = dht.readTemperature();
if (btnIV) {
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temp"); // แสดงผล
lcd.setCursor(5,0); // กำหนดตำแหน่งตัวอักษร
lcd.print(t);
lcd.setCursor(0,1); // กำหนดตำแหน่งตัวอักษร
lcd.print("Heat");
lcd.setCursor(5,1); // กำหนดตำแหน่งตัวอักษร
lcd.print(h);
if (isnan(h) || isnan(t)) {
Serial.println(F("Failed to read"));
return;
}
// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);
Serial.println("Start LCD");
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.print(F("°C "));
Serial.print(F("°F Heat: "));
Serial.print(hic);
Serial.print(F("°C "));
Serial.println(hif);
}
if (btnV) {
Serial.print("Clear LCD");
lcd.clear();
}
}