* 导师视频讲解:[**去听课**](https://www.bilibili.com/video/BV1Cb4y1171H?p=16)
>[success] **技术支持说明**
> 1.**客服**提供简单的技术支持,一般自主学习为主
> 2.可到官方问答社区中提问:[**去提问**](https://bbs.csdn.net/forums/nb-iot)
> 3.工程师**会尽快**解答社区问题,但他们是一线开发,【**难以保证**】解答时效,解答辛苦,感谢理解!
<br/>
>[danger] 本项目为课外学习内容,其内容较为复杂且有一定难度,因此:**未学习前面章节者**,**请止步**!
<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/)
![](https://img.kancloud.cn/ca/73/ca739f92cab220a3059378642e3bd502_430x430.png =150x)
(非商务合作**勿扰**,此处**非**技术支持)
- 课程介绍
- 配套资源下载
- 配套开发套件简介
- 简介
- 硬件组成 & 技术参数
- 电路原理图 & PCB图
- 拨码开关使用说明
- 第一部分:无线通信 开发指南
- 1.1.1 NB-IoT:技术简介
- 1.1.2 NB:CH34x USB转串口驱动安装
- 1.1.3 NB:AT 指令开发与测试
- 1.1.4 NB:基础指令集简介
- 1.1.5 NB:云端服务器
- 1.1.5.1 PuTTY 简介与安装
- 1.1.5.2 登录云端服务器
- 1.1.6 NB:移远官方工具简介
- 1.1.7 NB:使用UDP协议与云端服务器通信
- 1.1.8 NB:使用TCP协议与云端服务器通信
- 1.1.9 NB:使用MQTT协议与云端服务器通信
- 进阶课程
- 第二部分:STM32 开发指南
- 2.1 搭建开发环境
- 2.1.1 Keil MDK 简介与安装
- 2.1.2 STM32 Pack 简介与安装
- 2.1.3 CH34x 驱动简介与安装
- 2.1.4 其他开发工具
- 2.2 STM32 开发基础
- 2.2.1 新建工程
- 2.2.2 实现第1个程序
- 2.2.3 Hex 文件烧录详解
- 2.3 移植官方标准工程模板
- 2.4 GPIO实验——LED灯
- 2.5 系统延时应用
- 2.6 GPIO实验——按键
- 2.7 GPIO中断实验——按键触发
- 2.8 使用定时器TIM3
- 2.9 串口通信实验
- 2.10 ADC 实验
- 2.11 OLED显示器实验
- 2.12 SDK 设计思想
- 2.13 SDK 架构解析
- 2.14 多任务应用
- 2.15 输入型任务:按键输入
- 2.16 输入型任务:串口接收
- 课外篇:项目实战
- 基于STM32+NB-IoT的温湿度采集
- 系统简介
- 系统搭建
- 系统详解
- 1.代码编译与架构说明
- 2.DHT11温湿度传感器
- 3. 数据通信任务说明
- 版权声明与免责声明