本篇文章全程干货,可能有点枯燥, 如果耐心看完,保证不会让大家失望!
文章内容都是无际单片机编程团队的几年实战经验,全网独家。
本课程不仅适用于Lora技术,FSK、zigbee、OOK等无线通讯都可以支持,大家可以灵活使用。
我们在项目开发中经常会碰到一些问题,不知道如何去处理?
1.探测器和网关有哪些组网方式?如何组网是最优选择?
2.无线通讯的数据的格式如何定义?
3.无线通讯的消息类型有哪些?
一、Lora 的组网方式
在无线通讯种,最常见的组网方式有两种,一种是星型组网,一种是Mesh组网。
大家最常用的是星型组网,这种组网方式比较方便,开发简单而且稳定性比较好。
Mesh组网一般适用于一些比较复杂的系统中, Mesh组网就是探测器有中继功能,可以“无限”的延长无线通讯的距离。
Mesh组网,理论简单,但开发和实施比较复杂。
我们今天主要是给大家透彻地介绍一下 “星型组网”。
星型组网探测器和网关是怎么配对建立关联的?
在物联网系统中,所有的终端设备都有一个唯一的身份地址,包括网关。
我们首先要通过组网的方式,把探测器的身份信息(地址,一般是芯片唯一ID)发送给网关,让网关保存到内存中(掉电保存)的过程叫组网。
星型组网就是把所有的配件的地址通过配对的方式保存到网关的内存里(掉电保存EEPROM/FLASH)。
1.网关和终端设备的通讯需要支持两种模式,一种是正常模式,一种是配对模式。
2.组网配对的时候,首先要启动网关的配对模式,让网关进入配对模式。
在配对模式下,触发需要配对的探测器发送无线数据,网关收到的无线数据,并把无线数据种的身份数据解析出来,保存到网关内存中。
3.网关恢复到正常工作模式下,再次触发已经配对好的探测器发送数据,网关就可以识别到,并可按照协议解析消息类型,发送到云平台。
在物联网中,不同的探测器就是通过身份地址来区分的,就相当于我们的身份证一样。
因为每个人的身份证均不一样,所以才可以区分每一个人的信息特征。
二、Lora 通讯的数据的格式
Lora通讯的数据格式,我直接给大家举个例子来讲解一下, 比较实用。
如上图所示:是我之前做智能家居系统的通讯协议的一部分内容,这个是主机下行的通讯协议。
重点解析:
1.帧头和帧尾是固定的 A5H和BBH
2.消息长度:除帧头 和帧尾的数据的字节数
3.消息编号:动态变化,取值范围00-FF. 用来区分不同的信息。回复的信息需要和发送的消息一致。
4.设备地址:唯一的,不能重复,最大支持0x0000-0xFFFF,最大支持65536配件
5.消息类型:(重点)
消息类型分为3种:广播,组播,点播。
广播:固定FFH 区域内的所有的配件收到信息,都需要去执行操作,使用的较少
组播:取值范围00H-FDH ,将配件分组,最大支持254个组,可以讲探测器进行分组,例如 灯光控制的分为1组,门磁探测器分为1组,智能开关分为一组,也可以混搭,智能开关和声光警号分为一组。凡是在组号以内的探测器都需要响应指令.
点播: 消息类型,固定FEH. 点播就是探测器和网关之间直接通讯的方式,叫点播。
6.探测器类型
探测器的类型需要匹配。 属于设备地址身份的一部分,如上图所示,无线门磁、无线红外、无线烟感、遥控器、智能开关、窗帘控制器、声光警号、无线燃气等。
7.消息内容
消息类型数据的长度不是固定的。
例如电池低压可以上传低压的同时,上传电池的实际电压值,控制打开灯的同时,控制灯光的亮度。
三、Lora 消息类型
从上面的内容种,我们可以看到常见的消息类型有广播、组播、点播。
上行的数据主要是以点播为主,下行的主要以组播和点播两种方式配合使用。
在局域网的无线通讯中,一般情况下,数据的收发都是通过一个通道,即收发的频率固定,这样在某些情况下,容易发生消息碰撞,导致信息传输失败。
而组播,广播的消息类型的引入,大大地提高了下行数据的操作效率。
四、局域网通讯的其他经验分享
无际单片机编程团队在实际产品开发当中,碰到过很多问题,硬件上的就不说了,我们来说说软件上的。
1.增加防碰撞机制
发送消息的时候,先判断局域网中是否有同频干扰信号。
判断的方式需要查看网络接收的状态,是否处于无线信号接收中,如果有信号接收,则等待,同频干扰消失,再发送。
2.通讯协议增加回复确定帧信号
如果没有回复需要有重发机制(建议3次)。
同一条信息重发时,消息编号不变,回复的确定帧中的消息编号,需要和发送的一致。
3.组网方式
在通讯距离比较长,环境比较复杂的情况下,可以星型组网和Mesh组网项目配合,增加网络通讯的稳定性。