- รับลิงก์
- X
- อีเมล
- แอปอื่นๆ
งานที่ 12/63
สอนวัดอุณหภูมิ DHT22 แสดงผ่านหน้าจอ LCD ด้วย Nodemcu และ Arduino
สวัสดีครับ มีพี่ จากจังหวัด อุบลราชธานี เข้ามาปรึกษา เกี่ยวกับการวัดอุณหภูมิ ด้วย Sensor DHT22 ต้องการแสดงบนหน้าจอแบบ Real Time และต้องการเก็บข้อมูลลง Database ทางร้านก็เลยเขียนบทความเกี่ยวกับการวัดอุณหภูมิ ความชื้น มาแสดงบนหน้าจอ LCD I2C แล้วกันน่ะครับ
ในโปรเจคนี้จะพูดถึงสอนการใช้งาน Nodemcu DHT22 แสดงค่าบน จอ LCD น่ะครับ โปรเจคนี้สามารถใช้ร่วมกับ Arduino ได้ทุกรุ่น ด้วยน่ะครับ
อุปกรณ์ชุดที่ 1 ใช้เป็น Nodemcu esp8266 V3
- Nodemcu (ทางร้านเลือก Nodemcu V3 + Shield 1.0 เพื่อให้เสียบสายไฟได้ง่าย)
- Sensor DHT22
- จอ แสดงข้อมูล LCD I2C 1602
- สายไฟ แบบ Female to Female
การต่อใช้งาน โดยใช้ 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("%"); | |
} |
- รับลิงก์
- X
- อีเมล
- แอปอื่นๆ
ความคิดเห็น
แสดงความคิดเห็น