2016年4月7日 星期四

如何使用Arduino , dht11溫濕度感測器及LCD 點陣液晶模組進行温度 , 濕度收集?


小編自從專科畢業後 , 就沒有再接觸單晶片(8088/8051)及組合語言相關技術 , 最近因為

工作需要接觸雲端技術 , 再度接觸相關技術 , 只是目前流行的技術已不是當初在學校所學的

目前市場上有二大主流 , 一派是Arduino , 另一派是raspberry pi , 我先從Arduino開始玩起

材料部份是從淘寶網去買 , 連運費大概台幣800元有找 




參考書籍部份是選擇旗標出版社的超圖解Arduino 互動設計入門 第二版 , 對於我這種初學者

附有程式範例是比較方便我修改程式



接下來開始我的第一個Arduino專案 , 依照書中的範例 , 先把Arduino , 麵包板 , 杜邦線

, dht11溫濕度感測器 , LCD點陣液晶模組準備好 , 並依照以下電路圖把零組件接好



接下來依據書中程式範例稍做修改 , 我增加了從序列埠輸出温度 , 濕度數值 , 即可完成簡易的

温度計 / 濕度計

#include <LiquidCrystal.h>
#include <dht11.h>      // DHT11 感測器程式庫
LiquidCrystal lcd(11, 12, 6, 5, 4, 3);

dht11 DHT11;     // 宣告溫濕度檢測器程式物件
const byte dataPin = 2;
void setup() {
  lcd.begin(16, 2);       // 初始化 LCD

  lcd.setCursor(4, 0);
  lcd.print("Temp");
  lcd.setCursor(0, 1);
  lcd.print("Humidity");
}
void loop() {
  int chk = DHT11.read(dataPin);
  if (chk == 0) {
    lcd.setCursor(9, 0);   // 顯示溫度
    lcd.print((float)DHT11.temperature, 2);
    lcd.print((char) 0xDF);
    lcd.print("C");

    lcd.setCursor(9, 1);   // 顯示濕度
    lcd.print((float)DHT11.humidity, 2);
    lcd.print("%");
  }
  delay(2000);
}


下一階段再來串ESP8266 WiFiEthernet模組 , 把資料上傳到雲端

3 則留言:

  1. 已附上電路圖,請再自行參考

    回覆刪除
  2. dht11 DHT11; // 宣告溫濕度檢測器程式物件
    我在編譯時,這裡顯示讀不到,反正就是錯誤ㄉ意思,請問哪裡出ㄌ問題?

    回覆刪除