MQTT与SmartConfig设备框架
1.概述
本物联网设备框架面向智能硬件开发者,才用了ESP8266开发模块,以LED为示例展示手机如何实现与智能硬件绑定、控制智能硬件。欢迎读者尝试使用、提出建议与意见、完善框架。
2.名词介绍
userID:用户名ID,每一个用户拥有一个独立的userID,长度16,本例程中userID为”1111222233334444″;
categoryID:类别ID,每一类设备对应一个categoryID,如灯、空调、加湿器对应一个categoryID,长度为2,本例程中才用灯,对应的categoryID为”01″;
deviceID:设备ID,每一个智能硬件设备对应一个唯一的设备ID,长度为16,本例程中deviceID为”0123456789876543″;
deviceCode:设备code,每个deviceID拥有自身的一个deviceCode,用于验证使用。devieceCode长度为8,本例程对应的d eviceCode为”12345678″。
3.订阅主题
通过订阅配置主题,获取userID,实现智能硬件deviceID与用户userID配对,目前demo框架只将用户userID存储于EEPROM中,并支持断电保存。配对后userID将用于订阅控制主题。配置主题格式如下:中通过订阅配置主题获取的userID,通过订阅控制主题,实现对智能硬件的控制。控制主题格式如下:
userID/categoryID/deviceID
智能硬件流程
硬件初始化,包括串口初始化、IO口初始化、EEPROM初始化、SmartConfig、MQTT初始化初始化;
通过smartconfig,接入到wifi网络;
连上MQTT服务器,订阅配置主题,获取userID并保存于EEPROM中,实现智能硬件与userID绑定,并置绑定标志;
检查EEPROM中绑定标志,若已经与userID绑定并且尚未订阅控制主题,将订阅控制主题;
订阅控制主题以获取控制指令,实现对智能硬件的控制。