งานที่ 12/63


สอนวัดอุณหภูมิ DHT22 แสดงผ่านหน้าจอ LCD ด้วย Nodemcu และ Arduino

1 ปีที่ผ่านมา
 
โดย เจ้าของร้าน

สวัสดีครับ มีพี่ จากจังหวัด อุบลราชธานี เข้ามาปรึกษา เกี่ยวกับการวัดอุณหภูมิ ด้วย Sensor DHT22 ต้องการแสดงบนหน้าจอแบบ Real Time และต้องการเก็บข้อมูลลง Database ทางร้านก็เลยเขียนบทความเกี่ยวกับการวัดอุณหภูมิ ความชื้น มาแสดงบนหน้าจอ LCD I2C แล้วกันน่ะครับ

ในโปรเจคนี้จะพูดถึงสอนการใช้งาน Nodemcu DHT22 แสดงค่าบน จอ LCD น่ะครับ โปรเจคนี้สามารถใช้ร่วมกับ Arduino ได้ทุกรุ่น ด้วยน่ะครับ

อุปกรณ์ชุดที่ 1 ใช้เป็น Nodemcu esp8266 V3

การต่อใช้งาน โดยใช้ Nodemcu V.3 + Shield 1.0

อุปกรณ์ชุดที่ 2 ใช้เป็น Arduino Uno R3

การต่อใช้งาน โดยใช้ Arduino Uno R3

มาดู Code ตัวอย่างกันเลย

Download Library LCD I2C : http://download.ab.in.th/download.php?file=Arduino-LiquidCrystal-I2C-library-master.zip
Download Library DHT22 : http://download.ab.in.th/download.php?file=DHT-sensor-library-master.zip

#include "DHT.h"
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); //Module IIC/I2C Interface บางรุ่นอาจจะใช้ 0x3f
#define DHTPIN D3 //Pin ขาสำหรับ เสียบกับ Nodemcu
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();
lcd.begin();
lcd.backlight();
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
Serial.print("Heat index: ");
Serial.print(hic);
Serial.print(" *C ");
Serial.print(hif);
Serial.println(" *F");
lcd.home();
lcd.print("Temp : ");
lcd.print(t);
lcd.setCursor(0, 1);
lcd.print("Humidity : ");
lcd.print(t);
lcd.print("%");
}

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้