阿里云IoT直连固件,是运行于生态伙伴WiFi模组中的软件产品,透过该产品可以使希望快速将设备接入阿里云IoT平台的用户,通过简单的几条AT指令即可完成设备连云,数据上报,接收来自云端的数据的功能,结合阿里云IoT平台的其他服务,快速搭建从硬件接入到物联网应用的完整产品。

适应场景

阿里云IoT直连固件,通过串口AT指令为用户提供相应服务,较为适合MCU+WiFi模组的智能设备场景。

接入示例

接下来通过一个实际的例子,完成一个复合灯具类设备接入阿里云IoT智能生活平台,并实现APP对设备状态进行显示及控制的功能。为了快速地讲述整个过程,本示例中不涉及MCU侧的具体编程,主要说明相关业务流程及AT指令,采用PC上的串口调试工具,模拟设备数据的发送和接收,用户可以通过将演示中的命令移植到MCU代码中的方式来实现。后续也将会推出内置AliOS Things操作系统的硬件产品如何使用带有直连固件模组的说明。

step 1:云端创建产品

在阿里云IoT平台中,我们将同一型号的设备定义为一个产品。在进行任何物联网应用开发之前,我们需要根据将要接入的设备的相关特性,在云端设备控制台中先创建一个产品,并且为产品配置相关的功能。

登入iot.aliyun.com 在“特色行业”标签中选择“生活物联网(飞燕)”。

创建项目

登录到生活物联网平台。平台以项目为维度为用户提供不同硬件设备之间的数据隔离,所以我们需要“创建项目”

创建一个叫“复合台灯测试项目”的新项目

创建产品

进入到项目控制台后,我们选择“创建产品”

在弹框中填写要新建的产品的相关信息

  1. 给产品命名,可以是产品的型号或者其他规则的名称。
  2. 生活物联网平台为设备厂商已经预置了诸多的产品类型模板,用户可以根据实际的情况进行选择,不用从头开始。本示例中选择“灯”这类型。
  3. 选择节点类型,设备为直连IoT平台的设备,还是作为其他设备的网关接入平台。
  4. 物理连接方式选择,这里我们使用WiFi
  5. 数据格式。平台支持ICA联盟所制定的Alink协议规范和透传数据。本演示中采用ICA标准数据格式。

在完成产品的初步定义后,平台会引导用户完成接下来的产品定义工作。

首先需要进行“功能定义”,即该硬件产品有些什么能力需要在云端及APP进行展示,或到控制。在默认情况下,我们可以看到平台已经为设备定义了“主灯开关”属性和“故障上报”事件,由于我们希望演示的是一个复合设备,所以我们可以给他增加一个“室内温度”。我们点击“标准功能”后面的“新增”按钮,在弹出的对话框中选择要新增的属性。

image.png

新增完成后,标准功能列表中会增加一个属性:

到此我们的产品定义完成,请留意此处的“标识符”字段,在后续的设备通信中将会使用。我们点击“下一步:设备调试”。平台会列出生态合作伙伴提供的模组供用户进行参考选择,用户选择自己使用的模组即可,对于实际模组并没有在此列表中的情况,任意选择一个类似模组即可。模组的选择将不会影响后续的调试。

创建测试设备

在设备调试页,我们可以真正采购刚刚选择的模组,平台也在用户量产前为用户提供了测试设备额度进行测试开发。我们点击“新增测试设备”按钮。

在弹窗中为设备命名。此名字即为新增的测试设备的名字,如果用户需要添加多个测试设备,请保证测试设备名称间不可相同。

完成新增后,可以看到在测试设备列表中出现了一个未激活的设备

点击查看按钮我们可以看到设备详细信息,其中设备的激活凭证“ProductKey”,“DeviceName”,“DeviceSecret”以及“Product Secret”将在后续的模组连接中用到,请读者注意在此处可以找到相关信息。

创建APP及面板

接下来我们创建用户展示设备状态和控制设备用的APP面板。生活物联网平台为用户提供了一个“公版APP”容器,使得任何厂商的接入平台的设备都可以通过此APP为终端用户提供相应服务。在本例中,我们也将使用公版APP来完成测试设备的控制。点击“下一步:人机交互”按钮,进入APP配置界面。打开使用公版APP开关。

打开后,用户可以看到如下界面:

平台为用户提供了一些预置面板,点击“更换面板”可以进行选择

本例由于是一个复合设备,没有标准面板满足,所以我们选择第二页的自定义界面2.0进行开发

点击“配置界面2.0”按钮,可以直接进入配置。选择空白面板后,进入配置工作台

我们点击中间的空白面板,先给APP更换一下背景

然后在左侧的控件区将呈现和控制的控件加入到面板上。按步骤选择内容,拖入面板,修改样式,保存。

image.png

选择“保存”时,会询问是否发布到公版APP,选择确定:

到此,云端的工作告一段落,接下来我们要演示如何通过带有直连固件的模组,快速将设备接入刚刚配置好的智能设备项目。

step2:设备端接入

将PC串口(用于模拟MCU)通过杜邦线与模组进行连接,确认连接可靠,并为模组可靠供电。

模拟连接图,白框中的PC+模组组成了待模拟的MCU+模组形式的智能设备。

模拟连接图

实际连接图

在PC端打开串口调试工具,用于模拟MCU向模组发送数据。

配置设备信息

通过 AT+IDMAU="PK","DN,"DS","PS"命令,可以将当前设备的相关激活信息传递给模组,模组拿到这些信息后,将会代表设备进行连云。我们打开测试设备详情页,获取这些设备信息。并组织出一个完整的AT命令:

AT+IDMAU="a1yOnDtomnr","lighttest1","1U4aNv6DtAQt4CwP5udx5bdFDKrqOWyz","QtKQAjyNmJzMHxdq"

将此命令通过串口调试助手发送给模组,模组将返回“OK”。

自动配网

在配置好激活信息后,就可以用前面提到的公版APP为设备配网,并绑定设备到用户账户下。APP可通过扫描下面二维码安装,安装后需要注册用户。

安装APP用

安装完成的公版APP

接下来我们需要准备用于配网的设备二维码,公版APP扫描该二维码以后,就会搜索当前网络下的待配网设备进行配网。配网二维码位于云端控制台开发工作台的“人机交互”页下

可以打开后保存至本地备用。接下来,我们通过AT指令,使模组进入配网模式。进入自动配网模式的AT指令如下

AT+IWSSTART=0

通过串口调试助手将命令发送给模组,模组将进入配网模式,配网指示灯开始闪烁。

同时,打开“云智能”APP,点击右上角的“+”号,开始添加设备。在添加设备页面中选择扫描二维码,对之前保存的

配网二维码进行扫描。接下来将待加入的wifi网络信息填写完整,“下一步”。注意:手机必须也要在此网络中。

接下来APP和模组之间会进行相关通信,自行完成配网过程。

很快就可以成功完成设备的添加,并进入到在step1中我们配置出的设备面板界面中

此时,模组配网灯也停止闪烁。

模拟数据上报

接下来我们来模拟设备进行数据上报,改变APP上的状态。设备数据上报的AT指令如下

AT+IDMPP=0,"{\"LightSwitch\":1}"

其中第一个参数0表示是否分段,第二个参数则是我们需要上报的设备属性“标识符”以及其值。此处的属性标识符就是在step1中提到的需要读者注意的部分。端侧上传的标识符必须与云端定义的一致。在本例中,我们用到的两个标识符分别是

标识符名称 类型
LightSwitch 布尔型
IndoorTemperature 浮点型

注:

  • 务必保证上传属性标识符与云端一致
  • 务必保证上传属性类型与云端定义一致

设备属性采用json格式进行上报,可以单次报一个属性,也可以单次报多个属性。但是单个命令长度不得超过模组极限。且注意发送时引号等特殊字符的转义处理。下面以上报“主灯状态”为开,“室内温度”为26.5度为例,构建一个AT指令,并通过串口助手发送给模组。

AT+IDMPP=0,"{\"LightSwitch\":1,\"IndoorTemperature\":26.5}"

模组收到相关指令后,会帮助用户完成Alink协议的打包,并上报至云端。同时,将云端的返回结果通过串口返回给MCU侧(PC串口调试助手)。确认数据上报成功后,我们可以查看APP侧面板变化。

我们可以看见,面板中灯变为打开状态,同事室内温度也更新为了26.50度,与刚才上报的数据一致。

APP反控设备

接下来,我们将尝试通过APP上的按钮对设备进行控制。我们点击APP界面上的“主灯开关”按钮。使设备进入关闭状态,此时APP上的灯泡图标也回相应变暗。同时,我们观察与模组相连的PC端串口调试助手。在串口调试助手的接收框中,展现出了来自云端的控制命令如下图:

在实际的设备收到改命令后,可以通过收到的命令的相关值对设备进行状态更改。实现云端对设备的反向控制操作。

总结

在以上的演示中,我们在设备侧通过简单的4个AT命令完成了设备与生活物联网平台的对接,实现了设备的自动配网,数据的上报以及平台对设备控制指令的下发,完成了一个完整的智能家居设备的开发过程。在设备侧大大简化了用户对接阿里云IoT平台工作量。