项目下载传送门
一、前言
利用物联网的传感器技术实时采集卧室内环境的空气温湿度、烟雾浓度以及光照强度,传感层将数据进行采集,结合连接阿里云平台通过MQTT协议以数据包的形式发送到阿里云平台物模型数据台,,并可以将数据通过MQTT发布订阅的方式发送到手机端(微信小程序)上。如室内温度异常,立即通过手机对卧室风扇以及门窗进行开关,再通过数据发送到微信小程序提醒使用者。该课程设计是基于物联网传感技术、MQTT通信协议的智能家居系统,采用了 simpleAPI 架构,ESP32的MQTT通信连接手机,阿里云平台以及LinuxQT编程作为数据信息中转,微信小程序作为应用层进行信息交换。
二、系统运行环境
Win 10、Keil uVison 5、Micropython、串口调试助手、技小新工具、Linux ubuntu、QT编程、微信小程序、阿里云。
三、系统相关技术
MQTT是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境。例如,但不仅限于此:
网络代价昂贵,带宽低、不可靠。
在嵌入设备中运行,处理器和内存资源有限。
该协议的特点有:
使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。
对负载内容屏蔽的消息传输。
使用 TCP/IP 提供网络连接。
有三种消息发布服务质量:
小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量。
使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。
四、云平台通信
阿里云平台相应物联网平台提供设备端SDK、产品ID、设备ID、设备密钥,设备使用所提供的信息与平台建立通信;创建云流转进行互相通信并实现控制:
A设备订阅/
p
r
o
d
u
c
t
K
e
y
/
a
N
a
m
e
/
u
s
e
r
/
g
e
t
主
题
B
设
备
订
阅
/
{productKey}/aName/user/get主题 B设备订阅/
productKey/aName/user/get主题B设备订阅/{productKey}/bName/user/get主题
A设备如果想要给B设备发消息,只要往/
p
r
o
d
u
c
t
K
e
y
/
a
N
a
m
e
/
u
s
e
r
/
u
p
d
a
t
e
发
送
消
息
消
息
格
式
是
J
S
O
N
,
里
面
必
须
包
含
t
a
r
g
e
t
这
个
字
段
,
t
a
r
g
e
t
:
b
N
a
m
e
云
产
品
流
转
就
将
一
条
消
息
转
发
到
/
{productKey}/aName/user/update 发送消息 消息格式是JSON,里面必须包含target这个字段,target:bName 云产品流转就将一条消息转发到/
productKey/aName/user/update发送消息消息格式是JSON,里面必须包含target这个字段,target:bName云产品流转就将一条消息转发到/{productKey}/bName/user/get
B设备就可以接收到A设备发送的消息,而且还可以从target这个字段知道是谁发消息给它
五、底层硬件STM32代码
六、MQTT通信代码
七、网关模块软件实现
八、总结
该系统由于需要使用到三类传感器以及蜂鸣器和RC522器件,所以实物连接比较繁琐,需要合理运用MB102面包板以减小实物装卸难度;该系统通过对于所使用的室内的温湿度、烟雾浓度以及火源距离的数据交替检测,系统应安装在较高处,减少人为损坏因素,且较为方便测量高温等危险隐患。
通过实践,我也发现我的很多不足之处,把所学习到的知识融合到一块还不是想象中的那么简单,要学好这门课程还需要更多的努力。 通过实践的学习,使我对整体的电路设计有了一个更全面的了解,锻炼了重全局考虑局部的能力。深刻体会了理论联系实际的重要性,从老师提出设计要求到完成设计报告,不断的完善自己的设计和运用。