mark,鼓励开源,期待楼主跟新 |
4.智能家居云控制系统的软件设计 智能家居云控制套件由七个独立的小系统组成,他们之间通过无线通信的方式组成一个大系统。把七个小系统的电源接通后,小系统之间的通信模块就会自动握手连通,智能家居云控制系统正式进入运行状态。智能网关上电后就与WiFi模块保持心跳通信,STM32每隔一段时间都把自己的状态通过WiFi模块上传到云端上,然后从云端把手机控制端的数据点下载下来保存到STM32的数据库中。STM32还要与串口HMI保持通信,每个程序周期内要都把STM32的数据库通过串口的方式更新到HMI中,用以保持人界界面数据的实时性。同时还要检测用户有没有操控人机界面,一旦检测到数据变化就把人机界面的数据更新到STM32的数据库。STM32 还要读取DS1302时钟模块中的时间。STM32通过以上通信把数据保存到数据库中后就将这些数据进行整合分析,判断是否有开关灯、播放音乐、定时的控制指令。运算结束后就会把这些控制指令从新打包放到发送数据库中,通过发射模式的无线通信模块广播出去。插座、红外、电灯等模块接收到来自智能网关的数据包后就会根据通信协议提取出自己那部分的数据,然后保存到各自的数据库中。子模块会一直检测数据库中的控制指令参数是否改变,一旦有数据改变,就会执行动作,控制电灯点亮、空调调温、切换歌曲等。而门窗开合警报模块会一直向智能网关发送门窗的状态。 4.1 HF-PB100 WiFi模组通信协议 WiFi模组与STM32是以9600波特率、8个数据位的方式进行串口通信。他们之间需要传输请求设备信息、WiFi模组与设备MCU的心跳、重置WiFi模组、请求重启MCU、读取设备的当前状态、组控制设备等复杂的命令。而串口通信每次只能传输一个字节,要想实现复杂的控制功能就要设计出稳定可靠的通信协议。现约定以下通信格式: header(2B)=0xFFFF, len(2B), cmd(1B), sn(1B), flags(2B), payload(xB), checksum(1B) 上述协议中,通信协议的包头固定为0xFFFF,用来标记数据包的起始位置。Len是数据包的长度,它记录着命令开始到校验和之间的字节长度。cmd是数据包的命令类型,如:0X01表示WiFi模组请求设备信息,0X09表示设备MCU通知WiFi模组进入配置模式……。Sn是消息的序列号,发送方发出后,接收方应答时要返回。Checksum是检验和,本协议的校验方式是对数据包的长度位按字节开始求和,把得到的结果对256进行求余运算。对数据包命令进行分类处理的函数为:
给设备发送命令的处理函数:
|
111111111111111111111111111111 |
鼓励开源,期待楼主跟新 |
看看ffffffffffffffffffffffffffffffff |
mark,鼓励开源,期待楼主跟新 |
支持一下 |
感谢分享 |
厉害!学习了! |
厉害!学习了!!!!!!!!!!!!! |
你好我想要智能家居控制套件 |
怎么可以下载这个文件阿,求解 |
学习一下 |
期待,希望楼主有更新与开源 |
感谢分享 |
向大佬看齐,向大佬学习 |
作者好厉害 |
xuexi xuexi xuexile |
工程文件的原理图能发上来吗,那个原理图太零散了 不好理解 |
好资料,学习学习了 |
感谢开源,共同学习 |
感谢楼主,学习学习 |
版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )