×

基于RIOT OS的LoRa信号的被动数据包嗅探应用程序

消耗积分:0 | 格式:zip | 大小:0.07 MB | 2022-11-16

分享资料个

描述

概述

该项目是柏林自由大学“软件项目互联网技术”课程的一部分,其灵感来自Kwon Nung Choi 等人的论文“ LoRadar:通过被动数据包嗅探进行 LoRa 传感器网络监控”。

我们为基于 RIOT-OS 的 LongeRange (LoRa) 信号编写了一个被动数据包嗅探应用程序。作为硬件,我们使用了 STMicroelectronics 的 LoRa 板 (B-L072Z-LRWAN1)。

LoRa 和 LoRaWAN

LoRa 是一种用于无线低功率网络的调制技术。LoRa 使用相当稳健的啁啾信号并覆盖物理层。LoRaWAN 覆盖了网络层。LoRa 根据各种因素(障碍物、天线高度、天线、传输参数)达到 1 到 10 km 的距离,并达到 0.3 kbit/s 到 50 kbit/s 的数据速率。

LoRaWAN 数据包的实际负载是加密的。然而,我们可以读出各种元数据信息:

  • Time (long/int):自记录开始以来的时间戳计数
  • ChannelFreq (long/int):接收数据包的频率,对于 EUW,这可能是 867.1、867.3、867.5、867.7、867.9、868.1、868.3、868.5
  • RSSI (int: -122-0):接收信号强度指示,单位为 dBm
  • SNR (int: -20-10): 信噪比
  • MType (int: 2, 4, 0): 0 - join request, 2 - unconfirmed data up packet, 4 - 确认数据 up packet
  • DevAddr(8 个字符的字符串):设备地址为十六进制字符串
  • ADR (int 0, 1):自适应数据速率“关闭”或“开启”
  • ADRACKReq (int 0, 1): 1 需要确认以确保 ADR 仍在工作
  • ACK (int 0, 1):是否需要确认
  • FCnt(int):数据包的帧数
  • FOptslen (int): fopts 的大小
  • FOpts (string): frameopts 为十六进制字符串
  • FPort (int 0-255):0 有效载荷包含 MAC 命令,1-223 有效载荷是特定于应用程序的,224-255 保留以供将来使用

可视化

Python 脚本创建一个 PDF 报告,其中包含在命令行中执行时显示信息的多个图表。该脚本还提供了选择要在报告中评估的时间段以及查看有关特定设备的更多信息的功能。

硬件

我们使用 STMicroelectronics 的 B-L072Z-LRWAN1 板,因为它受 RIOT-OS 支持,并且已经具有 LoRa 天线。如果进行了适当的配置,其他设备也应该可以工作。我们需要做一些修改。我们希望将收到的包裹存储到 MicroSD 卡上。这使我们可以让设备运行一段时间,并且我们可以在不移动设备的情况下轻松切换 SD 卡以读取数据。我们使用可能需要焊接的 MicroSD 分线板(取决于您的分线板)。然后我们根据文档连接跳线B-L072Z-LRWAN1 板的。作为第二个修改,我们希望用电池为我们的电路板供电,并且仍然能够对其进行闪烁。因此,我们需要在 SB37<->NRST 处拆焊桥接并将跳线焊接到可以连接到 CN12(5) 的 SB37 上。如果断开连接,则电路板由电池供电,如果连接,我们可以通过 CN7 USB STLINK 对其进行闪烁,然后从那里为它供电。

 

 

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !