日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】跟著小哈一起讀AHT20溫濕度傳感器驅動源碼

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-11-04 16:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文來源電子發(fā)燒友社區(qū),作者:juby, 帖子地址:https://bbs.elecfans.com/jishu_2012362_1_1.html

AHT20簡介
  • 2020年上市,奧松生產(chǎn);
  • 3mmx3mmx1mm 超小體積;
  • 經(jīng)過標定的數(shù)字信號,標準I2C輸出格式;
  • 由一個電容式濕度傳感元件和一個標準的片上溫度傳感元件組成;
  • 采用SMD封裝適于回流焊;
  • 響應迅速、抗干擾能力強;
  • AHT20 的供電范圍為 2.0-5.5V, 推薦電壓為3.3V。
應用場景
它廣泛應用于暖通空調 、除濕器、測試及檢測設備、消費品、汽車 、自動控制、數(shù)據(jù)記錄器、氣象站、家電、濕度調節(jié)、醫(yī)療及其他相關濕度檢測控制等領域。
封裝傳感器性能
查看我們之前分享的網(wǎng)文,對比DHT21的參數(shù)如下:
DHT11及DHT21溫濕度傳感器時序圖解析(STM32
由上對比,AHT20的精度要比DHT21的精度要好,而且價格又低了很多。
原理圖手冊中推薦電路開發(fā)板中的原理圖
與開發(fā)板連接情況如下:
[td]
管腳名稱 復用描述
GPIO_13 GPIO_13/ADC6/PWM4_OUT/I2C0_SDA/ UART0_LOG_TXD
GPIO_14 GPIO_14/PWM5_OUT/I2C0_SCL/ UART0_LOG_RXD
由上我們知道,這個AHT20使用的Hi3861芯片的I2C0。
程序源碼
AHT20的鴻蒙驅動代碼,潤和公司的開源庫中已經(jīng)有了,我們就不重復造輪子了,直接使用,結合AHT20的數(shù)據(jù)手冊分析一下代碼。
潤和公司開源的鴻蒙OS AHT20 數(shù)字溫濕度傳感器驅動庫:https://gitee.com/hihopeorg/harmonyos-aht20
如何編譯
  • 修改編譯腳本
  • 在~/harmony/code/code-1.0目錄下執(zhí)行:python build.py wifiiot
模塊的地址
I2C發(fā)送的首字節(jié)包括7位的I2C設備地址 0x38和一個SDA方向位X(讀R:'1',寫W:'0')。
手冊中描述的模塊地址定義如下:
由上分析,我們得到讀數(shù)據(jù)操作的首字節(jié)AHT20_READ_ADDR和寫數(shù)據(jù)操作的首字節(jié)AHT20_WRITE_ADDR分別定義如下:
#define AHT20_DEVICE_ADDR 0x38
#define AHT20_READ_ADDR ((0x38<<1)|0x1)
#define AHT20_WRITE_ADDR ((0x38<<1)|0x0)
I2C總線
AHT20 采用標準的 I2C協(xié)議進行通訊。
對于I2C通信我們之前分享過網(wǎng)文:
STM32 I2C通信操作24C02寫數(shù)據(jù)、讀數(shù)據(jù)
4位數(shù)碼管顯示模塊驅動
基于鴻蒙OS移植OLED驅動程序
I2C寫函數(shù)
上圖中的AHT20_Write()函數(shù)中調用了I2cWrite()函數(shù)。
I2cWrite()函數(shù)是系統(tǒng)中I2C進行寫操作的函數(shù),這個函數(shù)的參數(shù)含義解釋如下:
參數(shù)1WifiIotI2cIdx id,這個參數(shù)是使用的I2C的ID,這個參數(shù)可選下面枚舉中的一個值:
typedef enum {
/** I2C hardware index 0 */
WIFI_IOT_I2C_IDX_0,
/** I2C hardware index 1 */
WIFI_IOT_I2C_IDX_1,
} WifiIotI2cIdx;
因為我們這里使用的是I2C0,所以這個參數(shù)應該為:WIFI_IOT_I2C_IDX_0 。
參數(shù)2unsigned short deviceAddr,這個參數(shù)是I2C總線下面的設備地址,因為這是一個寫操作,所以這個參數(shù)我們選用上面的宏定義:AHT20_WRITE_ADDR。
參數(shù)3const WifiIotI2cData *i2cData,這個參數(shù)是我們要發(fā)送的數(shù)據(jù),該變量的數(shù)據(jù)類型為一個結構體類型: HalWifiIotI2cData ,該結構體的定義如下。
/**
*@BriefDefines I2C data transmission attributes.
*/
typedef struct {
/** Pointer to the buffer storing data to send */
unsigned char *sendBuf;
/** Length of data to send */
unsigned intsendLen;
/** Pointer to the buffer for storing data to receive */
unsigned char *receiveBuf;
/** Length of data received */
unsigned intreceiveLen;
} HalWifiIotI2cData;
I2C讀函數(shù)
上圖中的AHT20_Read()函數(shù)中調用了I2cRead()函數(shù)。
I2cRead()函數(shù)是系統(tǒng)中I2C進行讀操作的函數(shù)。
I2cRead()函數(shù)的參數(shù)與I2cWrite()函數(shù)的參數(shù)類似,只是參數(shù)3:const WifiIotI2cData *i2cData ,這個參數(shù)用于接收我們讀取到的數(shù)據(jù)。
常用命令
AHT20常用的命令有:
  • 初始化命令 ('1011’1110') ,即0xBE;
  • 測量溫濕度命令('1010’1100'),即0xAC;
  • 軟復位命令('1011’1010'),即0xBA。
基本指令集狀態(tài)位
通過發(fā)送0x71可以獲取一個字節(jié)的狀態(tài)字,狀態(tài)字各位的含義描述如下:
狀態(tài)字各位含義說明傳感器讀取流程
  • 上電后要等待40ms,讀取溫濕度值之前, 首先要看狀態(tài)字的校準使能位Bit[3]是否為 1(通過發(fā)送0x71可以獲取一個字節(jié)的狀態(tài)字),如果不為1,要發(fā)送0xBE命令(初始化),此命令參數(shù)有兩個字節(jié), 第一個字節(jié)為0x08,第二個字節(jié)為0x00。
AHT20模塊的狀態(tài)判斷通過下面AHT20_Calibrate()函數(shù)來判斷,具體執(zhí)行過程如下圖所示:
注:在第一步的校準狀態(tài)檢驗只需要上電時檢查,在正常過程無需操作。
軟復位
上面代碼中有一個這樣的指令:AHT20_ResetCommand()
這個命令用于在無需關閉和再次打開電源的情況下,重新啟動傳感器系統(tǒng)。
在接收到這個命令之后,傳感器系統(tǒng)開始重新初始化,并恢復默認設置狀態(tài),軟復位所需時間不超過 20 毫秒。
灰色部分由 AHT20 控制
#define AHT20_CMD_RESET 0xBA // 軟復位命令
// 發(fā)送軟復位命令
static uint32_t AHT20_ResetCommand(void)
{
uint8_t resetCmd[] = {AHT20_CMD_RESET};
return AHT20_Write(resetCmd, sizeof(resetCmd));
}
  • 直接發(fā)送 0xAC命令(觸發(fā)測量),此命令參數(shù)有兩個字節(jié),第一個字節(jié)為 0x33,第二個字節(jié)為0x00。
觸發(fā)測量命令發(fā)送的數(shù)據(jù)如下:
具體使用的代碼如下:
#define AHT20_CMD_TRIGGER 0xAC // 觸發(fā)測量命令
#define AHT20_CMD_TRIGGER_ARG00x33
#define AHT20_CMD_TRIGGER_ARG10x00

// 發(fā)送 觸發(fā)測量 命令,開始測量
uint32_t AHT20_StartMeasure(void)
{
uint8_t triggerCmd[] = {AHT20_CMD_TRIGGER, AHT20_CMD_TRIGGER_ARG0, AHT20_CMD_TRIGGER_ARG1};
return AHT20_Write(triggerCmd, sizeof(triggerCmd));
}
  • 等待75ms待測量完成,忙狀態(tài)Bit[7]為0,然后可以讀取六個字節(jié)(發(fā)0X71即可以讀取)。
注:傳感器在采集時需要時間,主機發(fā)出測量指令(0xAC)后,延時75毫秒以上再讀取轉換后的數(shù)據(jù)并判斷返回的狀態(tài)位是否正常。若狀態(tài)比特位[Bit7]為0代表設備閑,可正常讀取,為1時傳感器為忙狀態(tài),主機需要等待數(shù)據(jù)處理完成。
  • 計算溫濕度值。
相對濕度轉換
將上圖中藍色背景的六個字節(jié)數(shù)據(jù)中,紅色方框框住的為濕度數(shù)據(jù),組成一個20bit長度的一個整形數(shù);紫色方框框住的20bit為溫度數(shù)據(jù)。
濕度數(shù)據(jù)按下面代碼實現(xiàn)拼接:
#define AHT20_RESOLUTION (1<<20)??// 2^20

uint32_t humiRaw = buffer[1];
humiRaw = (humiRaw << 8) | buffer[2];
humiRaw = (humiRaw << 4) | ((buffer[3] & 0xF0) >> 4);
通過手冊我們得知相對濕度的計算公式如下:
上面代碼求得的 humiRaw 即為上圖公式中的Srh,所以根據(jù)上圖公式,使用如下代碼即可獲得相對濕度RH。
*humi = humiRaw / (float)AHT20_RESOLUTION * 100;
溫度轉換
按如下方式合并溫度數(shù)據(jù)的20bit數(shù)據(jù):
uint32_t tempRaw = buffer[3] & 0x0F;
tempRaw = (tempRaw << 8) | buffer[4];
tempRaw = (tempRaw << 8) | buffer[5];
查看手冊。我們知道20bit的數(shù)據(jù)跟℃的換算關系如下:
用代碼具體實現(xiàn)如下:
*temp = tempRaw / (float)AHT20_RESOLUTION * 200 - 50;
結果展示
將上面編譯之后的結果下載驗證,輸出如下:
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • wi-fi
    +關注

    關注

    15

    文章

    2470

    瀏覽量

    130085
  • HarmonyOS
    +關注

    關注

    80

    文章

    2157

    瀏覽量

    36325
  • HiSpark
    +關注

    關注

    1

    文章

    156

    瀏覽量

    7801
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【RA-Eco-RA4M2開發(fā)板評測】AHT20與LabVIEW數(shù)據(jù)采集

    ; 點擊 Generate Project Content 按鈕,生成工程代碼。 工程代碼 添加 AHT20 溫濕度傳感器驅動代碼。 aht
    發(fā)表于 04-15 16:22

    工業(yè)級以太網(wǎng)溫濕度傳感器選型攻略,精準適配多場景需求

    以太網(wǎng)溫濕度傳感器深度分析及應用解析 POE供電+以太網(wǎng)RJ45信號輸出溫濕度傳感器變送器 在物聯(lián)網(wǎng)(IoT)與工業(yè)4.0加速融合的今天,
    的頭像 發(fā)表于 04-14 08:49 ?656次閱讀
    工業(yè)級以太網(wǎng)<b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>選型攻略,精準適配多場景需求

    HDC2010:低功耗溫濕度數(shù)字傳感器的卓越之選

    HDC2010:低功耗溫濕度數(shù)字傳感器的卓越之選 在電子設備的設計中,溫濕度傳感器是不可或缺的部分,它廣泛應用于各種環(huán)境監(jiān)測和控制場景。今
    的頭像 發(fā)表于 02-12 11:25 ?503次閱讀

    HDC2080數(shù)字傳感器:高精度、低功耗的溫濕度監(jiān)測解決方案

    HDC2080數(shù)字傳感器:高精度、低功耗的溫濕度監(jiān)測解決方案 在電子設計領域,溫濕度監(jiān)測是許多應用場景中的關鍵需求。無論是智能家居、工業(yè)控制還是氣象監(jiān)測,都需要可靠、精確的溫濕度
    的頭像 發(fā)表于 02-12 09:40 ?503次閱讀

    HDC2021高精度溫濕度傳感器:特性、應用與設計要點

    HDC2021高精度溫濕度傳感器:特性、應用與設計要點 引言 在電子設備的設計中,溫濕度傳感器扮演著至關重要的角色。HDC2021作為款高
    的頭像 發(fā)表于 02-11 16:00 ?309次閱讀

    HDC3120高精度溫濕度傳感器:設計與應用全解析

    HDC3120高精度溫濕度傳感器:設計與應用全解析 在電子設備的設計中,溫濕度傳感器個關鍵組件,廣泛應用于各種領域,從智能家居到工業(yè)自動
    的頭像 發(fā)表于 02-11 09:25 ?684次閱讀

    燃氣表需要溫濕度傳感器推薦啥?

    嘿,朋友們,今天有個挺有意思的選型問題想和大家聊聊。有客戶來問:“燃氣表里需要溫濕度傳感器,溫度精度要求0.2℃,濕度精度要±2%RH,有合適的型號推薦嗎?”首先,咱們
    的頭像 發(fā)表于 01-28 12:05 ?382次閱讀
    燃氣表需要<b class='flag-5'>一</b>顆<b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>推薦啥?

    ±0.1℃精準監(jiān)測 + POE 供電!網(wǎng)口溫濕度傳感器,部署運維雙省心

    原標題網(wǎng)口溫濕度傳感器:技術原理、核心優(yōu)勢與選型應用全解析 機房應用 、網(wǎng)口溫濕度傳感器的核心定義與技術原理 網(wǎng)口
    的頭像 發(fā)表于 01-04 14:25 ?447次閱讀

    數(shù)字單總線輸出,可長距離串聯(lián)多個節(jié)點的溫濕度傳感芯片-MHT04

    溫濕度傳感芯片是種可以檢測環(huán)境溫度和相對濕度傳感器,通常由
    的頭像 發(fā)表于 12-18 09:54 ?416次閱讀
    數(shù)字單總線輸出,可長距離串聯(lián)多個節(jié)點的<b class='flag-5'>溫濕度</b><b class='flag-5'>傳感</b>芯片-MHT04

    應用于智能門鎖的溫濕度傳感器解決方案

    智能傳感器已廣泛應用于我們生活的方方面面,從智能開關(86盒)、電子溫濕度計到智能窗簾盒、煙感等,無處不在。其中,溫濕度傳感器芯片憑借其高
    的頭像 發(fā)表于 11-28 15:03 ?478次閱讀

    溫濕度傳感器HTU31D在溫濕度中的應用優(yōu)勢

    溫濕度控制種用于監(jiān)測和調節(jié)環(huán)境溫度與濕度的設備,廣泛應用于農業(yè)、倉儲、工業(yè)生產(chǎn)、家庭等多個領域。其主要功能是維持特定環(huán)境條件,以確保產(chǎn)品質量和舒適的居住環(huán)境。
    的頭像 發(fā)表于 11-06 14:38 ?472次閱讀
    <b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>HTU31D在<b class='flag-5'>溫濕度</b>控<b class='flag-5'>器</b>中的應用優(yōu)勢

    如何更新 NuMaker IoT 板上的 Wi-Fi 模塊固件?

    更新 NuMaker IoT 板上的 Wi-Fi 模塊固件
    發(fā)表于 09-04 08:28

    【上海晶珩睿莓1開發(fā)板試用體驗】Home Assistant 物聯(lián)網(wǎng)溫濕度

    【上海晶珩睿莓1開發(fā)板試用體驗】Home Assistant 物聯(lián)網(wǎng)溫濕度計 本文介紹了上海晶珩睿莓 1 開發(fā)板通過 AHT10 傳感器實現(xiàn)環(huán)境溫濕
    發(fā)表于 08-18 13:55

    什么是溫濕度傳感器的水合?

    溫濕度傳感器需要進行水合處理(Hydration),主要是為了優(yōu)化傳感器的性能、穩(wěn)定性和長期可靠性。以下是具體原因和作用的詳細解釋:1.穩(wěn)定濕度敏感材料電容式
    的頭像 發(fā)表于 07-11 12:10 ?1299次閱讀
    什么是<b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>的水合?

    常見的溫濕度傳感器類型?

    溫濕度傳感器種用于測量環(huán)境溫度和濕度的設備,廣泛應用于工業(yè)、農業(yè)、氣象等領域。以下是幾種常見的溫濕度
    發(fā)表于 06-24 09:24
    土默特左旗| 静安区| 承德县| 嘉鱼县| 淳安县| 石家庄市| 盐池县| 华亭县| 米林县| 垣曲县| 荔浦县| 晴隆县| 隆回县| 罗平县| 牟定县| 安康市| 自治县| 焉耆| 扎囊县| 香港 | 鄢陵县| 北辰区| 洱源县| 静海县| 华宁县| 清原| 东明县| 阜南县| 珲春市| 武陟县| 宽城| 广东省| 五华县| 习水县| 济宁市| 江口县| 西乌珠穆沁旗| 南和县| 柞水县| 自治县| 卓资县|