Helium People’s Network 是一个全球性、分布式的开放网络。通过热点网关,可以为支持 LoRaWAN 协议的物联网设备提供公共的无线网络覆盖,使物联网设备更方便地接入互联网和传输数据。
本文介绍Helium Console的使用,将标准的LoRaWAN终端加入到Helium People’s Network,并通过腾讯云IoT Explorer物联网开发平台集成,在微信公众号以及腾讯连连小程序推送消息和展示数据。
01
—
准备工作
设备准备:
一台Helium Miner LoRaWAN网关
一个标准LoRaWAN CN470 OTAA终端,中国区使用频点信息如下表:
本文使用Rejeee温湿度传感器作为参考示例:
02
—
Helium Console 使用
2.1 创建Helium Console 账户
登陆Helium 控制台注册用户,可以使用google账户直接登陆,或者通过邮件创建新账户。新账户完成后,需要登陆注册邮箱确认,确认完成后就可以使用新账户登陆Helium Console 控制台。
https://console.helium.com
注册Helium Console账户,成功登陆Helium Console控制台:
2.2 数据积分(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:
2.3 添加设备(Add Devices)
Helium People’s Network 仅支持LoRaWAN OTAA设备,以及固定Region的频点计划;
从设备厂家获取LoRaWAN设备的三元组信息:Deveui、Appeui、Appkey,按照下图方式在Console添加设备信息;
设备第一次加入网络时,需要将其密钥添加到区块链中,并将更新的区块发送给热点网关,这个过程最多需要20分钟;
添加设备三元组:
设备成功入网,并上报数据:
2.4 应用数据解码(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 Funcitons 配置:
2.5 应用集成(Integrations)
Helium Console 支持多种应用集成方案呈现数据,但是大多数集成都是海外使用的工具,在国内并不适用,这里我们将介绍MQTT集成工具,与腾讯云IoT explorer物联网开发平台结合,并通过腾讯体系下的微信小程序腾讯连连和微信公众号呈现数据和告警信息。
呈现的数据包含两类:
应用payload数据,这里使用温湿度数据
网络信息,包括上传的网关编号、信号强度、信噪比、帧序列号等等
03
—
腾讯云IoT开发平台使用
3.1 在腾讯云IoT开发平台创建MQTT接入终端
Step 1:登陆腾讯云物联网开发平台,创建项目及产品
产品名称:输入用户定义产品名称;
产品类型:选择“用户自定义”;
设备类型:选择“设备”;
认证方式:选择“密钥认证”;
通信方式:选择“其他”
新建产品:
Step 2:配置物模型
网络相关数据
rssi:信号强度
snr:信噪比
frequency:上报数据使用频点
dev_eui:Deveui,设备EUI编号
fcnt:帧序列号
channel:信道编号
name:网关名称
spreading:扩频因子
应用数据
power:剩余电量
temp_value:温度
hum_value:湿度
提供物模型文件样本JSON格式文件,通过下图方式直接导入到产品中。
https://iot-1258125146.cos.ap-nanjing.myqcloud.com/helium_iotmodel.json
导入物模型文件:
成功导入物模型文件:
Step 3 :创建MQTT设备
新建设备:创建新的设备,设备名称使用在helium console创建的设备名称,两个名称需要保持一致
获取设备信息(用来创建MQTT连接的账户和密钥)
设备名称
产品ID
设备密钥
Step 4:创建MQTT连接使用的账户和密钥
腾讯云为每个设备生成唯一的密钥,通过Step 3 获取的信息创建MQTT连接的域名、账户、密码。生成方式有下面两种:
通过password生成工具获取
参考链接:https://cloud.tencent.com/document/product/1081/46507
password生成工具:
通过python、C语言、Java等各种语言脚本生成
参考链接:https://cloud.tencent.com/document/product/634/32546?from=10680
获取MQTT连接账户、密钥、域名和Topic:
username
password
域名:Product_ID.iotcloud.tencentdevices.com
上行Topic:$thing/up/property/Product_ID/${deviceNames}
下行Topic:$thing/down/property/Product_ID/${deviceNames}
3.2 Helium Console 创建MQTT集成
Step 1 :Helium Console 创建MQTT集成
Step 2 :配置MQTT连接信息, 使用上一步获取的账户、密钥、域名等信息填入下述规则
Endpoint: mqtt://username:password@mqtt.example.com:1234
uplink Topic:$thing/up/property/PRODUCT_ID/{{device_name}}
downlink Topic:$thing/down/property/PRODUCT_ID/{{device_name}}
MQTT 配置示例:
Step 3 :设置Integration 名称
Step 4 : 设置Json模版,需要与腾讯云配置的物模型属性对应
{
"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 : 设置数据流Flows
Helium Console 提供了强大的Flows功能,通过图形化拖拽就可以建立设备,功能和集成之间的关系。下面我们把设备Device、解码器Fuctions、应用集成Integrations三个组件串接在一起,把数据流打通。
Helium MQTT集成 成功与腾讯云IOT建立连接:
腾讯云成功获取到设备终端数据
3.3 配置腾讯连连小程序
腾讯连连提供官方小程序,用户无需关注底层实现,只需通过配置专属交互界面,即可实现小程序应用开发,通过小程序快速呈现数据,提高开发效率。
Step 1 : 进入腾讯云IoT控制台,在交互开发中配置腾讯连连呈现数据面板,可以选择面板样式,并通过右侧面板预览
Step 2 : 在微信中搜索并打开腾讯连连小程序,扫描设备二维码,将设备添加到腾讯连连小程序中
Step 3 : 腾讯连连小程序中点击设备,可以观察到设备上报数据
3.4 腾讯云数据开发,实现公众号数据推送
腾讯云IoT可以满足开发者根据设备上报的数据及状态,通过在云端定义规则,即可实现将告警、通知消息实时推送至腾讯连连公众号或 App 推送,降低开发者处理设备上报数据的成本。下面通过简单的案例来实现公众号推送。
数据开发配置参考链接:https://cloud.tencent.com/document/product/1081/40292?from=10680
Step 1: 新建数据开发
Step 2: 设置推送到设备数据
Step 3:设置过滤规则
Step 4:设置公众号推送
Step 5: 关注腾讯连连公众号,获取数据推送信息
往期推荐