* 導師視頻講解:[**去聽課**](https://www.bilibili.com/video/BV1Cb4y1171H?p=16)
>[success] **技術支持說明:**
>**1**.一般以自主學習為主
> **2**.可到官方問答社區中提問:[**去提問**](https://bbs.csdn.net/forums/zigbee)
> **3**.工程師**會盡快**解答社區問題,但他們是一線開發,【**難以保證**】解答時效,解答辛苦,感謝理解!
<br/>
## **必讀說明**
本課程**屬于課外篇**,其內容較為復雜且有一定難度,因此:
1. 需要先學完以下課程,否則請停止學習!
《NB-IoT開發指南》
《STM32開發指南》
2. 我司原則上不為本項目提供技術支持,懇請理解!
<br/>
## **簡介**
DHT11溫濕度傳感器的簡介請參考知乎文章:https://zhuanlan.zhihu.com/p/483408243
<br/>
## **DHT11溫濕度傳感器 API**
打開hal_dht11.h文件,可以看到DHT11的驅動API,代碼如下:
```
//課外篇:項目實戰/基于STM32+NB-IoT的溫濕度采集/NB-SDK(V1.0.4)/Userspace/hal_dht11.h
#ifndef HAL_DHT11_H
#define HAL_DHT11_H
#ifdef __cplusplus
extern "C" {
#endif
/** @brief DHT11的Data引腳配置*/
#define HAL_DHT11_PORT GPIOA //!< PortA.
#define HAL_DHT11_PIN GPIO_Pin_6 //!< Pin6.
#define HAL_DHT11_CLOCK RCC_AHBPeriph_GPIOA
/** @brief 用于表示DHT11溫濕度數據 */
typedef struct {
unsigned char ok;//ok的值非0時溫濕度數據才有效
unsigned char temp; //溫度值,取值范圍:0~50
unsigned char humi; //濕度值,取值范圍:20~95
} halDHT11Data_t;
/**
* @fn halDHT11Init
*
* @brief 初始化函數,使用DHT11前必須先調用此函數
*/
void halDHT11Init(void);
/**
* @fn halDHT11GetData
*
* @brief 獲取DHT11的溫濕度數據
*
* @return 溫濕度數據值
*/
halDHT11Data_t halDHT11GetData(void);
#ifdef __cplusplus
}
#endif
#endif /* #ifndef HAL_DHT11_H */
```
###
## 使用API
DHT11的驅動API使用起來非常方便,只需按照一下3步使用即可。
(1)修改配置DHT11溫濕度傳感器Data引腳與STM32連接的IO口,代碼如下:
```
/** @brief DHT11的Data引腳配置,此處配置STM32的PA6與DHT11的Data引腳連接,讀者可修改為其他引腳*/
#define HAL_DHT11_PORT GPIOA //!< PortA.
#define HAL_DHT11_PIN GPIO_Pin_6 //!< Pin6.
#define HAL_DHT11_CLOCK RCC_AHBPeriph_GPIOA
```
###
(2)調用halDHT11Init()函數初始化DHT11。
(3)獲取溫濕度數據并判斷是否成功,代碼如下:
```
halDHT11Data_t data;
data = halDHT11GetData();
if (data.ok) {
// 獲取成功,對溫濕度數據進行處理
// 溫度: data.temp
// 濕度: data.humi
}
```
<br/>
<br/>
## **商務合作**
如有以下需求,可掃碼添加管理員好友,注明“**商務合作**”
* 項目定制開發,技術范圍:**NB-IoT**、**CATn(4G)**、**WiFi**、**ZigBee**、**BLE Mesh**以及**STM32**、**嵌入式Linux**等;
* 入駐平臺,成為講師;
* 接項目賺外快;
* 善學坊官網:[www.sxf-iot.com](https://www.sxf-iot.com/)

(非商務合作**勿擾**,此處**非**技術支持)
- 課程介紹
- 配套資源下載
- 配套開發套件簡介
- 簡介
- 硬件組成 & 技術參數
- NB-IoT通信板 原理圖 & PCB圖
- STM32 Pro 主板 電路原理圖 & PCB圖
- STM32 Std 主板 電路原理圖 & PCB圖
- 板載設備使用說明
- NB-IoT開發指南
- 1. 技術簡介
- 2. CH34x USB轉串口驅動安裝
- 3. AT 指令開發與測試
- 4. 基礎指令集簡介
- 5. 云端服務器
- 5.1 PuTTY 簡介與安裝
- 5.2 登錄云端服務器
- 6. 移遠官方工具簡介
- 7. 使用UDP協議與云端服務器通信
- 8. 使用TCP協議與云端服務器通信
- 9. 使用MQTT協議與云端服務器通信
- 9.1 MQTT協議簡介
- 9.2 實驗環境準備
- 9.3 MQTT通信實驗
- 9.4 使用手機APP(選修)
- 進階課程:STM32開發指南——面向物聯網方向
- 課外篇:項目實戰
- 采集溫濕度到騰訊云
- 采集傳感器數據到騰訊云
- 基于STM32+NB-IoT的溫濕度采集
- 系統簡介
- 系統搭建
- 系統詳解
- 1.代碼編譯與架構說明
- 2.DHT11溫濕度傳感器
- 3. 數據通信任務說明