【问题标题】:Decoding a device payload sent to the Helium Console解码发送到 Helium 控制台的设备负载
【发布时间】:2021-09-11 21:33:45
【问题描述】:

所以我在 Helium 控制台中定义了一个集成(即 IoT LoRaWAN 网络服务)。当我测试从我的 IoT 设备向我的 Helium 控制台集成端点发送数据时,我可以看到有效负载。我可以手动将其解码回正确的 JSON 请求正文。但是我无法在 Helium 控制台中定义一个自定义函数,该函数将自动执行此集成。我的 IoT 设备正在序列化环境数据的 MsgPack 有效负载,然后将其发送到 Helium 控制台集成端点。 Helium 控制台自定义功能允许使用 Javascript,虽然只是简单的框架,没有任何要求、导入等。

下面是可以手动解码payload的Python脚本。如果有人熟悉这个领域,我会对建议感兴趣。有可用于 Helium 的预定义解码器,但没有一个与我的硬件完全匹配。

如果有人为 Helium 控制台集成创建了自定义解码功能,我会很好奇如何将其淘汰。这里有一些关于这个的信息 --> https://docs.helium.com/use-the-network/console/functions/.

import ssl, sys, json, base64
import msgpack

payload = "haJiVspAozMzo3RfQxilZWNfbVMWonBoB6NvcnAC"

# decode the payload from base64 and unpack
b64 = base64.b64decode(payload)
mp_dict = msgpack.unpackb(b64)

print(mp_dict) # output is {'bV': 5.099999904632568, 't_C': 24, 'orp': 2, 'ph': 7, 'ec_mS': 22}

【问题讨论】:

    标签: javascript iot lorawan


    【解决方案1】:

    我没有重新发明轮子,而是修改了在我的设备上运行的 Arduino 代码。拉入 CayenneLPP 库我手动编码我需要的内容,以便 Helium 控制台的罐装 CayenneLPP 解码功能可以正确解析数据。

    下面的Arduino代码sn-p。

    #include <CayenneLPP.h>
    ...
    
    /*CayenneLPP variable*/
    CayenneLPP lpp(51);
    
    ...
    
    static void prepareTxFrame( uint8_t port )
    {
        appDataSize = lpp.getSize();
        uint8_t lppBuffer[128];
        memcpy(lppBuffer, lpp.getBuffer(), 128); 
        memcpy(appData, lppBuffer, lpp.getSize());    
    }
    
    ...
    
    // The loop function is called in an endless loop
    void loop()
    {
        lpp.reset();
        lpp.addTemperature(1, 22.5);
        lpp.addBarometricPressure(2, 1073.21);
        lpp.addGPS(3, 52.37365, 4.88650, 2);
    
        ...
    
        LoRaWAN.displaySending();
        prepareTxFrame( appPort );
        LoRaWAN.send(loraWanClass);
    
        ...
     
     }  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      • 2015-10-30
      • 1970-01-01
      相关资源
      最近更新 更多