找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4064|回復(fù): 1
收起左側(cè)

Arduino氣象站程序:利用DHT11測量溫度和濕度,并在LCD1602屏幕上顯示這些值

[復(fù)制鏈接]
ID:940978 發(fā)表于 2021-9-2 20:15 | 顯示全部樓層 |閱讀模式
需要零件:Arduino板、面包板、跳線、50kΩ電位器、16×2 LCD 屏幕、DHT11溫濕度傳感器
所需程序庫:   ·LiquidCrystal                       ·DHT
工作原理:本項(xiàng)目使用的濕度傳感器是相對廉價(jià)的DHT11,它測量濕度和溫度。它使用電容式濕度傳感器和電阻式溫度傳感器從其環(huán)境中讀取讀數(shù)。它將此讀數(shù)作為電壓發(fā)送到Arduino,Arduino將其轉(zhuǎn)換為屏幕上顯示的可讀值。為了獲得最佳效果,應(yīng)該將溫濕度傳感器安裝在外墻上,并留有相當(dāng)大的開放空間。需要你的LCD屏幕安裝在室內(nèi),以防止其受到環(huán)境因素的影響。
                                                                     DHT11.jpg                        
     DHT11 數(shù)字溫濕度傳感器是一種集溫度、濕度一體的復(fù)合傳感器,它能把溫度和濕度物理測量通過溫、濕度敏感元件和相應(yīng)電路轉(zhuǎn)換成方便計(jì)算機(jī)或者數(shù)據(jù)采集設(shè)備直接讀取的數(shù)字量,它具有校準(zhǔn)數(shù)字信號輸出功能,采用單總線串行接口,輸出數(shù)據(jù)一共 5 個(gè)字節(jié),分別表示:濕度整數(shù)位、濕度小數(shù)位、溫度整數(shù)位、溫度小數(shù)位及校驗(yàn)和,其中校驗(yàn)和為濕度與溫度之和的最低 8 位數(shù)據(jù)。

DHT11 數(shù)字溫度傳感器模塊共引出 3 個(gè)引腳,分別是地線 GND、電源Vcc 和數(shù)據(jù)線 S。 實(shí)際應(yīng)用時(shí),將 S 端接在 Arduino UNO 的一個(gè)數(shù)字輸入接口。
LCD1602 概述
液晶顯示器簡稱LCD(Liquid Crystal Display),其構(gòu)造是在兩片平行的玻璃基板當(dāng)中放置液晶盒,下基板玻璃上設(shè)置 TFT(薄膜晶體管),上基板玻璃上設(shè)置彩色濾光片,通過 TFT 上的信號與電壓改變來控制液晶分子的轉(zhuǎn)動方向,從而達(dá)到控制每個(gè)像素點(diǎn)偏振光射出的目的。

1602 液晶也叫 1602 字符型液晶,是一種專門用來顯示字母、數(shù)字、符號等的點(diǎn)陣型液晶模塊。它由若干個(gè)5×7 或者 5×11 等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到字符間距和行間距的作用。因此,1602 型液晶非常適合便攜式及低功耗測試設(shè)備。
                                                          LCD引腳.png      
構(gòu)建
1.首先,按照前面“準(zhǔn)備LCD屏幕”中的焊接說明準(zhǔn)備好LCD屏幕。將DHT11傳感器插入面包板。當(dāng)它的前面朝向你時(shí),DHT11引腳從左側(cè)編號為1~4(或3)。將引腳1(VCC)連接到 +5V電源軌,將引腳2(DATA)直接連接到Arduino引腳8,將引腳4(或3)(GND)連接到GND。
            DHT11連接圖.jpg                                  LCD連接圖.jpg
2.將LCD屏幕插入面包板,并將引腳連接到Arduino,如上表所示。GND和 +5V電源導(dǎo)軌將有多個(gè)連接。將LCD屏幕插入面包板。
3.將電位器插入面包板,將中心引腳連接到LCD引腳3,將一個(gè)外側(cè)引腳連接到 +5V導(dǎo)軌,另一側(cè)引腳連接到GND導(dǎo)軌。
4. 將面包板的電源軌連接到Arduino GND和 +5V。確認(rèn)你的設(shè)置與圖中的接線圖相符,并上傳代碼。
                                                            連接圖5.jpg
這個(gè)程序使用了Arduino IDE自帶的LiquidCrystal庫,以及需要從Arduino社區(qū)下載和安裝的DHT庫。DHT庫控制傳感器的功能,LCD庫在屏幕上顯示讀數(shù)。
相關(guān)代碼:

#include <LiquidCrystal.h>
#include"DHT.h"                 //調(diào)用 DHT 庫
#define DHTPIN 8               //連接到DHT的引腳
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
#define DHTTYPE DHT11                  //定義 DHT 模塊類型
DHT dht(DHTPIN, DHTTYPE);            //DHT.h 庫命令
void setup()
{
 dht.begin();                            //開啟傳感器
 lcd.begin(16, 2);                      //LCD 屏幕是每行16個(gè)字符,一共兩行
}
voidloop()
{
 float h = dht.readHumidity();                       //濕度值
 float t = dht.readTemperature();                  //溫度值
 t = t * 9/5 + 32;                                           //將讀數(shù)從攝氏度轉(zhuǎn)換成華氏度
if (isnan(t) || isnan(h))                                       //檢查DHT傳感器是否工作
{  lcd.setCursor(0, 0);
  lcd.print("Failed to read from DHT");         //如果DHT不工作,
                                                               //顯示這個(gè)
 }
else                                                                //否則在屏幕上顯示讀數(shù)

{   lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Humidity: ");
  lcd.print(h);
  lcd.print("%");
  lcd.setCursor(0, 1);
  lcd.print("Temp: ");
  lcd.print(t);
    lcd.print("f");
 }
}


評分

參與人數(shù) 1黑幣 +80 收起 理由
admin + 80 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:970692 發(fā)表于 2021-10-9 11:51 | 顯示全部樓層
大哥能分享一下dht11的庫嗎,萬分感謝
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表