Arduino Uno R3 + DHT22 + LCD 16×2
เพิ่งหัดเล่น ทดลองเล่น Arduino ดู ฝึกสมอง เจอเวปให้ลอง เล่นไปเรื่อยๆ เจอเวปลอง วัด อุณหภูมิ ความชื้น ออกจอ LCD ดูรูปก็ง่าย แต่ต่อตาม มีผิด (แล้วทำไมมันไม่แก้ฟะ) แถมปรากฎว่า โปรแกรมตัวอย่างที่ให้ ผิดอีก หรือเราโง่ก็ไม่รู้
จึงลอง งมแก้ code ใหม่ ให้ใช้งานได้ตรงจุดประสงค์
ดังนี้
#include <DHT.h>
#include <LiquidCrystal.h>
// Pin connected to the sensor data pin
#define DHTPIN 7
// Display pins
LiquidCrystal lcd(12,11,5,4,3,2);
// Use the line according to the sensor model
// #define DHTTYPE DHT11 // Sensor DHT11
#define DHTTYPE DHT22 //DHT Sensor 22 (AM2302)
// #define DHTTYPE DHT21 // DHT Sensor 21 (AM2301)
// Definitions sensor: pin, type
DHT dht (DHTPIN, DHTTYPE);
// Array symbol degree
byte degree [8] =
{
B00001100,
B00010010,
B00010010,
B00001100,
B00000000,
B00000000,
B00000000,
B00000000,
};
void setup() {
// put your setup code here, to run once:
// Initialize the display
lcd.begin (16,2);
lcd.clear ();
// Create the custom character with the symbol of the degree
lcd.createChar (0,degree);
// Information on the initial display
lcd.setCursor (0,0);
lcd.print (“Temp. : “);
lcd.setCursor (13,0);
// Shows the symbol of the degree
lcd.write (byte (0));
lcd.print (“C”);
lcd.setCursor (0,1);
lcd.print (“Umid. : “);
lcd.setCursor (14,1);
lcd.print (“%”);
Serial.begin (9600);
Serial.println (“Waiting for data …”);
// Starts DHT sensor
dht.begin ();
}
void loop()
{
// put your main code here, to run repeatedly:
// Wait 2 seconds between the measurements
delay (2000);
// Moisture reading
float h = dht.readHumidity();
float t = dht.readTemperature();
// dht.readHumidity float h = ();
// Reading of temperature (Celsius)
// t = dht.readTemperature float ();
// Check if the sensor is responding
if (isnan (h) || isnan (t))
{
Serial.println (“Failed to read DHT sensor data !!!”);
return;
}
// Display the temperature in the serial monitor and display
Serial.print (“Temperature: “);
Serial.print (t);
lcd.setCursor(8,0);
lcd.print (t);
Serial.print (” C * “);
// Show the moisture in the serial monitor and display
Serial.print (“humidity: “);
Serial.print (h);
Serial.println (” %”);
lcd.setCursor (8,1);
lcd.print (h);
}
Credit:http://www.boxelectronica.com/en/temperature-humidity/146-humidity-and-temperature-dht22.html