设计以STM32F405为主控芯片,通过W5500模块以MQTT协议方式发布到MQTT服务器,最终在手机客户端实现数据采集和控制。
主要功能:
1.STM32F405为主控芯片,它通过传感器采集环境数据,比如温度,湿度,光照度,大气压强等;
2.主控芯片通过W5500模块将测量的数据通过MQTT协议方式发布到MQTT服务器(服务器域名和IP见固件程序);
3.主控订阅LED灯控制的消息,当接收到对应的控制指令后点亮或者熄灭对应的LED灯;
4.安卓手机端订阅传感器数据的消息,当接收到消息后将传感器数据在界面显示;
5.安卓手机可发送点亮或者熄灭LED灯的指令到服务器,然后服务器会将该指令转发给STM32主控,然后STM32主控解析该指令并执行指令。
具体设计介绍:
1.MQTT协议:
MQTT是IBM开发的一个即时通讯协议。MQTT是面向M2M和物联网的连接协议,采用轻量级发布和订阅消息传输机制。Mosquitto是一款实现了 MQTT v3.1 协议的开源消息代理软件,提供轻量级的,支持发布/订阅的的消息推送模式,使设备对设备之间的短消息通信简单易用。
2.单片机端实现
硬件连接如下图所示:
3.手机端代码实现
将jar文件添加到工程中即可,程序界面如下所示:
4.实测效果
1.单片机端定时更新传感器数据,手机端也会同步更新;
2.手机端点击4个LED控制的按钮,板子上也会点亮或者熄灭对应的LED
模块清单:
1.W5500模块
2.STM32F405RGT6开发板(Micro Python电路板)
3.安卓手机