前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Helium 去中心化的LoRaWAN网络在腾讯云物联网开发平台的应用实战

Helium 去中心化的LoRaWAN网络在腾讯云物联网开发平台的应用实战

原创
作者头像
Yunfei_Helium
修改2021-09-08 14:26:18
4.3K6
修改2021-09-08 14:26:18
举报
文章被收录于专栏:Helium LoRaWANHelium LoRaWAN

简介

本文档介绍Helium console的使用,将标准的LoRaWAN终端加入到Helium People’s Network,并通过腾讯云IoT explorer物联网开发平台集成,在微信公众号以及腾讯连连小程序推送消息和展示数据。

Helium People’s Network 是一个全球性、分布式的开放网络。通过 Hotspots(LoRaWAN网关),Helium 可以为支持 LoRaWAN 协议的物联网设备提供公共的无线网络覆盖,使物联网设备更方便地接入互联网和传输数据。

准备工作

设备准备

  • 一台Helium Miner LoraWAN网关
  • 一个标准LoRaWAN CN470 OTAA终端,中国区使用频点信息如下表

信号编号

上行频点

下行RX1频点

下行RX2频点

1

486.3

506.7

505.3

2

486.5

506.9

505.3

3

486.7

507.1

505.3

4

486.9

507.3

505.3

5

487.1

507.5

505.3

6

487.3

507.7

505.3

7

487.5

507.9

505.3

8

487.7

508.1

505.3

  • 本文档使用南京Rejeee 温湿度传感器作为参考
温湿度传感器
温湿度传感器

Helium Console 使用

创建Helium console 账户

登陆Helium 控制台注册用户,可以使用google账户直接登陆,或者通过邮件创建新账户。新账户完成后,需要登陆注册邮箱确认,确认完成后就可以使用新账户登陆Helium Console 控制台

注册Console账户
注册Console账户
成功登陆控制台
成功登陆控制台

Data Credits

使用Helium People’s Network 发送和接收数据,需要使用到Data Credits(简称DC),新建账户,官方赠送了10000DC, 每1DC可以发送24byte数据.

假设一个LoRaWAN终端每5分钟发一次包,每个包24Byte,那么1美金,即6.5元RMB可以发送10万个数据包,每5分钟发一次,可以持续发送1年。

1 DC = 24 Byte Packet = $0.00001 USD

若账户中DC消耗完,需要通过燃烧HNT来获取DC,否则无法通过网络接收和发送数据。

Data Credits
Data Credits

添加设备(Add Devices)

  • Helium People’s Network 仅支持LoRaWAN OTAA设备,以及固定Region的频点计划
  • 从设备厂家获取LoRaWAN设备的三元组信息:Deveui、Appeui、Appkey,按照下图方式在console添加设备信息
  • 设备第一次加入网络时,需要将其密钥添加到区块链中,并将更新的区块发送给Hotpots,这个过程最多需要20分钟
    添加设备信息
    添加设备信息
设备成功入网及上报数据
设备成功入网及上报数据

应用数据解码(My Functions)

上一步我们已经获取到了设备上报的原始数据,下面我们需要解析原始数据,让这部分数据更容易被读取,Helium Console 提供My functions 功能,通过这个功能,就可以通过简短的脚本文件将Hex数据转化成更易读取的Json格式数据,比如:上报Hex数据:00 3e 24 04 01 00 05 3a, 解析后的数据:{ "power": 30,"temp_value": 25.6,"hum_value": 58 }

  • Step 1 :创建函数名称、 decoder、Customer Script
  • Step 2 :创建函数脚本,并可以通过右侧的脚本验证器调试输出结果
My Functions
My Functions

应用集成(Integrations)

Helium Console 支持多种应用集成方案呈现数据,但是大多数集成都是海外使用的工具,在国内并不适用,这里我们将介绍MQTT集成工具,与腾讯云IoT explorer物联网开发平台结合,并通过腾讯体系下的微信小程序腾讯连连和微信公众号呈现数据和告警信息。

呈现的数据包含两类:

  • 应用payload数据,这里使用温湿度数据
  • 网络信息,包括上传的网关编号、信号强度、信噪比、帧序列号等等

腾讯云IoT平台使用

在腾讯云创建MQTT终端

  • Step 1: 登陆腾讯云物联网开发平台,创建项目及产品 - 产品名称:输入用户定义产品名称 - 产品类型:选择“用户自定义”。 - 设备类型:选择“设备”。 - 认证方式:选择“密钥认证”。 - 通信方式:选择“其他”。
    新建产品
    新建产品
  • Step 2:配置物模型
    • 应用数据
      • power: 剩余电量
      • temp_value:温度
      • hum_value:湿度
    • 网络相关数据
      • rssi:信号强度
      • snr:信噪比
      • frequency:上报数据使用频点
      • dev_eui:Deveui,设备EUI编号
      • fcnt:帧序列
      • channel:信道
      • name:网络name
      • spreading:扩频因子

提供物模型文件样本JSON格式文件,通过下图方式直接导入到产品中。

导入物模型文件
导入物模型文件

导入成功后,结果如下图:

成功导入物模型
成功导入物模型
  • Step 3 : 创建MQTT设备
    • 新建设备:创建新的设备,设备名称使用在helium console创建的设备名称,两个名称需要保持一致
    • 获取设备信息(用来创建MQTT连接的账户和密码)
      • 设备名称
      • 产品ID
      • 设备密钥
  • Step 4 : 创建MQTT连接的账户和密钥 腾讯云为每个设备生成唯一的密钥,通过Step 3 获取的信息创建MQTT连接的域名、账户、密码。生成方式有下面两种,注意账户密码的时效性,如果需要长时间测试,建议使用第二种脚本方式生成,修改账户密码的有效期: - 通过password生成工具
    MQTT账户和密码生产
    MQTT账户和密码生产
    - 通过python、C语言、Java等不语言的脚本生成,参考 MQTT接入
  • 获取MQTT连接三元组及Topic
    • username: 有上述工具生成
    • password: 有上述工具生成
    • 域名:PRODUCT_ID.iotcloud.tencentdevices.com,这里 PRODUCT_ID 为变量参数,用户需填入创建产品时自动生成的产品 ID,例如 T****DS8G.iotcloud.tencentdevices.com
      • 上行topic: $thing/up/property/PRODUCT_ID/${deviceName}
      • 下行topic: $thing/down/property/PRODUCT_ID/${deviceName}

helium console 创建MQTT集成

  • Step 1 : helium console 添加MQTT集成
    添加MQTT集成
    添加MQTT集成
  • Step 2 : 配置MQTT连接信息, 使用上一步获取的账户、密码、域名等信息填入下述规则: - Endpoint: mqtt://username:password@mqtt.example.com:1234 - uplink Topic:$thing/up/property/PRODUCT_ID/{{device_name}}undefined - downlink Topic:$thing/down/property/PRODUCT_ID/{{device_name}}
    MQTT配置示例
    MQTT配置示例
  • Step 3 : 设置 Integration Name
  • Step 4 : 设置 JSON 信息模版, 需要与腾讯云配置的物模型对应
代码语言:txt
复制
{
  "method":"report",
  "params":
  {
   {{#decoded}}{{#payload}}
   "power": {{power}},
   "temp_value": {{temp_value}},
   "hum_value": {{hum_value}},
  {{/payload}}{{/decoded}}
  "dev_eui": "{{dev_eui}}",
  "fcnt": {{fcnt}},
  {{#hotspots}}
  "channel": {{channel}},
  "frequency": {{frequency}},
  "name": "{{name}}",
  "rssi": {{rssi}},
  "snr": {{snr}},
  "spreading": "{{spreading}}"
  {{/hotspots}}
  }
}
  • Step 4 : 设置Flow Helium Console 提供了强大的Flow功能,通过图形化拖拽就可以建立设备,功能和集成之间的关系。下面我们把设备Device、解码器Fuctions、应用集成Integrations三个组件串接在一起,把数据流打通。
建立Flow
建立Flow

Helium MQTT集成 成功与腾讯云IOT建立连接:

成功建立MQTT连接
成功建立MQTT连接

腾讯云成功获取到设备终端数据:

腾讯云获取到设备数据
腾讯云获取到设备数据

腾讯云配置腾讯连连小程序

腾讯连连提供官方小程序,用户无需关注底层实现,只需通过配置专属交互界面,即可实现小程序应用开发,通过小程序快速呈现数据,提高开发效率。

  • Step 1 : 进入腾讯云IoT控制台,在交互开发中配置腾讯连连呈现数据面板,可以选择面板样式,并通过右侧面板预览
    腾讯连连面板配置
    腾讯连连面板配置
  • Step 2 : 在微信中搜索并打开腾讯连连小程序,扫描设备二维码,将设备添加到腾讯连连小程序中
    腾讯连连扫描二维码,添加设备
    腾讯连连扫描二维码,添加设备
  • Step 3 : 腾讯连连小程序中点击设备,可以观察到设备上报数据
    腾讯连连小程序呈现数据
    腾讯连连小程序呈现数据

腾讯云数据开发,实现公众号数据推送

腾讯云IoT可以满足开发者根据设备上报的数据及状态,通过在云端定义规则,即可实现将告警、通知消息实时推送至腾讯连连公众号或 App 推送,降低开发者处理设备上报数据的成本。下面通过简单的案例来实现公众号推送,详细文档可以参考腾讯云IoT数据开发配置

  • Step 1: 新建数据开发
  • Step 2: 设置推送到设备数据 - 选择产品 - 选择属性 - 保存
    设置设备数据
    设置设备数据
  • Step 3: 设置数据过滤规则 - 设置条件组合方式 - 设置过滤条件 - 确定保存
    设置数据过滤条件
    设置数据过滤条件
  • Step 4: 设置公众号推送 - 设置通知类型 - 设置推动标题 - 设置推送内容
    设置推送内容
    设置推送内容
  • Step 5: 关注腾讯连连公众号

关注腾讯连连公众号,获取推送数据信息

公众号数据推送
公众号数据推送

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 准备工作
    • 设备准备
    • Helium Console 使用
      • 创建Helium console 账户
        • Data Credits
          • 添加设备(Add Devices)
            • 应用数据解码(My Functions)
              • 应用集成(Integrations)
              • 腾讯云IoT平台使用
                • 在腾讯云创建MQTT终端
                  • helium console 创建MQTT集成
                    • 腾讯云配置腾讯连连小程序
                      • 腾讯云数据开发,实现公众号数据推送
                      相关产品与服务
                      物联网通信
                      腾讯云物联网通信(Internet of Things Hub, IoT Hub)旨在提供一个安全、稳定、高效的连接平台,帮助开发者低成本、快速地实现“设备-设备”、“设备-用户应用”、“设备-云服务”之间可靠、高并发的数据通信。物联网通信平台不仅可以实现设备之间的互动、设备的数据上报和配置下发,还可以基于规则引擎和腾讯云产品打通,方便快捷地实现海量设备数据的存储、计算以及智能分析。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档