[尼克的robot]實做arduino lcd顯示溫溼度DHT22感測器 佇立的一棵樹
最近天氣很冷,所以就做了一個arduino溫濕度計來測測家裡的溫度,沒想到測出來十幾度試發生甚麼事.....
然後上一篇文章有詳細的教大家關於lcd常見的設定問題,有需要的可以去參考一下
需要材料 :
arduino uno板 一塊
lcd液晶螢幕 一塊
溫溼度感應器(dht11到22都可以)
接線 :
LCD上的GND >> arduino的GND
LCD上的VCC >> arduino的5V
LCD上的SDA >> arduino的A4
LCD上的SCL >> arduino的A5
dht溫溼度的接線圖如下
(LCD跟DHT都會用到5V,如果你的感應器支援3.3V那就可以把DHT接到3.3V,不然就要把5V接到麵包板上囉)
程式部分 :
/*
這可已同時在序列埠跟LCD上顯示,有任何問題都可以參考先前的文章喔
尼克的robot網址 :
https://kenny2019.pixnet.net/blog
底下是lcd的設定問題排解
https://kenny2019.pixnet.net/blog/post/269715976-%5B%E5%B0%BC%E5%85%8B%E5%85%88%E7%94%9F%5D%E5%AF%A6%E5%81%9Aarduino%20lcd%E6%B6%B2%E6%99%B6%E8%9E%A2%E5%B9%95%E9%A1%AF%E7%A4%BA%20(I2C)
*/
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
//dht22設定
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#define DHTPIN 2 // 設定溫溼度感測器腳位
// 設定你的溫溼度感應器型號
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT_Unified dht(DHTPIN, DHTTYPE);
uint32_t delayMS;
void setup() {
Serial.begin(9600);
lcd.init();//初始化LCD
lcd.backlight();//是否開啟背光
lcd.setCursor(2,0);//設定游標位置
lcd.print("Hello World!");//寫入字串
//dht22
dht.begin();
sensor_t sensor;
dht.temperature().getSensor(&sensor);
dht.humidity().getSensor(&sensor);
delayMS = sensor.min_delay / 1000;
}
void loop() {
// 延遲
delay(delayMS);
// 獲取感應器數值
sensors_event_t event;
dht.temperature().getEvent(&event);
float tn = event.relative_humidity/5 ;
if (isnan(event.temperature)) {
Serial.println("Error reading temperature!");
}
else {
Serial.print("Temperature: ");
Serial.print(event.temperature);
Serial.println(" *C");
lcd.clear();
lcd.setCursor(0,0);//設定游標位置
lcd.print("Celsius:");//寫入字串
lcd.print(event.temperature);
lcd.print("oC");//寫入字串
}
// 獲取感應器數值(濕度)
dht.humidity().getEvent(&event);
if (isnan(event.relative_humidity)) {
Serial.println("Error reading humidity!");
}
else {
Serial.print("Humidity: ");
Serial.print(event.relative_humidity);
Serial.println("%");
lcd.setCursor(0,1);//設定游標位置
lcd.print("Humidity:");//寫入字串
lcd.print(event.relative_humidity);
lcd.print("%");//寫入字串
}
}
接著就可以上傳囉
如果出現錯誤可以參考先前的文章
https://kenny2019.pixnet.net/blog
底下是lcd的設定問題排解
https://kenny2019.pixnet.net/blog/post/269715976-%5B%E5%B0%BC%E5%85%8B%E5%85%88%E7%94%9F%5D%E5%AF%A6%E5%81%9Aarduino%20lcd%E6%B6%B2%E6%99%B6%E8%9E%A2%E5%B9%95%E9%A1%AF%E7%A4%BA%20(I2C)
有教大家怎麼排解常見的lcd錯誤還有下載函示庫等等
以下是執行後的結果
留言列表