物联网课设项目-STM32-ESP8266-DHT11温湿度监测-本地emqx服务器-标准库

文章介绍了如何使用STM32获取DHT11传感器的温湿度数据,以及通过ESP8266和SpringBoot后端结合MQTT协议实现远程控制。STM32接收ESP8266从服务器获取的指令,控制硬件设备。硬件设备包括STM32C8T6、ESP8266、DHT11传感器等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系列文章目录

01-STM32获取DHT11数据



前言

本文用于记录一下前几天完成的物联网课设,完成的效果: 实时监测温度变化,并且可以远程控制灯开关(考虑加上远程控制风扇功能 但我懒。而且其实单个ESP8266就可以实现整个功能,还简单) 代码我会上传github,请自行pull代码
前端界面

网页控制开关灯:

实现思路:STM32负责接收和控制设备。ESP8266通过AT+MQTT指令和服务器进行通信(ESP8266在此次课设只用于通信),最后用Spring Boot集成Java的MQTT库实现一个MQTT的Client作为后端,后端作为订阅者订阅ESP8266的Topic并接收ESP8266发布的消息。然后通过前端发送Http请求来实现消息发布(ESP8266此时是订阅者,要订阅后端的Topic),ESP8266接收消息后通过串口发送给STM32,STM32接收并解析从而实现远程控制功能。
通信流程概念框图:
概念框架图
注:我并没有使用云平台,而是直接在虚拟机上用docker部署了一个emqx服务,用于模拟云平台,实际上直接使用云平台会比这个更加容易和方便。其次,本文基本不会讲原理,因为我也不会。代码都是参考其他人的博客文章,这个图也是改别人的。最后在文末会引用所有参考过的博客/文章
优快云这个markdown居然不能改图片比例,真挺难看的

所需物理设备:USB数据线1根、LED灯1个、ESP8266模块1个、OLED显示屏1个(用于调试)、杜邦线n根、DHT11温湿度传感器1个、ST-Link 1个、STM32C8T6 1个、面包板1块,硬件准备图如下:

在这里插入图片描述


提示:以下是本篇文章正文内容,下面案例可供参考

一、参考别人代码

我参考的:DHT11标准库代码实现
还是比较简单的,想要了解通信原理的可以参考其他帖子,这里随便放一篇
STM32实现DHT11温湿度采集串口显示(标准库与HAL库实现)

参考代码解压后,看Hardware部分,代码都比较简单
System.h 主要是位带操作。这是他代码实现传感器工作时序的核心,不能替换。
SysTick.c 就是延时函数,换成了自己的。
dht11.c 基本没改,我将所有位带操作的参数和需要开放的引脚都分别用一个全局变量代替,方便自己修改。此为部分dht11.c代码


// System.h宏 所需的引脚参数 (0~15)
uint16_t PIN_NUM = 1;
// 初始化的引脚
#define  GPIO_PIN_NUM GPIO_Pin_1

void dht11_pin_mode(GPIOMode_TypeDef pin_mode<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值