使用STM32战舰版和DHT11传感器实现温湿度数据上传至阿里云,并通过APP查看

多学习,多记录,多成长。

1. 引言

本文档将指导用户如何利用正点原子STM32F103战舰版开发板,结合DHT11温湿度传感器和ESP8266 WiFi模块,实现温湿度数据的采集、通过WiFi上传至阿里云物联网平台,并在移动APP上查看数据。本教程适合有一定嵌入式系统开发基础的用户。

2. 材料清单

– 正点原子STM32F103ZET6战舰版开发板
– DHT11温湿度传感器
– ESP8266 WiFi模块
– 杜邦线若干
– USB数据线
– 阿里云物联网平台账号
– 智能手机(安装有相应的云智能APP)

 3. 硬件连接

3.1 DHT11与STM32F103的连接

·将4脚的DHT11插入到战舰版相应的位置

3.2 ESP8266与STM32F103的连接

1. 将ESP8266的TX(发送)引脚连接到STM32F103的PA3引脚。
2. 将ESP8266的RX(接收)引脚连接到STM32F103的PA2引脚。
3. 将ESP8266的RST引脚连接到STM32F103的PA4,以启用模块。

4. 软件编程

4.1 STM32F103编程环境搭建

1. 安装STM32CubeIDE或其它支持STM32的IDE。
2. 安装STM32的驱动程序。

4.2 DHT11驱动编写

1. 创建一个新的STM32项目。
2. 编写DHT11的驱动程序,实现温湿度数据的采集。

```c
// 示例代码片段
void DHT11_Init(void) {
    // 初始化GPIO引脚等
}

uint8_t DHT11_Read(uint8_t *temperature, uint8_t *humidity) {
    // 从DHT11读取温湿度数据
    // 返回读取状态,成功或失败
}
```

4.3 ESP8266通信程序编写

1. 编写串口通信程序,实现STM32F103与ESP8266的数据交互。

```c
// 示例代码片段
void ESP8266_SendCommand(const char *command) {
    // 发送命令到ESP8266
}

uint8_t ESP8266_ReadResponse(char *response, uint16_t responseSize) {
    // 从ESP8266读取响应
    // 返回读取状态,成功或失败
}
```

 4.4 阿里云物联网平台接入

1. 在阿里云物联网平台上创建产品和设备。
2. 获取设备的三元组(ProductKey, DeviceName, DeviceSecret)。
3. 编写MQTT协议的代码,实现数据的上传。

```c
// 示例代码片段
void MQTT_Init(void) {
    // 初始化MQTT客户端
}

void MQTT_Connect(void) {
    // 连接到阿里云物联网平台
}

void MQTT_Publish(float temperature, float humidity) {
    // 发布温湿度数据到阿里云物联网平台
}
```

5. 阿里云物联网平台配置

1. 登录阿里云生活物联网平台(飞燕平台)

2. 点击管理控制台,后右上角创建新项目,前往开发,创建新产品,

3. 产品信息如图所示,使用 ID² 认证勾选 否√,填写完成后点击确认。

4.继续前往开发,在①功能定义,选择自定义功能,填写如下,标识符需要根据自己的标识符填写。填写完成后点击确认。②人机交互,选择云智能app,点击保存。产品展示勾选品牌,勾选完成后点击保存。

5.设备面板,点击创建面板,点击空白面板面板。

6.在界面工作台,点击服务,把温度拖到显示页面。设置完成点击保存,然后可以直接关掉网页。​​​​

7.返回后,设备面板点击选择面板,选择刚刚所创建的面板。③设备调试,新增调试设备,输入名称(自定义)。输入设备名称后会得到设备证书,把设备证书烧录到硬件中。返回②人机交互,点击产品说明书。请上传云智能说明书,点击下载配网二维码。输入刚刚所创建的调试设备名称,生成二维码。手机端登录云智能app后,添加设备扫描二维码即可。

6. 成果展示

7. 测试与调试

1. 确保所有硬件连接正确。
2. 编译并烧录STM32F103程序。
3. 测试DHT11数据采集是否正常。
4. 测试ESP8266 WiFi模块的网络连接。
5. 测试MQTT连接和数据上传是否成功。
6. 在APP上查看数据是否能够正确显示。

8. 注意事项

– 确保STM32F103的电源稳定,避免电源波动影响DHT11的稳定性。
– 检查网络连接,确保ESP8266能够稳定连接到互联网。
– 在APP开发过程中,注意数据的安全性和隐私保护。

9. 常见问题解答

Q: DHT11数据采集不稳定怎么办?
A: 检查DHT11与STM32F103的连接是否牢固,尝试更换连接线或调整上拉电阻值。

Q: ESP8266无法连接到WiFi怎么办?
A: 检查WiFi密码是否正确,确认ESP8266的固件是否支持当前的网络协议。

Q: MQTT连接不上阿里云物联网平台怎么办?
A: 检查网络连接,确认三元组信息是否正确,查看MQTT客户端的日志信息。

Q: APP无法显示数据怎么办?
A: 确认APP的API调用是否正确,检查数据服务的权限设置,确保数据能够被APP获取。

10. 结语

通过本文档的指导,用户应能够实现基于正点原子STM32F103战舰版开发板,通过DHT11传感器采集温湿度数据,利用ESP8266 WiFi模块上传至阿里云物联网平台,并在移动APP上实现数据查看。(测试篇)

作者:Xiaoxi76440

物联沃分享整理
物联沃-IOTWORD物联网 » 使用STM32战舰版和DHT11传感器实现温湿度数据上传至阿里云,并通过APP查看

发表回复