如上是WisTrio Link.ONE 一体式 LPWAN 物联网开发套件的评测样品,该套件支持 LTE-M、NB-IoT 和LoRaWAN 连接,并可使用 Arduino IDE 编程。我们使用 LoRaWAN 连接以及 ChipStark、Node-Red、InfluxDB 和Grafana 等开源软件包和框架测试了该套件及其全天候 WisBlock Unify 外壳。
Link.ONE 套件的主要特点:配有一个 WisBlock Unify 机箱(100 x 75 x 38 毫米)和一块 3,200 mAh/3.7V 可充电锂电池,当系统大部分时间处于睡眠模式并用于接收数据,而不是频繁发送信息时,这块电池就足够了。
包装盒内的下列物品包装非常严实:
外壳坚固,盖子上有防水橡胶,确保外壳关闭时达到 IP65 防水等级,不受天气影响。
取下电池,就可以近距离观察 WisTrio Link.ONE 开发板:
套件中有三个主要模块:
带有 Nordic Semi nRF52840 BLE 微控制器和 Semtech SX1262(LoRA/LoRaWAN)射频收发器的 RAK4631 WisBlock 核心模块
RAK5860 WisBlock NB-IoT 接口模块,基于 Quectel BG77,配备 NB-IoT、LTE-M 和 GPS
带有 USB Type-C 端口和锂离子充电器的 RAK19007 WisBlock 底板
一切组装完毕,如下图所示:
套件还包括一张 Monogoto SIM 卡,内含 500 MB 的蜂窝数据,可使用长达 10 年:
此外,订购 Link.ONE devkit 时还可添加各种传感器模块,但我们的套件中并不包括这些模块。
低功耗广域网(LPWAN)
Link.ONE 支持三种类型的低功耗广域网 (LPWAN):LTE-M、NB-IoT和 LoRaWAN。
NB-IoT(窄带物联网):是一种从 4G LTE 发展而来的技术,允许物联网设备通过蜂窝网络进行无线连接。它适用于对数据传输速度要求不高的应用,如智能停车场或智能表。
LTE-M(机器的长期演进):是一种类似于 NB-IoT 的技术,但与传统的 4G LTE 数据连接相比,它具有更高的数据传输速度,同时还能节省能源。它适用于智能交通和资产跟踪等设备定位跟踪应用。
LoRaWAN(长距离广域网):是一种基于 LoRa 协议的无线电技术,旨在支持低功耗设备连接和长距离网络数据通信。它支持专用网络和公共网络,前者意味着您可以安装自己的网关,而无需依赖运营商。
私有 LoRaWAN 物联网内部平台
一个私有 LoRaWAN 物联网平台,为管理 LoRaWAN 系统带来了便利。该平台配备了以下各种开源软件。
ChirpStack 开源 LoRaWAN 网络和应用服务器,用于注册 LoRaWAN 物联网设备编号,并通过作为发送方(发布方)的 MQTT 代理(消息队列遥测传输)对接收到的 AES128 格式数据进行解密。
Node-RED 基于流程的编程开发工具。它是 ChirpStack 通过 MQTT 协议发送的接收器(订阅),从有效载荷中获取数据并按照 BASE64 格式解码。它将在 InfluxDB 数据库中存储传感器数据,并在 LINE Notify 应用程序中检查和配置通知设置。
InfluxDB 是一个开源时间序列数据库,可存储传感器和 LoRaWAN 网关数据,并自动按时间序列排序,使我们能够分析任何时间段的数据。
Grafana 实时仪表板可通过不同方式可视化 InfluxDB 数据库中的数据。
LINE 通知 - 当传感器高于或低于指定值时,LINE 消息应用程序将只通过 LINE 通知 API 通知我们一次,这意味着不会出现重复值通知。
硬件和软件准备
所需硬件包括 Link.ONE 开发套件、USB Type-C 电缆、LoRaWAN 网关和计算机。
我们还需要安装 Arduino IDE 并为 Link.ONE 开发套件进行如下设置:
1.安装 Arduino IDE
2.添加 Link.ONE 设备。进入Arduino IDE 菜单 "文件"->"首选项",将 URL https://raw.githubusercontent.com/RAKwireless/RAKwireless-Arduino-BSP-Index/main/package_rakwireless_index.json粘贴到 "附加电路板管理器 URL "字段。
3.然后点击工具 -> 板-> 板管理器,搜索 "RAKwireless nRF Boards",安装 WisBlock RAK4631 的软件包。
4.转到工具 -> 电路板 -> 电路板管理器 -> RAKwireless nRF 电路板 -> WisBlock RAK4631,选择 Link.ONE 电路板。
5.在搜索 "SX126x-Arduino "并安装 SX126x 库之前,通过 Arduino 菜单选择 Sketch -> Include Library -> Library Manager 添加 SX126x 库。
在 Line.ONE devkit 上进行 LoRaWAN 测试
我们将编写一个 "Hello World "程序,通过 LoRaWAN 向 Link.ONE 发送信息。我们将泰国的工作频段设置为 AS923,并使用以下值将连接设置为 OTAA:
DevEUI = 88 88 88 88 33 33
AppKey = 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88
AppEUI = B8 27 E B FF FE 39 00 00
注:有 2 种激活过程:ABP(个性化激活)和 OTAA(无线激活)。
现在我们可以在 Arduino IDE 中编译代码,并将其上载/闪存到 Link.ONE 板上。请注意,我们无需按下任何按钮,就能立即对电路板进行闪存/编程,电路板将自动按照编程进行工作。这是 Link.ONE 为开发人员带来的优势。
程序运行时会处理两类信息:
加入请求":Link.ONE请求通过 LoRaWAN 网关连接 LoRaWAN 网络服务器。
加入接受"(Join Accept):LoRaWAN 网络服务器将检查Link.ONE DeviceEUI 编号,如果已经注册,则接受请求,相互发送和接收数据。
从下面的截图中可以看到,有效载荷数据为"TmluZVBob24="。在使用 Base64 解码标准时,它被解码为 "NinePhon"(reviewer的名字):
由于 RAKwireless 套件中没有传感器模块,我们编写了第二个演示程序,以读取电池电压、电池电量(百分比)和锂离子电池的 "电池值"。
Link.ONE 通过无线方式将电池数据传输到 LoRaWAN 网关,然后将有效载荷转发到 "ChirpStack "LoRaWAN 网络服务器。
然后,Node-RED 通过 MQTT协议连接 ChirpStack,并使用 Base64 算法解密有效载荷数据。
Node-RED 还会自动将传感器和LoRaWAN 系统数据存储到 InfluxDB 时间序列数据库中。Grafana 面板从 InfluxDB 时间序列数据库读取数据,并在数据传输过程中显示电池电压、电池电量(百分比)和功耗(毫瓦)。
最后,LINE Notify 应用程序会监控锂电池电压,如果电压降至 3.3 伏以下,就会向 LINE 应用程序发送警报/通知,让我们立即知晓。
结论
WisTrio Link.ONE 开发套件适用于对组装各种传感器、编写多功能代码以及连接 LTE-M、NB-IoT 和LoRaWAN 等各种低功耗无线广域网 (LPWAN) 感兴趣的物联网设备开发人员。它与 Arduino IDE 兼容,使用非常方便。此外,Monogoto SIM 卡还具有 500 MB 数据包的优势,可使用长达 10 年。