跳转到主要内容

BERadio是一种针对受限无线电链路环境的高效通信编码规范和实现。它是在Hiveeyes项目中构思并用于空中通信的。

项目描述


CI outcome Test suite code coverage Project license PyPI downloads per month Support Python versions Project status (alpha, beta, stable) Package version on PyPI

关于

BERadio 是一种针对受限无线电链路环境的高效通信编码规范和实现。它是在 Hiveeyes项目 中构思并用于空中通信的。

Kotori一起,这是一个多通道、多协议的数据采集和绘图工具包,用于构建灵活的遥测解决方案,它为网关侧的Hiveeyes系统提供动力,您可以通过访问Hiveeyes平台来享受它。

用法

手册

Python发行版的beradio提供方便的基于命令行的解码工具,用于处理BencodeBERadio格式的消息,称为beradiobdecodebencodebemqtt

有关更多信息,请参阅BERadio手册

概述

在命令行中解码示例消息。

$ bdecode d1:#i999e1:_2:h11:hli488ei572ee1:tli2163ei1925ei1092ei1354ee1:wi10677ee
OrderedDict([('#', 999), ('_', 'h1'), ('h', [488, 572]), ('t', [2163, 1925, 1092, 1354]), ('w', 10677)])
$ beradio decode d1:#i999e1:_2:h11:hli488ei572ee1:tli2163ei1925ei1092ei1354ee1:wi10677ee --protocol=2
{
    "meta": {
        "protocol": "beradio2",
        "network": "b6a6b04c-a929-4a6c-9238-185e9af79eed",
        "gateway": "deh22",
        "node": "999",
        "time": 1659487642526373120,
        "profile": "h1"
    },
    "data": {
        "hum1": 4.88,
        "hum2": 5.72,
        "temp1": 21.63,
        "temp2": 19.25,
        "temp3": 10.92,
        "temp4": 13.54,
        "wght1": 106.77
    }
}

环境

在野外有许多Arduino传感器节点,通过无线电链路单向通信到作为网关的中央Arduino。网关Arduino接收消息有效负载并将它们原封不动地写入连接到Raspberry Pi的串行端口,Raspberry Pi将消息转换并转发到MQTT总线。

数据现在在总线上,任意系统可以通过订阅特定MQTT主题来消费信息,测量事件将交付到这些主题。

Kotori多通道DAQ订阅MQTT总线上的主题,接收遥测数据有效负载并将测量结果存储到现代时间序列数据库中。之后,使用Grafana来显示测量信息。

细节

功能

BERadio是一个规范,同时也为Arduino和Python提供了参考实现。

  • 一些详细信息已记录在BERadio规范文档中。

  • 它使用Bencode格式在网络上提供空间高效的数据编码。

  • beradio forward处理通过空中接收到的数据消息,并将它们转发到MQTT。

  • libberadio将是Arduino的适当C++库。

主要工作马

beradio forward从串行接口摄取消息有效负载,将它们从Bencode格式净化和解码,并将数据重新发布到MQTT主题。

用于发布的MQTT主题名称是从消息数据中包含的一些参数派生的,用于此的主题模板目前被编程为{realm}/{network}/{gateway}/{node}/{field}。实际值将在重新发布到MQTT之前被分离、映射和格式化成不同的变体。

项目信息

贡献

我们始终欢迎来自社区的代码贡献、想法、建议和问题报告。花些时间四处看看,找到错误、设计问题或拼写错误,然后向我们发送pull request或创建问题票据。

提前感谢您的努力,我们真的非常感激任何帮助或反馈。

许可证

本软件版权所有©2015-2024 Hiveeyes开发者。版权所有。

源代码的使用受GNU Affero通用公共许可证欧洲联盟公共许可证的约束。该软件是,并将始终是免费和开源软件

项目详细信息


下载文件

下载您平台上的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源代码发行版

beradio-0.14.0.tar.gz (72.7 kB 查看哈希值)

上传时间

构建发行版

beradio-0.14.0-py3-none-any.whl (38.6 kB 查看哈希值)

上传时间 Python 3

由以下支持