注意:我的github上提供的代码适用于我的个人 google 帐户上的凭据。我没有上传密钥,如果你想运行它,你需要自己设置。
IoT-LAB 是一个开放的测试平台,它提供了一个非常大规模的基础设施,适用于测试小型无线传感器设备和异构通信对象。
它具有分布在法国六个不同地点的 1500 多个无线传感器节点。节点既可以是固定的,也可以是移动的,并且可以在所有站点中以各种拓扑进行分配。有多种无线传感器可用,具有不同的处理器架构和不同的无线芯片。
由于我们没有兼容 LoRa 的硬件,因此使用测试平台是在真实硬件上进行测试的最佳选择。
LoRaWAN® 规范是一种低功耗、广域 (LPWA) 网络协议,旨在将电池供电的“事物”无线连接到区域、国家或全球网络中的互联网,并针对关键的物联网 (IoT) 要求,例如双向定向通信、端到端安全、移动性和本地化服务。它定义了网络的通信协议和系统架构,而 LoRa 物理层则支持远程通信链路。
LoRaWAN® 网络中的节点是异步的,当它们准备好发送数据时进行通信,无论是事件驱动的还是调度的,避免了同步网络典型的电池消耗。此外,为了优化各种终端应用配置文件,LoRaWAN® 使用不同的设备类别。设备类别权衡网络下行链路通信延迟与电池寿命。
LoRaWAN® 利用两层安全性:一层用于网络,一层用于应用程序。网络安全确保网络中节点的真实性,而应用安全层确保网络运营商无权访问最终用户的应用数据。AES-128 加密与使用 IEEE EUI64 标识符的密钥交换一起使用。
The Things Network 是 LoRa Alliance® 的贡献者成员,LoRa Alliance® 是一个由 500 多家成员公司组成的非营利性协会,致力于通过开发和推广低功耗广域网 (LPWAN) 物联网来实现大规模部署。 LoRaWAN® 开放标准。
网关构成了设备和物联网之间的桥梁,而物联网的后端系统负责在设备和应用程序之间路由物联网数据。事实上,诸如 LoRaWAN® 之类的非 IP 协议需要某种形式的路由和处理,然后才能将消息传递到应用程序。
Things Network Web 界面使这些步骤变得非常简单:
第一步完成了!是时候设置网关了。我假设您已经阅读了第一篇文章“云平台设置”部分的说明,那么:
# SETUP
project_id = 'your_project_ID'
registry_id = 'your_register_ID'
cloud_region = 'your_region'
device_id = 'your_device_ID'
sub_topic = 'your_topic'
python gateway_LoRa.py
首先,您必须设置对 IoT-LAB 服务器的ssh访问权限。这些步骤都很简单,IoT-LAB 教程做的很好,所以我直接给你留了文档链接。https://www.iot-lab.info/tutorials/ssh-access/。
现在,我们已准备好进行设置:
my_computer$ ssh @saclay.iot-lab.info
是您的帐户 ID,可以在个人资料页面上找到
@saclay:~$ git clone https://github.com/RIOT-OS/RIOT.git
@saclay:~$ mkdir
@saclay:~$ cd
my_computer$ scp main.c
@saclay.iot-lab.info:
my_computer$ scp Makefile @saclay.iot-lab.info:
my_computer$ scp Makefile.ci @saclay.iot-lab.info:
@saclay:~/mycode$ export PATH=/opt/gcc-arm-none-eabi-7-2018-q2-update/bin:$PATH
@saclay:~/mycode$ arm-none-eabi-gcc --version
@saclay:~/mycode$ make clean all
@saclay:~/mycode$ iotlab-auth -u
@saclay:~/mycode$ iotlab-experiment submit -n -d
-l , archi=st-lrwan1:sx1276+site=saclay
我知道,我们都希望复制和粘贴所有这些命令,避免键入它们。但是,在这种情况下,请记住设置实验名称、时间和节点数。
@saclay:~/mycode$ iotlab-experiment get -i -r
@saclay:~/mycode$ iotlab-node --update bin/b-l072z-lrwan1/device_LORA.elf -l saclay,st-lrwan1,
记得输入正确的节点号!
节点正在运行,现在您可以使用 Netcat 访问每个节点,每个终端窗口一个:
@saclay:~/mycode$ nc st-lrwan1- 20000
如果由于任何原因,设备出现任何类型的问题,请转到您的 IoT-lab 页面,找到实验和节点,然后重新启动它,如下图所示。
现在,转到 TTN Web 控制台上的“应用程序 > appID > 设备 > 设备 ID”并获取设备 EUI、应用程序 EUI 和应用程序密钥信息。因此,在运行的设备上,将它们设置为 RIOT 固件:
> loramac set deveui your_EUI
> loramac set appeui your_EUI
> loramac set appkey your_key
为避免问题也设置数据速率,IoT-LAB 在其网站上建议值为 5:
> loramac set dr 5
最后,加入网络:
> loramac join otaa
现在,您可以使用我们在之前分配中使用的相同命令来开始自主发送消息:
> start ...
旧仪表板非常简单,因此我决定进行一些更改并添加新功能。
首先,我决定重组数据库,它现在为每种遥测类型提供一个不同的架构,并为设备提供一个新架构。因此,每个设备都有一组对遥测的引用,它使用 deviceId 作为外键。大大减少了检索时间并增加了系统的一般可扩展性。
它现在可以识别需要连接的新设备并直接添加它们。此外,每当有新消息时,主页上不仅会显示遥测值,还会显示设备的身份。
总之,为了提供令人愉悦的视觉界面,我添加了一些彩色图表来显示最后一小时的值,而旧值和以前一样显示在列表中。
该应用程序现在能够从虚拟设备、使用 MQTT-SN 协议的 RIOT-OS 设备以及使用 LoRaWAN® 的新实现中检索数据。此外,借助新的仪表板和新的彩色图表,任何人都可以体会到使用物联网“事物”收集数据的美丽程度。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !