此解决方案展示了如何创建环境数据传感器节点。传感器节点测量空气温度、空气湿度、气压和气体水平。节点成功加入服务器后,它会定期将此数据传输到 LoRaWan® 服务器。
#前期准备
#硬件
- WisBlock Base (本示例使用RAK5005-O)
- WisBlock Core(本示例使用RAK4631)
- WisBlock Sensor(本示例使用RAK1906)
- LoRa天线(本示例使用CN470频段)
- 网关(本示例使用RAK7258网关)
???? 注意:
请保持网关与传感器所属频段相同,本实例中均为CN470。
#软件
#硬件安装
1、将LoRa天线接口对准并放置在RAK4631模块的LoRa天线接口搭接处,轻轻按压LoRa天线接口,完成安装。
Figure 1: 安装LoRa天线2、将RAK4631模块上的连接器插头对准RAK5005-O CUP插槽上的连接器插座。保持连接器间平行,将其轻放在插座连接器相应的搭接处。
Figure 2: 安装WisBlock Core RAK46313、将传感器模块RAK1906上的连接器插头对准RAK5005-O插槽的连接器插座。保持连接器间平行,将其轻放在插座连接器相应的搭接处。
Figure 3: 安装WisBlock Sensor RAK1906???? 注意:
平行按压均匀施力,将听到扣合完成的声音,扣压完成后请使用螺钉将WisBlock Core和WisBlock Sensor模块固定在RAK5005-O Base板上。
组装完成后示意图如下:
Figure 4: 模块组装#软件配置
本章节介绍WisBlock 传感器模块的软件配置。
#Arduino IDE的下载
使用Arduino IDE对WisBlock进行编码和编程。如果您还未安装Arduino IDE,可在Arduino官网中下载。
⚠️ 警告
如果您所使用的操作系统为Windows 10:
请勿从Microsoft应用商店中安装Arduino IDE。请从Arduino官网中安装原始的Arduino IDE。Microsoft应用商店中的Arduino应用在使用第三方板支持包时存在问题。
如下图所示,可以看到Arduino IDE当前版本为V1.8.16。Windows、Linux和Mac OS X都有多个可用版本,选择正确的Arduino IDE版本并下载。
Figure 5: Arduino IDE 版本示意图#Arduino IDE的安装
本示例为在Windows PC中安装已下载的Arduino IDE。
1、单击“I Agree”。
Figure 6: Arduino安装许可协议2、单击“Next”。
Figure 7: Arduino安装选项3、单击“Install”。
Figure 8: Arduino IDE安装路径Figure 9: Arduino IDE安装中进度为100%后,Arduino IDE已成功安装,单击“Close”,退出安装过程。
Figure 10: 成功安装???? 注意:
在Linux与Mac OS X中,没有安装过程。只是一个解压过程,然后就能够成功打开Arduino IDE 。
#Arduino IDE上的配置
Arduino IDE安装成功后。需要对Arduino IDE进行一些配置以便后续对WisBlock组装模块进行相关配置。
- 打开Arduino IDE。
- 进入“文件 > 首选项”。
3、单击图中图标,编辑“附加开发板管理器网址”,将WisBlock Core添加到Arduino板列表中。
Figure 12: 修改附加开发板管理器网址4、复制此URLhttps://raw.githubusercontent.com/RAKwireless/RAKwireless-Arduino-BSP-Index/main/package_rakwireless_index.json
并粘贴至下图所示区域。如果已存在其他链接,将上述链接粘贴至新的一行。完成后,单击“好”。
???? 注意
如果您使用的是Linux,需要通过“pip”安装“adafruit-nrfutil”。
sudo pip3 install adafruit-nrfutil
或 pip3 install --user adafruit-nrfutil
5、重启Arduino IDE。
6、在“工具”菜单中打开“开发板管理”。
Figure 14: 打开开发板管理7、如下图所示,在搜索栏中键入“RAK”。将会显示出可添加到Arduino板列表中的可用RAKwireless WisBlock Core。选择以下板支持包以及相应的版本,并单击“安装”板支持包。
Figure 15: 安装WisBlock Core#烧录程序
1、将组装的WisBlock传感器模块使用USB连接线连接到PC上。
2、在Arduino IDE中,根据下图所示,选择WisBlock Core RAK4631板。
Figure 16: 选择WisBlock Core RAK4631板3、根据下图所示,选择示例项目。
Figure 17: 选择示例代码4、打开示例代码后,双击图中链接,安装示例代码中所需的代码库。
Figure 18: 安装所需代码库5、修改示例代码中的频段区域,本示例使用的为CN470。
Figure 19: 修改频段6、完成后,如下图所示,选择正确的串口并单击图中上传图标上传代码。
Figure 20: 选择端口号#连接网关到TTN
本节为连接网关至TTN(The Things Network)平台。
#前提条件
- 网关已连接到网络,具体请参见连接网关到网络。
- 注册TTN账号并激活账号。
#操作步骤
1、登录TTN网站,您将看到以下页面:
Figure 21: TTN主页2、单击“Register a gateway”,进入以下页面注册网关信息。
Figure 22: 注册网关- Gateway EUI:网关唯一 ID。该名称必须与网关的真实网关ID相同。可登录网关在Web页面“LoRa Network > Network Settings”页面找到Gateway EUI。
- Frequency Plan:这是您要使用的频率,本示例为CN470。
- Gateway Server address:eu1.cloud.thethings.network为网关服务器地址。
- 单击“Create gateway”,网关新建成功后,即可在网关列表页查看新增加的网关。
4、访问网关,选择“LoRa Network > Network Settings”进入LoRaWAN Network Setting设置界面。
Figure 23: 网络设置- 将“Mode”设置为“Packet Forwarder”后,单击“Switch mode”。
- 修改Server Address。修改完成后单击“Save & Apply”。
5、刷新TTN网关界面,如果您的网关状态为“Connected”,则网关现在已连接到TTN。
Figure 24: 网关成功连接TTN#连接传感器节点至TTN
本节为连接传感器节点至TTN(The Things Network)平台。
#登录到TTN平台
登录TTN网站,您将看到以下页面:
Figure 25: TTN控制台页面#创建新的应用程序
1、进入添加 Application 界面,注册相关信息后,单击页面底部的“Create application”。
Figure 26: 添加应用2、进入应用程序概述页面,单击右下角“Add end devices”,在TTN平台注册新设备。
Figure 27: 应用程序概述页面#注册新设备
1、在“Register end device”页面中,单击“Manually”页签。
2、配置Frequency plan、LoRaWAN version、Regional Parameters version,并添加设备DevEUI、AppEUI、AppKey。
Figure 28: 注册设备???? 注意:
设备频段应与网关频段相同。
3、DevEUI、AppEUI、AppKey请在传感器示例代码中获取,切记需要删除各个数字前的“0x”以及“,”。
Figure 29: 获取DevEUI、AppEUI、AppKey4、单击"Register and device",完成设备注册,注册结果将汇总如下图所示。
Figure 30: 设备信息5、重启设备后,设备自动入网并定时向服务器传输实时监测数据。单击See all activity→,查看传输数据。
Figure 31: 环境监测数据6、成功上传示例项目后,可在 Arduino IDE 的工具栏单击串口监视器,查看传感器的读取日志。如果日志如下所示,表示RAK1906正在与WisBlock Core正确通信。
Figure 32: 串口监视器日志#数据格式
通信传输的实时监测数据格式如下表所示:
字节1 | 字节2 | 字节3 | 字节4 | 字节5 |
---|---|---|---|---|
1 | 温度1 | 温度2 | 湿度1 | 湿度2 |
字节6 | 字节7 | 字节8 | 字节9 | 字节10 | 字节11 | 字节12 | 字节13 |
---|---|---|---|---|---|---|---|
气压1 | 气压2 | 气压3 | 气压4 | 气体1 | 气体2 | 气体3 | 气体4 |
- 字节1是数据类型的标识,这里始终是 1。
- 每个字节的值都是 MSB 在前。
- 温度以两个字节的形式发送,为了准确起见放大 100 倍。例如,2510 意味着 25.01摄氏度,以 0x09 0xCE 发送。
- 湿度是以两个字节的形式发送的,为了准确起见放大了 100 倍。例如,4173 意味着 41.73%,以 0x10 0x4D 发送。
- 气压是以四个字节的形式发送的,为了准确起见放大了 100 倍。例如,100945 意味着 1009.45hPa,以 0x00 0x01 0x8A 0x51 发送。
- 气体电阻以四个字节发送,例如63560Ω,以 0x00 0x00 0xF8 0x48 发送。
???? 注意:
此传输示例中:0x09 0x5E代表温度值;0x14 0xDD代表湿度值;0x00 0x01 0x7A 0x85代表气压值;0x00 0x00 0x09 0x8B代表气体电阻值。
-
环境监测
+关注
关注
3文章
341浏览量
18625 -
LoRa技术
+关注
关注
3文章
101浏览量
16316 -
RAK
+关注
关注
0文章
48浏览量
2065
发布评论请先 登录
相关推荐
评论