AHT20溫度 濕度資料採集

2021-10-12 16:25:09 字數 2766 閱讀 2920

. 解釋軟體iic與硬體iic;

. 閱讀aht20資料手冊,程式設計實現:每隔2秒鐘採集一次溫濕度資料,並通過串列埠傳送到上位 機(win10);

. 安裝 ardunio ide 和相關軟體支援庫,在ardunio 完成stm32板子的串列埠通訊程式:1)持續向串列埠輸出「hello world!」;2)當接收到「stop!」時,停止輸出。

iic 通訊協議 (inter-integrated circuit,又叫 i2c 、i²c ) 是由 phiilps 公司開發的,由於它引腳少,硬體實現簡單,可擴充套件性強,不需要 usart、can 等通訊協議的外部收發裝置,現在被廣泛地使用在系統內多個積體電路 ( ic ) 間的通訊。

物理層

iic 通訊裝置之間的常用連線方式如下圖:

協議層

i2c 的協議定義了通訊的起始和停止訊號、資料有效性、響應、仲裁、時鐘同步和位址廣播等環節。

通訊的起始和停止訊號

資料有效性

從圖中可以看出i2c在通訊的時候,只有在scl處於高電平時,sda的資料傳輸才是有效的。sda 訊號線是用於傳輸資料,scl 訊號線是保證資料同步。

響應

當sda傳輸資料後,接收方對接受到的資料進行乙個應答。如果希望繼續進行傳輸資料,則回應應答訊號(低電平),否則回應非應答訊號(高電平)。

相關比較

1.硬體 iic 的效率要遠高於軟體的;軟體 iic 由於不受管腳限制,介面比較靈活

2.硬體 iic 是直接呼叫內部暫存器進行配置;軟體 iic 是通過 gpio ,軟體模擬暫存器的工作方式

3.硬體 iic 配置了 io 口的功能(iic 功能);軟體 iic 沒有配置 io 口的功能

硬體 iic 的 iic 寫函式,有呼叫現成的函式或者給某個暫存器賦值;軟體 iic 傳輸資料的方式是乙個 bit 乙個 bit 模擬發生送的,肯定用到了迴圈

4.根據**量判斷,硬體 iic 的**量肯定比軟體 iic 的**量小

硬體 iic 直接使用外設來控制引腳,可以減輕 cpu 的負擔。不過使用硬體iic 時必須使用某些固定的引腳作為 scl 和 sda,軟體模擬 iic 則可以使用任意 gpio 引腳,相對比較靈活。對於硬體iic用法比較複雜,軟體iic的流程更清楚一些。如果要詳細了解iic的協議,使用軟體iic可能更好的理解這個過程。在使用iic過程,硬體iic可能通訊更加快,更加穩定。

void  read_aht20_once(void)

aht20晶元讀取資料

void read_aht20(void)

i2c_start(

);//i2c啟動

i2c_writebyte(0x71)

;//i2c寫資料

ack_status = receive_ack(

);//收到的應答資訊

readbyte[0]

= i2c_readbyte(

);//i2c讀取資料

send_ack(

);//傳送應答資訊

readbyte[1]

= i2c_readbyte();

send_ack();

readbyte[2]

= i2c_readbyte();

send_ack();

readbyte[3]

= i2c_readbyte();

send_ack();

readbyte[4]

= i2c_readbyte();

send_ack();

readbyte[5]

= i2c_readbyte();

sendnot_ack();

//send_ack();

i2c_stop(

);//i2c停止函式

//判斷讀取到的第乙個位元組是不是0x08,0x08是該晶元讀取流程中規定的,如果讀取過程沒有問題,就對讀到的資料進行相應的處理

if((readbyte[0]

& 0x68)

== 0x08 )

else

printf(

"\r\n");

//根據aht20晶元中,溫度和濕度的計算公式,得到最終的結果,通過串列埠顯示

printf(

"溫度:%d%d.%d",t1/100,(t1/10)%10,t1%10)

; printf(

"濕度:%d%d.%d",h1/100,(h1/10)%10,h1%10)

; printf(

"\r\n");

}

結果顯示aht20溫度採集.

基於STM32,AHT20溫濕度採集

總結學習i2c匯流排通訊協議,完成基於i2c硬體協議的aht20溫濕度感測器的資料採集,並將採集的溫度 濕度值通過串列埠輸出。具體任務 1 解釋什麼是 軟體i2c 和 硬體i2c 閱讀野火配套教材的第23章 i2c 讀寫eeprom 原理章節 2 閱讀aht20資料手冊,程式設計實現 每隔2秒鐘採集...

溫度資料採集模組簡介

我公司現有兩種溫度資料採集模組,分別是cycwj 6型 cycwj 406型。用於dcs系統作為下位機使用,將現場採集到的多點溫度資料傳送到上位機,適用於果蔬貯藏 水產品冷藏 倉庫 化工 醫藥等行業。一 cycwj 6溫度資料採集模組 1 採用atmel微控制器 watchdog電路 軟體陷阱與冗餘...

wemos d1 採集溫度資料上傳到mqtt伺服器

用到的硬體 1.wemos d1板。2.dh1感測器。3.樹莓派。實驗步驟 1.樹莓派安裝mqtt伺服器,並驗證。2.wemos 連線dh1測試。dh1感測器有四個引腳連線如下圖 wemos 如下 include include include dht.h define dhtpin d4 定義感測...