我有LoRa传感器,它用卡宴LPP格式的有效载荷发送测量数据。我的网关(LOrank8v1)捕获这些数据包并将它们转换为UDP。在网关中有一个服务(lora-gateway-bridge),它将UDP报文转换为TCP/MQTT。
然后将MQTT包发布到云中的蚊子到MQTT代理。然后我运行lora-server和lora-app-server服务来解密、解码和去重复制数据包。
然后我再次将解密的信息发布到MQTT代理。下面是所有这些操作之后发布的示例:application/1/node/0000000000000000/rx
{“applicationID”:“1”,“applicationName”:“温湿度”,“设备名称”:“温湿度”,“devEUI”:000年“0000000000000”,“rxInfo”:[{“苹果”:“1 dee18c14948a955”,“rssi”:-27,“loRaSNR”:9.5,“名称”:“1 dee18 c14948a955”,“人肉搜索”:0,“经”:0,“高度”:0}],“txInfo”:{“频率”:868500000,“dataRate”:{“调制”:“罗拉”,“带宽”:125,“spreadFactor”:9},“美国存托凭证”:假,“codeRate”:“4/5”},“fCnt”:2,“fPort”:1,“数据”:“AGcAxQFojA = = ",“对象”:{“temperatureSensor”:{“0”:19.7},“humiditySensor”:{“1”:70}}}
现在我想使用Fiware的JSON/MQTT物联网代理将MQTT转换为NGSI,以便将数据发布到上下文代理。
为了便于阅读,数据应该这样发布:
mosquitto_pub美元-h HOST_IOTAGENT_MQTT美元-你使用-P thePassword-t/myapikey/mydevicemqtt/attrs-米'{"t": 19,7, "h": 70}'
有人遇到过同样的问题吗?我是否应该创建一个JSON解析器并将数据以另一种格式重新发布到MQTT代理中?我该如何处理这个问题?
我不知道我是否正确理解了你的问题。您的步骤没问题,您需要将Cayenne LPP转换为所选代理所期望的JSON格式。当然,你首先需要通过代理注册你的设备,在这一步,你定义不同的参数,将由你的设备提供(这将配置如何发送json消息)。
https://github.com/telefonicaid/iotagent-json/blob/master/docs/stepbystep.md#provisioning-the-device
从Cayene翻译成“特工期望的特别杰森”是一个“不可取的”步骤。因为你正在做cayene->json->NGSI(但我不确定是否有其他选项)。我们正在研究创建能够理解Cayene格式的新代理的可能性,但现在还为时尚早,而且我不确定MQTT是否将是所选择的传输协议。此外,lora- network -server也会与基于Cayene的合成JSON相关,所以…这将使任务更加复杂。让我们看看…