不改设备固件,直接让成品LoRaWAN门磁接入腾讯云物联网开发平台
前言
在此前的新闻方案中有看到,腾讯云利用其物联网开发平台的设备数据引擎,硬件厂商不用修改设备固件既可以快速对接物联网平台。
腾讯云之所以能快速对接多家设备厂商开发的LoRaWAN智能门磁产品,得益于物联网开发平台的设备数据解析引擎,硬件合作伙伴只需通过编写云端脚本,将其设备协议转化成云平台统一的门磁数据模版。因此腾讯云在短时间内联合躬远科技、唯传科技、瑞兴恒方等多家优秀的LoRa®设备厂商,借助可即刻搭建、覆盖小区、信号质量稳定可靠的LoRa低功耗广域网(LPWAN),快速推出了安装便捷的隔离监控整体解决方案。
这篇笔记将演示如何实现这个快速对接操作。文中示例为瑞兴恒方 RHF1S020 智能楼宇套件中的门磁传感器,经过厂商确认,设备协议为公开协议,因此可以对外展示。
腾讯云 IoT Explorer 是腾讯云主推的一站式物联网开发平台,IoT 小能手从设备侧开发、平台功能操作、应用侧开发三个部分来进行学习分享,另外还分享了一些动手实践作品及收录官方发布的产业合作案例,帮助读者更好地理解整个开发链路。详情可点击下方阅读原文。
1 控制台创建 LoRa 门磁传感器
1.1 创建项目和产品
创建项目
登录 物联网开发平台控制台,选择【新建项目】。
在新建项目页面,填写项目基本信息。
项目名称:输入“LoRa楼宇传感器演示”或其他名称。
项目描述:按照实际需求填写项目描述。
项目新建成功后,即可新建产品。
新建产品
进入该项目的产品列表页面,单击【新建产品】。
在新建产品页面,填写产品基本信息。
产品名称输入“LoRa门磁传感器”或其他产品名称。
产品类型选择“门磁传感器”。
认证方式选择“密钥认证”。
通信方式选择“LoRaWAN”。
产品新建成功后,您可在产品列表页查看到“LoRa门磁传感器”。
创建数据模板
选择“门磁传感器”类型后,自定义产品功能。
示例中,我们仅使用最简单的默认工作模式,更多功能(如电池电量、静默时间等等)大家可以根据传感器的用户手册进行发挥。
绑定 bound
上报周期 period
门窗打开状态 isOpen
配置 LoRaWAN 参数
在设备开发页面中,按需调整 LoRaWAN 参数配置。
1.2 设备数据解析
在设备开发页面中,按需调整 设备数据解析。由于 LoRa 类资源有限设备不适合直接传输 JSON 格式数据,使用“设备数据解析”可以将设备原始数据转化为产品JSON数据。
设备协议分析
在本示例中,采用了门磁传感器5条基础的数据消息:
上行消息 - 归属状态 0xA1
在未绑定状态, 设备会上行消息内容 A102(十六进制)到服务器,每 20s 一次,发送最大次数 9 次。同时等待接收服务器确认绑定状态更新消息。
如果用户要绑定该设备,则回复消息 A103. 设备收到该消息后, 接着会再上行 A103 确认设备切换到绑定状态。上行消息 - 设备基础参数 0x07
设备绑定后开始正常工作即会主动上行一包基础参数信息(其他时候不再上报此基础参数信息) ,用于服务器识别和同步设备参数。
设备归属之后,会上报出周期等参数。
上行消息 - 周期上报数据帧 0x00
这个周期上报数据帧中会展现门磁传感器的开关状态。
上行消息 - 报警 0x0F
开关门的实时上报会通过报警帧来上报。
下行消息 - 设置上报周期(心跳周期) 0x9D
数据解析脚本
在上行数据解析部分,javascript示例代码如下:
function RawToProtocol(fPort, bytes) {const COMMAND_A1_UNBOUND = 0x02;const COMMAND_A1_BOUND = 0x03;const COMMAND_07_FLAG_MODE = 0x05;const COMMAND_07_LEN_MODE = 1;const COMMAND_07_FLAG_VER = 0x90;const COMMAND_07_LEN_VER = 3;const COMMAND_07_FLAG_DELAY = 0x9c;const COMMAND_07_LEN_DELAY = 2;const COMMAND_07_FLAG_ULPRD = 0x9d;const COMMAND_0f_ALERT_KIND = 0x20;const COMMAND_0f_ALERT_OPEN = 2;const COMMAND_0f_ALERT_CLOSE = 4;var data = {"method": "report","clientToken" : new Date(),"params" : {}};switch (bytes[0]) {case 0xA1:if (bytes[1] == COMMAND_A1_UNBOUND) {data.params.bound = 0;} else if (bytes[1] == COMMAND_A1_BOUND) {data.params.bound = 1;}break;case 0x07:for (let i = 1; i < bytes.length; i++) {if (bytes[i] == COMMAND_07_FLAG_MODE) {i += COMMAND_07_LEN_MODE;} else if (bytes[i] == COMMAND_07_FLAG_VER) {i += COMMAND_07_LEN_VER;} else if (bytes[i] == COMMAND_07_FLAG_DELAY) {i += COMMAND_07_LEN_DELAY;} else if (bytes[i] == COMMAND_07_FLAG_ULPRD) {data.params.period = bytes[i+1] | (bytes[i+2] << 8);}}break;case 0x00:if (bytes[5] & 0x80) {data.params.isOpen = 0;} else {data.params.isOpen = 1;}break;case 0x0f:if (bytes[1] == COMMAND_0f_ALERT_KIND) {if (bytes[2] == COMMAND_0f_ALERT_OPEN) {data.params.isOpen = 1;} else if (bytes[2] == COMMAND_0f_ALERT_CLOSE) {data.params.isOpen = 0;}}break;}return data; }
在下行数据解析部分,javascript示例代码如下:
function ProtocolToRaw(obj) {var data = new Array();var i = 0;data[i++] = 8;// fport=8data[i++] = 1;// confirmed modefor (var property in obj.params) {if ((property == "bound") && (obj.params[property] == 1)) {data[i++] = 0xA1;data[i++] = 0x03;}if (property == "period") {data[i++] = 0x9D;data[i++] = obj.params[property] & 0x00FF;data[i++] = (obj.params[property] >> 8) & 0x00FF;}}return data; }
脚本模拟测试
这里也可以使用数据解析页面下方的模拟调试工具,如果开发更多的功能,这个模拟脚本将会提供很大帮助。
上行消息 - 归属状态 0xA1
设备原始数据为 0xA1,0x02,我们将其转化为数组,即上行模拟数据为:[161,2],填入设备上行数据的编辑框中。
点击运行,即可在模拟调试界面右侧看到结果。上行消息 - 设备基础参数 0x07
设备原始数据:07 05 06 90 00 08 04 9c 00 00 9d 80 70 9f 13 13 31 53 30 32 30 1f 02 05 20 95
模拟测试数据:[7,5,6,144,0,8,4,156,0,0,157,128,112,159,19,19,49,83,48,50,48,31,2,5,32,149]上行消息 - 周期上报数据帧 0x00
设备原始数据:00 06 00 00 00 10 d5
模拟测试数据:[0,6,0,0,0,16,213]上行消息 - 报警 0x0F
设备原始数据:0f 20 02 20 02 00 00 10
模拟测试数据:[15,32,2,32,2,0,0,16]
这条消息为开门报警消息。设备原始数据:0f 20 04 20 05 00 00 90
模拟测试数据:[15,32,4,32,5,0,0,144]
这条消息为关门报警消息。下行消息 - 设置上报周期(心跳周期) 0x9D
模拟测试数据如下,将其填入设备下行数据的编辑框中:
{"params": {"period": 300} }
1.3 创建测试设备
在设备调试页面中,单击【新建设备】,设备名为 dws001。
DevEUI,每一个设备有一个唯一的身份识别地址 DEVEUI, 设备据此进行 LoRaWAN 网络入网并身份识别。信息以二维码的形式体现在产品外壳。
本示例中为:8cf957e0000001e7
AppKey,设备的密钥。
可找套件厂家索要。
2 LoRaWAN 门磁传感器实物操作
2.1 传感器复位
根据 《门磁传感器RHF1S020DWS规格书》 中的操作说明,按照章节 3.8 进入无线固件升级, 将磁铁贴近门磁传感器(CE标志面的对面),红色LED从慢闪逐渐常亮后挪开磁铁, 即可让设备会自动重置复位。
2.2 下发门磁归属
门磁传感器在刚复位上电的一两分钟会上报3条归属状态的消息,我们必须在这点时间内尽快下发归属命令。
由于门磁传感器是 LoRaWAN Class A 类设备,这类设备不会立即下发数据,需要在有数据上行后,服务器才会向该设备下行数据。
因此我们下发了归属命令,当传感器上报归属状态消息后,即可收到我们下发的归属命令。这样门磁传感器之后才可正常使用。
注意:设备一旦归属之后,会再上报周期参数上来。如果看到平台的设备属性中没有更新“上报周期”,那说明传感器还未归属成功。此时需要重新下发归属命令,然后再复位传感器。
2.3 开关门操作
根据 《门磁传感器RHF1S020DWS规格书》 中的章节 2.10 操作说明,
磁铁部分外壳底部有一个开槽标识, 安装时请务必保证开槽的一边朝向正对传感器一边。主体传感部分和用磁铁部分相对方位如下图, 分别安装在门(或窗)固定边和活动边,距离小于 20mm(不需紧贴) , 主体传感器部分和磁铁部分安装的表面高度基本在一个平面上。
如图所示,磁铁开槽方向贴近传感器位置,即触发了一次关门。将磁铁挪开 35 mm 以上,即可触发开门上报。
在控制台的设备调试页面下方则可以看到相应的属性做了更新。
END
That's all
IoT小能手的其他精彩文章:
* 行业围观
从工信部发文解读政府对LoRa产业的态度
深度报道 第1个从太空发回的LoRa信号(含视频)
* 技术分享
LoRaWAN介绍 - LoRa从业者读这篇就够了
干货 | LoRaWAN 协议中文版,你要的pdf来了
无线节点的空中唤醒技术解析
* 玩玩硬件
13块钱DIY微信小程序远程浇花神器
自制一个 LoRa PM2.5 监测器
语音控制智能家居的抽风小仓鼠
* 心得分享
文档啊,最重要的还是层次感
技术管理入门课_先做个不讨厌的人
你没中过勒索病毒,不知道备份有多重要
不改设备固件,直接让成品LoRaWAN门磁接入腾讯云物联网开发平台相关推荐
- RAK7258 LoRaWAN 网关接入腾讯云物联网开发平台
文章目录 前言 1 控制台操作 LoRa 网关 2 RAK 7258 LoRa网关实物操作 连接配置 网络配置 LoRa参数配置 网关上线确认 END 前言 这篇笔记记录采用 RAK7258 LoRa ...
- 腾讯云物联网开发平台 LoRaWAN 透传接入 更新版
前言 之前有一篇文章介绍LoRaWAN透传数据,不过还是用物模型+云端数据解析脚本,不是真正的透传.腾讯云物联网开发平台也支持对LoRaWAN原始数据的透传.转发.今天来介绍下. 腾讯云 IoT Ex ...
- STM32节点移植lorawan协议连接腾讯云物联网开发平台(IoT Explorer)
STM32移植lorawan协议栈连接腾讯云物联网开发平台(IoT Explorer) 前言 开发环境的准备 正文 初始化 入网 发送与接收 前言 在移植协议之前,先给大家科普一下Lora 和 lor ...
- 【STM32+ESP-12S连接腾讯云物联网开发平台 1】云平台的创建和AT固件烧录
腾讯云物联网开发平台创建和ESP-12S的固件烧录 前言 一.腾讯云物联网开发平台的创建 1. 创建产品 2. 配置产品和创建设备 3. 设备三元组说明 二.ESP-12S固件烧录 1.固件获取 2. ...
- 腾讯云物联网-网关设备体验
sdk代码请点击这里获取 网关设备简介 对于 BLE.Zigbee 和485等不具备直接访问网络能力的设备,需要先接入网关,然后通过网关代理,间接实现设备接入腾讯物联网开发平台 IoT Explore ...
- 门禁接入动环系统,门磁接入动环系统怎么设置
门磁能连接动环监控系统吗?门磁属于数据报警检测量,可通过开关量检测获得.门磁安装在门套的适当位置,对进出人员进行监控. 动力环境监控系统集安全.环境.动力于一体.适用场景不但可以加强机房.通信基站.供 ...
- LoRa设备如何连接到腾讯云?
目录 前言 一.在腾讯云上新建LoRa设备 二.LoRa设备上线 三.在线调试 结语 前言 前面我们已经介绍了<如何在腾讯云上解析LoRa节点数据>,也就是说,我们已经知道如何在腾讯云上为 ...
- 实现阿里云物联网平台设备信息到微信小程序分享过程
简要说明: 实现微信小程序连接阿里云物联网平台并且显示阿里云设备信息等,设备端采用模拟设备进行数据上传,并且利用规则引擎和自定义的Topic进行信息的接受和发送. 目前效果图 步骤: 1.注册阿里云物 ...
- esp32 + DHT11温湿度传感器+阿里云物联网平台实时数据显示 实现设备上云
1 课设目的 本课设是通过esp32板子搭配DHT11传感器,检测温度和湿度数据通过MQTT协议实时传输到阿里云物联网开发平台,实现设备上云. 2 阿里云环境准备 2.1开通物联网平台 我们先需要注册 ...
最新文章
- 整合初步---------SSH(注解版)
- node 常见的一些系统问题
- 自动化监控--zabbix中的Macros(宏)详解
- python读取文件最后一行
- ionic4集成高德地图
- python按位定义数据_《Python3智能数据分析快速入门》—2.2.5 按位运算符
- JAVA大厂高频面试题及答案
- php 中 的含义
- Layui 数据表格:用户个性化定制列(拖拽,隐藏)
- 抓包教程_最简单的Wireshark抓包TCP/UDP新手5步教程(宽带故障运维必备)
- tomcat 日志拆分
- 物联网系统网关开发与实现
- win10安装opencv,pycharm中import cv2失败
- JEECG3.8 全套实战视频全部开放,免费下载!
- vc 文字转换到机内码,输入汉字和数字, 输出一串16进制码(数字-〉ASII码,汉字—〉国标码)...
- jieba分词词性标注含义
- Macbook Pro 201 装Win10 声卡_MacBook+BMPCC+康佳PS300共同打造事半功倍视频制作流
- IDEA中建包时如何把包分开
- 京东云开发者|IoT运维 - 如何部署一套高可用K8S集群
- 实际上Ubuntu在你最起初配置完系统以后,是无法访问root类型的操作的(下面详解),ubuntu系统网络设置方法(图文)