影視網(wǎng)站代理如何出售自己的域名
一、溫濕度傳感器:
溫濕度傳感器是一種能夠檢測環(huán)境中的溫度和濕度,并將其轉(zhuǎn)化為電信號輸出的裝置。它在智能家居、工業(yè)自動化、氣象監(jiān)測、農(nóng)業(yè)等領(lǐng)域有著廣泛的應(yīng)用。
原理:
溫濕度傳感器通?;诓煌奈锢碓?#xff0c;以下是一些常見的原理:
-
熱電偶原理:熱電偶傳感器通過兩種不同金屬導(dǎo)線連接點(diǎn)的電壓變化來感應(yīng)溫度。
-
熱敏電阻原理:熱敏電阻的電阻值隨溫度變化而變化,通過測量電阻值可以計(jì)算出溫度。
-
濕敏電容原理:濕敏電容的電容值會隨著濕度的變化而變化,通過測量電容值可以確定濕度。
-
露點(diǎn)溫度原理:通過測量空氣冷卻至露點(diǎn)時的溫度來確定濕度。
作用:
- 環(huán)境監(jiān)測:監(jiān)測室內(nèi)外環(huán)境的溫濕度,用于舒適度控制。
- 工業(yè)控制:在工業(yè)生產(chǎn)過程中,控制環(huán)境的溫濕度以保證產(chǎn)品質(zhì)量。
- 農(nóng)業(yè):監(jiān)測溫室或農(nóng)田的溫濕度,優(yōu)化作物生長條件。
- 醫(yī)療:醫(yī)院等場所需要精確控制溫濕度以保證病人舒適及設(shè)備正常運(yùn)作。
AHT10溫濕度傳感器:
??AHT10,新一代溫濕度傳感器在尺寸與智能方面建立了新的標(biāo)準(zhǔn):它嵌入了適于回流焊的雙列扁平無引腳SMD 封裝,底面 4 x 5mm ,高度1.6mm。傳感器輸出經(jīng)過標(biāo)定的數(shù)字信號,標(biāo)準(zhǔn) I2C 格式。AHT10 配有一個全新設(shè)計(jì)的 ASIC專用芯片、一個經(jīng)過改進(jìn)的MEMS半導(dǎo)體電容式濕度傳感元件和一個標(biāo)準(zhǔn)的片上溫度傳感元件,其性能已經(jīng)大大提升甚至超出了前一代傳感器的可靠性水平,新一代溫濕度傳感器,經(jīng)過改進(jìn)使其在惡劣環(huán)境下的性能更穩(wěn)定。每一個傳感器都經(jīng)過校準(zhǔn)和測試,在產(chǎn)品表面印有產(chǎn)品批號。由于對傳感器做了改良和微型化改進(jìn),因此它的性價比更高,并且最終所有設(shè)備都將得益于尖端的節(jié)能運(yùn)行模式。
??應(yīng)用范圍主要在暖通空調(diào) 、除濕器、測試及檢測設(shè)備、消費(fèi)品、汽車 、自動控制、數(shù)據(jù)記錄器、氣象站、家電、濕度調(diào)節(jié)、醫(yī)療及其他相關(guān)溫濕度檢測控制。
電氣特點(diǎn):
- 數(shù)字輸出:AHT10采用數(shù)字I2C接口,與微控制器通信方便。
- 精度高:溫度測量精度為±0.5°C,濕度測量精度為±2%RH。
- 響應(yīng)速度快:快速響應(yīng)環(huán)境中的溫濕度變化。
- 低功耗:適合電池供電的便攜式設(shè)備。
- 集成度高:AHT10將傳感器、模擬信號處理、數(shù)字接口等功能集成在一個小型封裝內(nèi)。
AHT10的工作流程大致如下:
- 上電初始化:AHT10在上電后需要初始化,這通常通過發(fā)送特定的命令序列來完成。
- 測量:初始化后,可以命令A(yù)HT10進(jìn)行一次或周期性的溫濕度測量。
- 數(shù)據(jù)讀取:測量完成后,通過I2C接口讀取測量數(shù)據(jù)。
- 數(shù)據(jù)處理:將讀取的原始數(shù)據(jù)轉(zhuǎn)換為實(shí)際的溫濕度值。
二、cubeMX配置
1、開啟I2C
2、開啟串口
具體串口配置如下:
【STM32-HAL庫】串口配置、printf函數(shù)重定向https://blog.csdn.net/qq_39150957/article/details/136638229?fromshare=blogdetail&sharetype=blogdetail&sharerId=136638229&sharerefer=PC&sharesource=qq_39150957&sharefrom=from_link
三、編寫代碼
AHT10.h
#ifndef _AHT10_H_
#define _AHT10_H_#include "i2c.h"// 定義AHT10地址
#define AHT10_ADDRESS 0x70
#define AHT10_Write_ADDRESS 0x70
#define AHT10_Read_ADDRESS 0x71// 定義AHT10命令
#define AHT10_Init_com 0xE1 // 1110 0001
#define AHT10_SoftReset_com 0xBA // 1011 1010
#define AHT10_TrigeMea_com 0xAC // 1010 1100void AHT10_SoftReset(void);
void AHT10_TrigeMea(void);
void AHT10_Init(void);
uint8_t AHT10_Read_predata(float *humidity, float *temperature);#endif
AHT10.c
#include "AHT10.h"/*** @brief AHT10 初始化* @param void* @retval void*/
void AHT10_Init(void)
{uint8_t senddata;senddata = AHT10_Init_com;HAL_I2C_Master_Transmit(&hi2c1, AHT10_Write_ADDRESS, &senddata, 1, 0xFFFF);
}/*** @brief AHT10 軟復(fù)位* @param void* @retval void*/
void AHT10_SoftReset(void)
{uint8_t senddata;senddata = AHT10_SoftReset_com;HAL_I2C_Master_Transmit(&hi2c1, AHT10_Write_ADDRESS, &senddata, 1, 0xFFFF);HAL_Delay(20);
}/*** @brief AHT10觸發(fā)測量* @param void* @retval void*/
void AHT10_TrigeMea(void)
{uint8_t senddata[3];senddata[0] = AHT10_TrigeMea_com;senddata[1] = 0x33; // DATA0senddata[2] = 0x00; // DATA1HAL_I2C_Master_Transmit(&hi2c1, AHT10_Write_ADDRESS, senddata, 3, 0xFFFF);HAL_Delay(80);
}/*** @brief AHT10 設(shè)備讀取 相對濕度和溫度* @param float *humidity:濕度信息;* float *temperature:溫度信息。* @retval uint8_t:0-讀取數(shù)據(jù)正常; 1-讀取設(shè)備失敗,設(shè)備一直處于忙狀態(tài),不能獲取數(shù)據(jù)*/
uint8_t AHT10_Read_predata(float *humidity, float *temperature)
{AHT10_TrigeMea();HAL_Delay(75);static uint32_t humi, temp;uint8_t readdata[6];uint8_t BusyIndication, CalEnable;HAL_I2C_Master_Receive(&hi2c1, AHT10_Read_ADDRESS, readdata, 6, 0xFFFF);BusyIndication = (readdata[0] >> 7) & 0x01; // 狀態(tài)標(biāo)志位CalEnable = (readdata[0] >> 3) & 0x01; // 校準(zhǔn)標(biāo)志位if (CalEnable == 0){AHT10_SoftReset();}if (BusyIndication == 0){humi = (readdata[1] << 12) | (readdata[2] << 4) | (readdata[3] >> 4);temp = ((readdata[3] & 0x0F) << 16) | (readdata[4] << 8) | (readdata[5]);*humidity = ((humi * 100.0) / 1048576);*temperature = ((float)temp / 1048576) * 200 - 50;return 0;}return 1;
}
main.c
引入頭文件
/* USER CODE BEGIN Includes */#include "AHT10.h"/* USER CODE END Includes */
初始化函數(shù)
/* USER CODE BEGIN 2 */
HAL_Delay(20);
AHT10_Init();float humidity,temperature;/* USER CODE END 2 */
主循環(huán)內(nèi)代碼
/* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */AHT10_Read_predata(&humidity,&temperature);printf("濕度:%.2f%%;溫度:%.2f\r\n",humidity,temperature);HAL_Delay(1000);}/* USER CODE END 3 */
四、接線示意
I2C接模塊,我們可以從cubeMX中配置看到引腳及引腳定義
STM32? ? ? ? | AHT10溫濕度傳感器 |
PB6 | SCL |
PB7 | SDA |
3.3V | VCC |
GND? ? ? ? | GND |
串口接引腳我們也可以從下面引腳示意中看到
STM32 | 串口模塊 |
PA9 | RX |
PA10 | TX |
3.3V | VCC |
GND | GND |
五、運(yùn)行效果
我們打開串口助手即可查看到當(dāng)前的效果
我哈了一口氣,所以看到溫度在上升、濕度也在上升。
工程下載
通過百度網(wǎng)盤分享的文件:AHT10.zip 鏈接:https://pan.baidu.com/s/1hoSKvpqDYm9s_rrKE9KCEQ 提取碼:6666https://pan.baidu.com/s/1hoSKvpqDYm9s_rrKE9KCEQ