全部产品
云市场

RG4100+接入一键入墙开关开发过程

更新时间:2019-02-27 11:16:27

阿里云IoT鼓励网关厂商提供解决方案来让设备厂商可以在不对网关进行固件升级的情况下接入新开发的子设备,瑞瀛物联的RG4100+就是满足该需求的一款网关。

本文从设备厂商的视角描述如何通过瑞瀛物联的模组来开发接入阿里云IoT智能生活开放平台的一键开关产品,设备厂商可以通过该过程体验通过该方案接入一款产品需要开发的时间。在硬件就位的情况下,用户如果按照下面的流程通常可以在3小时以内完成该体验。

设备端开发

硬件连接

使用瑞瀛的模组开发板连接一键开关模组,并使用串口连接开发板和电脑,连接示意图如下:

hw-conn

注:开发板上电之后将会为模组供电

  • 一键开关模组针脚定义:

module-pin-desc

引脚含义:

引脚1 引脚4 引脚7 引脚8 引脚16 引脚17 引脚21 引脚22 引脚30
GND 继电器 按键灯 按键 TXD RXD 过零检测口 网络指示灯 VCC
  • 开发板示意图:

dev-board

上图中中间的“模组串口收发针脚”需要连接模组的TX、RX针脚,“3.3V供电针脚”需要连接模组的VCC针脚,“接地针脚”需要连接模组的Gnd针脚;“DB9串口插头”用于连接电脑的串口。

  • 模组与开发板连接完毕后示意图

dev-board-and-module

上图连接了模组的VCC、Gnd到开发板的3.3V+和3.3V-,连接了串口的Tx、Rx到开发板的TXD和RXD,模组的针脚8(按键)连接到了VCC-。

注:当需要发起“配对”的时候,需要将模组的针脚8连接到开发板的3.3V+上10秒,然后再将针脚接到3.3V-上。

获取模组MAC地址

注:目前大多数电脑不提供DB9的串口接头,往往使用USB接口,所以需要确保使用的USB串口驱动在电脑上可以正常工作。

将电脑的串口与开发调试板的串口连接之后,参照下图左上的串口配置让电脑可以与模组通信:

console-config

向模组发送 AT+GETINFO 指令,模组将会返回模组的信息,其中包括模组的MAC地址。将其中的MAC地址复制,去掉空格作为设备的DeviceName待用。上图是模组已经连接到了一个Zigbee网关后的输出,其中有模组的NodeID、Zigbee网络的PANID等信息;

如果模组尚未连接Zigbee网关,那么显示将没有Zigbee网络的信息,显示效果如下图所示:

console-not-conn

注:调试时可以从模组读取MAC地址并上传到阿里云IoT智能生活开放平台,开发完毕之后设备商从瑞瀛物联批量购买模组时需要瑞瀛物联提供这些模组的MAC地址列表,然后由设备商批量上传到阿里云IoT智能生活开放平台。

云端注册产品

创建产品

注:下面的描述中截取了飞燕控制台的页面图片,如果飞燕控制台页面发生改变将会导致与本文档中的显示不一致,因此本文档中的页面仅供参考,请以飞燕控制台的页面为准

创建产品时确保下图中框选的配置与图中保持一致:

create-new-prod

  • 功能定义使用默认值即可,无需修改

dev-func-define

并在该页面复制产品的ProductKey备用

添加测试设备

  • 在设备调试中点击:

add-test-dev

  • 将前面通过串口获取到的MAC地址添加到测试设备中:

set-dn

  • 设置产品支持公版app:

interaction

设置产品支持一型一秘

  • 首先返回项目页面,并点击“量产管理”:

product-mng

  • 修改对应产品的“烧录方式”为“一机一密/一型一密”:

config-dyn-reg

注:修改烧录方式时会进行修改确认,按照提示操作即可

RG4100+配置

RG4100+网络连接

rg4100

  1. 使用RG4100+提供的电源通过MicroUSB接口给RG4100+上电;
  2. 使用以太网线缆连接RG4100+的WAN口到路由器的LAN口;
  3. 确保路由器可以访问阿里云IoT

修改RG4100+配置来支持新开发的产品

    1. 登录RG4100+命令行界面

RG4100+启动之后将会创建一个WiFi热点,其SSID以及密码标注在RG4100+底部的标签上,如下图所示:

dev-tag

注:网关的WiFi热点的密码默认都是一样的,默认IP地址也一样。

您可以将您PC的WiFi连接到RG4100+的热点之后,使用telnet工具(比如putty)连接网关的地址:192.168.82.1,用户名/密码为:root/admin。正确登录之后界面如下所示:

login

    1. 为子设备创建映射

为了接入新的子设备,用户需要在RG4100+上指定子设备型号->阿里云IoT ProuctKey的映射,映射文件位于/usr/rule,用户可以使用命令 cd /usr/rule 进入该目录,该目录下文件如下图所示:

file-list

其中文件ProductKey.map是指定子设备型号与ProductKey映射,其内容如下所示:

pk-map-file

对于子设备厂商新创建的设备,需要在该表格中增加一行来指定子设备型号(rex_model_id)、子设备类型(rex_type)、以及对应的ProductKey(to_product_key)、desc(产品描述)。用户可以使用命令 vi ProductKey.map 打开该文件进行内容修改。

注:键入字符 i 可以让vi从命令模式进入编辑模式,退出编辑模式到命令模式可以按下 Esc 键,保存修改需要在命令模式下键入 :wq 并回车 。

本示例中使用已有的模组固件(型号为RH7031,rex_type为1101),并未向瑞瀛物联申请新的设备型号,因此无需添加新行,可以直接将to_product_key的值修改为上面创建的子设备的ProductKey【注意:在修改之前先将原productKey复制备用】,保存后退出。

注:设备商实际开发产品时,需要向瑞瀛物联申请子设备型号、子设备类型,并在mapper中增加一行产品描述,并需要瑞瀛提供相应的数据转换规则文件。

    1. 为子设备创建数据转换规则文件

RG4100+需要为子设备创建数据处理规则文件,该规则文件的名称需要与子设备的ProductKey保持一致:

rule-file


上图中右上方框选的文件即为RG4100+中型号RH7031对应的子设备的转换规则文件,本示例中我们需要为我们创建的产品创建转换规则文件。如上图命令所示,我们首先备份已有的a1rN8CghtG0.cvt,然后将其名称修改为我们新创建产品的ProductKey:a1zB0QPiYXB.cvt (注:用户操作时需要将该文件的名字修改为自己创建的产品的ProductKey的数值):

  1. cp a1rN8CghtG0.cvt a1rN8CghtG0.cvt.orig //备份原有文件
  2. mv a1rN8CghtG0.cvt a1zB0QPiYXB.cvt //为新产品创建转换规则文件
    1. 重启RG4100+

重启RG4100+让修改后的配置生效

手机端APP添加网关和一键开关设备

安装手机APP以及绑定RG4100+

    1. 扫描下面的二维码安装飞燕app:

ilop-test-app

    1. 将手机连接到路由器的WiFi热点


将手机连接到RG4100+上联的路由器的WiFi热点

    1. 绑定RG4100+

在主界面点击 +号,如果网络连接正常,将会自动显示出RG4100网关,如下图所示:

bind-gw

选择该发现的RG4100网关进行添加即可完成设备添加和绑定。

本步骤失败常见原因:

  • 手机APP未连接到RG4100上联路由器的WiFi网络
  • 上联路由器工作不正常。手机连接到路由器WiFi热点之后,可以连接一下阿里云官网,确保可以打开网页

添加一键入墙开关

    1. 在主界面点击 + 号,并在“添加设备”页面点击扫描按键,如下图所示:

add-sub-dev

    1. 使用手机APP扫描新创建设备的二维码

使用手机APP扫描在智能生活开放平台的产品“人机交互”页面中的二维码:

interaction

随后手机APP将会提示选择子设备需要接入的网关,选择在上面的步骤中绑定的RG4100+即可,随后手机APP会提示是否继续添加子设备:

add-dev-confirm

点击“我确定,下一步”

    1. 启动开关模组进行配对


将模组的针脚8连接到开发板的3.3v-10秒,让子设备进入配对状态,若一切正常,模组将会被加入网络以及被手机APP绑定,在手机APP的主页面将会出现添加的开关设备:

finish-add-dev


本步骤常见失败原因:

  • 模组与RG4100+之间距离太远。因为模组上未连接天线,所以模组与RG4100+的距离推荐在2米以内;
  • 模组仍然连接在另外一个Zigbee网络中。可以通过电脑串口向模组发送AT+GETINFO命令,查看模组返回数据来确认模组未连接到另外一个Zigbee网络中;如果是,在设备上将模组的针脚8连接到开发板的3.3v-10秒,让模组退出网络,之后再次操作手机发起绑定;
  • 若手机app上出现设备已添加、但是提示未激活,可以重启网关查看问题是否已解决


若排除上面的两个原因仍然出现失败,可以多尝试几次添加操作。

验证模组数据上报

模组的针脚8的电平拉高再拉低(也即将针脚8连接到开发板的3.3V+再立即连回到3.3V-),会模拟一下开关的状态变化,模组将会把该变化上报给RG4100+,并由RG4100+上报到智能生活开放平台,然后打开手机APP上开关的面板查看开关的状态变化:

dev-status