Arduino Uno R3 + DHT22 + LCD 16×2

เพิ่งหัดเล่น ทดลองเล่น Arduino ดู  ฝึกสมอง เจอเวปให้ลอง เล่นไปเรื่อยๆ  เจอเวปลอง วัด อุณหภูมิ ความชื้น ออกจอ LCD ดูรูปก็ง่าย แต่ต่อตาม มีผิด (แล้วทำไมมันไม่แก้ฟะ) แถมปรากฎว่า โปรแกรมตัวอย่างที่ให้ ผิดอีก หรือเราโง่ก็ไม่รู้

จึงลอง งมแก้ code ใหม่ ให้ใช้งานได้ตรงจุดประสงค์

Arduino DHT22 LCD Temp humidity

ดังนี้

#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);
}

 

 

 
image

Credit:http://www.boxelectronica.com/en/temperature-humidity/146-humidity-and-temperature-dht22.html