该项目实现一个智能家居系统,采用STM32为主控,并连接云平台-机智云作为远程控制的云服务器,同时用到手机APP作为控制终端,整个系统包括硬件端、云平台、手机APP,是一套完整的物联网智能家居系统。
实物效果图:
系统框架设计:
系统设计框架
系统控制工作原理
系统工作原理主要可以分为三部分,第一部分是由主控芯片STM32以及各模块组成的硬件系统,第二部分是实现数据上传以及对数据与信息进行处理的机智云平台,第三部分是实现发起查询请求以及接收数据和警报信息的移动端APP。用户登录APP发起获取数据信息请求,硬件系统对请求信息进行处理并作出反馈,通过机智云平台把数据传送到APP界面。当硬件系统发出警报时,硬件系统通过机智云平台把警报信息发送到APP界面,提醒用户及时进行处理。
云平台-机智云服务器
机智云平台具有高可用平台、快速接入、专业服务、深厚行业积累、高安全性、多层次云数据服务、开放性、国际性八大优势。机智云C-AEP(协同应用开发平台)是机智云针对物联网行业属性打造的中台架构。C-AEP包括技术平台、业务平台和数据平台。技术平台提供物联网端到端的技术框架和一系列便捷的工具,包括连接平台、APP框架、生产和测试工具等。业务平台对物联网设备和用户的通用服务进行细化,形成具有物联网属性的各类应用的服务,并快速推出新服务,从而实现快速物联网,满足不断变化的业务需求;数据平台对物联网数据进行标准化建模,设备数据和业务数据通过数据管理上传到云端,存储在数据中心的主题数据库中,包括用户中心、设备中心和应用中心。机智云接入流程是先注册开发者,然后创建产品进行设备开发和应用开发。产品调试完成后,即可申请发布,进入正式量产流程。
通信协议:
通信协议的格式:
Header(2B)=0xFFFF, len(2B), cmd(1B), sn(1B), flags(2B), payload(xB), checksum(1B)
说明:
1) 包头(header):固定为0xFFFF;
2) 长度(len):命令字作为开端与整个数据包结束之间所占用的字节数;
3) 命令字(cmd):对命令作出明确的解释;
4) 消息序号(sn):命令被发送方发送后,接收方作出响时需把消息序号反馈给发送方;
5) 标志位(flag):默认为0;
6) payload(p0数据区):p0数据区约定的功能有三个,分别是控制命令由携带着p0 命令、命令标志位和可写数据区的WiFi模组发送给MCU、携带着p0命令和完整数据区的MCU主动发送状态或者对模块状态查询进行回复、数据区自动对布尔和枚举变量进行合并,顺序非常严格且不可随意更改。
7) 检验和(checksum):以len为开始和以DATA为结束进行计算,求和的依据是字节;
8) 只要是发送的命令均携带确认,接收方并未在200ms内作出响应,发送方应再次发送但不能超过三次;
9) 网络字节序:数字均用16 进制表示,当整型数字的字节数目大于1时,采用大端模式进行编码。
协议远程控制流程:
机智云会提供一套STM32示例代码及相关的云平台协议接口给我们使用,我们只需按需求调用其接口即可连接到云平台及上传数据或接收控制命令等。STM32与云平台通信时使用的是机智云协议。
程序实现的原理如下:
- 协议实现机制:P0数据区的有效数据点在协议经过解析后生成与之相应的事件,随后协议以事件为依据对数据点进行处理。
- 数据点转换事件的说明:以协议P0数据区的attr_flags位作为依据判断存在有效数据点,协议使其生成数据点事件后,由事件处理函数gizwitsEventProcess进行事件处理。
控制型协议的实现流程:
上报型协议的实现流程:
手机APP:
硬件模块:
系统硬件组成
硬件模块主要用到了 温湿度传感器、人体红外传感器、LED灯、烟雾传感器、WiFi模块等。
未完等补充。。。