通過串列埠實時顯示溫濕度值

2021-09-30 12:29:23 字數 1564 閱讀 5261

一、晶元介紹

dht11數字溫濕度

感測器,是一款含有已校準數碼訊號輸出的溫濕度復合感測器,它應用專用的數字模組採集技術和溫濕度感測技術,確保產品具有極高的可靠性與卓越的長期穩定性。

dht11數字溫濕度感測器,包括乙個

電阻式感溼元件和乙個ntc測溫元件,並與stm32微控制器相連線。因此該產品具有品質卓越、超快響應、抗干擾能力強、價效比極高等優點。

每個dht11感測器都在極為精確的濕度校驗室中進行校準,校準係數以程式的形式儲存在otp記憶體中,感測器內部在檢測訊號的處理過程中要呼叫這些校準係數.單線制序列介面,使系統整合變得簡易快捷、超小的體積、極低的功耗,訊號傳輸距離可達20公尺以上,使其成為各類應用甚至最為苛刻的應用場合的最佳選則。

二、介面說明

建議連線線長度短於20公尺時用5k上拉電阻,大於20公尺時根據實際情況使用合適的上拉電阻。

三、程式說明

由於dht11是單匯流排晶元,所以採用單匯流排資料格式,一次通訊時間4ms左右,所以它與stm32微控制器連線時,只需用到三根線,分別是vcc、gnd以及data,data用於微控制器與dht11之間的通訊和同步。

程式設計步驟如下:

第一步:時鐘設定

void rcc_configuration(void)

第二步:埠設定

void gpio_configuration(void) 

/**********dht11 bus outputconfig********/

void dht11_outputconfig(void)

/**********dht11 bus inputconfig********/

void dht11_inputconfig(void)

第三步:串列埠配置

void usart_configuration(void)

第四步:dht11時序。

/***************dht11 start**************/

uint8_t startdht11(void)

return 0;

}/*****************read a bit data*******************/

uint8_t dht11_read_bit(void)

if(i>3)

return 1;

else 

return 0;

}/*****************read a byte data*******************/

uint8_t dht11_read_byte(void)

return data;

}/************read  temperature and humidity***************/

uint8_t dht11_read_data(void)

else

return 1;

return 0;}

最後一步當然是主函式的編寫了,具體如下:

int main(void)

}delayms(200);

time++;

if(time==30)}}

基於iic的通訊的溫濕度顯示

思路 基於stm32晶元 利用dht11測溫模組把數值顯示在oled顯示屏上 硬體硬體部分可以點我這篇帖子鏈結 關於oled顯示的 硬體部分 本實驗多加了個溫濕度感應模組 元件圖 總效果圖 貼出部分 主函式 include delay.h include sys.h include oled.h i...

NodeMCU(5)阿里雲接入顯示溫濕度

由於這個是我去年暑假做的東西但是今天看的時候發現很多地方出現了變化。所以如果有哪些步驟出了問題還煩請告知一聲。了解物聯網平台的裝置接入流程和協議。mqtt協議 首先,wifi模組需要接入wifi,以wifi作為跳板通過雲服務端分配的暗號與雲服務端建立連線。建立聯絡後剩下的就是訂閱和發布的問題,在阿里...

ADC測量實時電壓值並通過串列埠顯示總結

第三期的任務是adc實驗,測量實時電壓值並通過串列埠顯示。做出的現象是可以顯示電壓值,但數值誤差很大,提供3.3v電壓源,一端接電壓源地線,另一端接pa5引腳,測量這兩端電壓值,測出的資料在1.800v左右波動,與3.3v相差很大。目前尚未找出原因。總之,關於adc的知識了解得不夠多,還需多多學習,...