LoRaWAN分为三个部分,分别是节点(采样数据),网关(桥梁),服务器。节点主要通过单片机采样数据然后通过sx1278这个射频FPGA芯片发到网关这里来,网关这里接受他那边的信息是用的sx1301这个芯片,这两个芯片的通信是不用联网的,用的是lora频段。网关这边用的是一个arm9的板子叫at91,网关要做的事情是sx1301芯片接收节点的数据,然后在在这个内部使mcu和sx1301连接起来,将sx1301接收的数据送到主mcu,主mcu就是用来和sx1301连接接收数据然后将数据通过wifi,这个过程就是建立网关程序(跑起来的程序)的过程。网关通过以太网,4G,WIFI发送给给服务器,同时也接受服务器的下行数据再给sx1301再通过sx1301给节点,从而控制单片机的一些状态动作。
目前的状态是节点和网关都已经准备就绪,需要一个平台来进行他们的联调,我选择的是腾讯云平台。
登录腾讯云后,在项目里面点击新建产品。参数如下:
进入产品后会看到很多供用户设计的窗口,因为我们是借助腾讯云平台进行测试,所以只需要设置在这里我们主要是进行下图中物模型,设备开发和设备调试三种设计。
物模型设计,可以理解为服务器想让节点实现什么功能,通过下发数据的方式在和节点对接好后控制节点的操作,比如可以让节点那边亮灯,蜂鸣器报警等。在这里我演示通过发送LED的状态控制节点硬件的灯亮起来。所以我在自定义功能中添加了LED:
在设备开发中选择编辑,进入编辑页面,在设备开发中设置如下参数(ABP是节点和网关连接方式,CLASS A是节点执行的业务功能,这两个参数要和节点一致):
由于 LoRa 类资源有限设备不适合直 接传输 JSON 格式数据,使用“设备数据解析”可以将设备原始数据转化为产品 JSON 数据,在腾讯云上可以编写JavaScript解析上行数据和下行数据从而更直观的查看数据.
上行数据解析的脚本主函数为 RawToProtocol,其带有 fPort、bytes 两个入参:
fPort:设备上报的 LoRaWAN 协议数据的 FPort 字段。
bytes:设备上报的 LoRaWAN 协议数据的 FRMPayload 字段。
注意解析的数据要事先和节点沟通好,在我这里,节点发过来的上行数据有6个字节,所以我在上行数据解析中也是对这6个字节的数据进行操作,下发数据也是如此(也可以使用 Base64 在线编码解码,把原始数据复制过来解码即可):
在设置好脚本解析函数后可以正确性测试:
上行:
下行:
可以看到解析都没有问题
进入设备调试环节,单击新建设备,填写设备基本信息,单击保存,即可完成创建设备。
设备名称:支持英文、数字、下划线的组合,最多不超过48个字符。
DevEUI:节点设备的唯一标识符,仅支持16进制字符,长度16位。
AppKey(仅限 OTAA 加网方式):仅支持16进制字符,长度32位。
DevAddr(仅限 ABP 加网方式):仅支持16进制字符,长度8位。
NwkSKey(仅限 ABP 加网方式):仅支持16进制字符,长度32位。
AppSKey(仅限 ABP 加网方式):仅支持16进制字符,长度32位。
DevEUI、AppKey、DevAddr、NwkSKey、AppSKey 一般为 LoRaWAN 节点设备厂商提供。如果是自行开发协议栈,可以按需配置,只要平台和节点实际配置的内容一致即可。也可以将节点设备用串口打印以上信息。
在左侧网络管理中找到LoRa网关管理进入:
然后填写信息,注意GwEUI为唯一网关ID,可根据网管套件 背部的 MAC 地 址,将 6 字节 MAC 地址的中间补足 0xffff
网关名称,本示例中填写 GW1。也可以在网关程序配对的。json文件中修改并与之对应。
是否公开:
选择“是”,表示社区开发者可在社区网络中看到该网关,并可通过这个网关进行 LoRaWAN 节点接入。
选择“否”,则只有用户自己才能查看该网关
添加成功后,运行网关程序,可以看到网关已经在线:
在上述工作都完成后按照以下步骤进行调试:
发送LED:1后,在服务器运行日志上能看到下发数据,网关部分能显示下行数据发送了,节点部分能够亮灯,说明成功。
服务器
节点:
节点采样数据以后,网关能显示上行数据,服务器也能接收到,说明成功:
网关:
服务器:
版权说明:如非注明,本站文章均为 扬州驻场服务-网络设备调试-监控维修-南京泽同信息科技有限公司 原创,转载请注明出处和附带本文链接。
请在这里放置你的在线分享代码