iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
自我挑戰組

arduino基礎實作系列 第 8

day8:結合lcd及溫溼度感應器製作溫度器

  • 分享至 

  • xImage
  •  

第8天我將結合lcd及溫溼度感應器來製作溫度器。

那首先是這次需要的模組
溫溼度感應器

接線圖
通常都實連接5v的電壓不過我懶的接麵包版所以就連接了3.3v,目前看來是能正常運作。

實體圖

再來是arduino部分

首先我需要先下載函數庫,可以在這輸入dht11去查詢溫溼度感應器的函數庫。

再來就可以導入函數庫,lcd的部份一樣,dht(2,11)代表的是腳位跟溫室度感應器的版本,這邊我使用的是腳位2及dht 11版本。

再來就是開啟lcd跟溫溼度感應器。

接著我建立了三個浮點代數去儲存溫濕度的回傳值,下面是沒有接收到值得回傳值。

再來將lcd的顯示設定好就可以上傳程式。

沒出錯的話就會看到lcd顯示溫溼度值了

程式碼

#include <LiquidCrystal_I2C.h>
#include "DHT.h"   

LiquidCrystal_I2C lcd(0x27, 16, 2); 
 
DHT dht(2,11); //Initialize DHT sensor
 
void setup() {
    Serial.begin(9600); 
    Serial.println("DHT11 test!");
    dht.begin(); 
    lcd.init();
    lcd.backlight();
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("START RH.");
    lcd.setCursor(0, 1);
    lcd.print("START TMP");
}
 
void loop() {
    delay(1000); 
    float h = dht.readHumidity(); 
    float t = dht.readTemperature(); 
    float f = dht.readTemperature(true); 
 
    if (isnan(h) || isnan(t) || isnan(f)) {
        Serial.println("無法從DHT模組讀取資料!");
        return;
    }
    Serial.print("Humidity: "); 
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: ");
    Serial.print(t);
    Serial.print(" *C ");
    Serial.print(f);
    Serial.println(" *F\t");

    lcd.clear();
    lcd.setCursor(0, 0); 
    lcd.print("RH  :");  
    lcd.setCursor(7, 0);  
    lcd.print(h);
    lcd.setCursor(14, 0);
    lcd.print("%");

    lcd.setCursor(0, 1); 
    lcd.print("Temp:");
    lcd.setCursor(7, 1);  
    lcd.print(t);
    lcd.setCursor(13, 1);
    lcd.print((char)223);
    lcd.setCursor(14, 1);
    lcd.print("C");
}

上一篇
day7:lcd_i2c模組
下一篇
day9:蜂鳴器撥放歌曲
系列文
arduino基礎實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言