使用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