"本文将基于 AliOS Things 3.1 系统搭建应用,此应用通过支付宝小程序控制 RGB 灯的颜色。 一、背景信息 支付宝小程序服务端主要功能是为支付宝小程序提供 API SaaS 服务,同时通过 OpenAPI SDK 对接 阿里云物联网(IoT)平台。 支付宝小程序客户端主要功能是显示前端控制界面,通过 https API 发送指令控制设备属性。 设备端程序主要功能是基于 AliOS Things 3.1 系统适配 D1 WiFi 设备开发。 阿里云物联网平台主要功能是提供安全可靠的设备连接通信能力,支持设备数据采集上云,规 则引擎流转数据和云端数据下发设备端。此外,也提供方便快捷的设备管理能力,支持物模型定 义,数据结构化存储,和远程调试、监控、运维。 硬件设备主要功能是通过 D1 WiFi 设备连接网络,接收支付宝小程序的指令控制 RGB 灯的颜色。 D1 WiFi 设备的芯片型号是 ESP 8266。 步骤一:管理阿里云物联网平台设备 支付宝小程序和设备端是通过阿里云 IoT 平台进行通信的,具体是通过设备四元组信息进行连接 的。所以要先在阿里云物联网平台创建产品,在产品下添加对应型号的设备,产生该设备四元组信息。 要有阿里云账号并开通阿里云物联网平台服务。 1. 登录阿里云物联网平台。 2. 创建产品。 a. 单击左侧菜单栏的设备管理>产品,打开产品列表页。 b. 单击创建产品进入创建产品页面。 c. 参考说明配置产品信息,然后单击保存。 产品名称:输入产品名称,例如:xw 智能灯。 所属品类:此处选择标准品类下的智能生活/电工照明/灯。 3. 单击请选择标准品类选择框。 4. 在搜索框里输入灯,然后单击搜索图标。 5. 单击下图所示选择,选择品类。 联网方式:此处选择 Wi-Fi。 数据格式:此处选择 ICA 标准数据格式(Alink JSON)。 6. 添加设备。 a. 单击图示中前往添加进入产品所属设备列表页面。 b. 单击添加设备。 c. 参考说明配置设备信息,然后单击确认。 DeviceName:输入 DeviceName,例如:xwRGBLamp。 备注名称:输入备注名称,例如:xw 智能灯设备。 d. 单击前往查看。 e. 单击 DeviceSecret 旁边的查看。 f. 单击一键复制复制设备三元组。 设备三元组信息如下: { ""ProductKey"": ""a1kJ"", ""DeviceName"": ""xwRGBLamp"", ""DeviceSecret"": ""be8fb45297fc"" } 7. 添加功能。 a. 单击左侧菜单栏产品进入产品列表页。然后单击操作列的查看按钮。 b. 单击功能定义,然后单击编辑草稿。c. 单击添加标准功能。d. 选择 RGB 调色,然后单击确定。 e. 单击发布上线。 f. 勾选确认已查看当前版本与线上版本的比对结果,然后单击确定。 g. 单击 ProductSecret 旁边的查看。 h. 单击 ProductSecret 栏的复制。 ProductSecret 和上面的三元组信息组成设备的四元组信息。 设备四元组信息用于后续支付宝客户端,物联网设备端开发,此处可以保存一下。 设备四元组信息如下: {""ProductKey"": ""a1EB"", ""ProductSecret"": ""Sj*****YX"", ""DeviceName"": ""xwRGBLamp"", ""DeviceSecret"": ""c7*******************4c1c"" } 8. 发布产品。 a. 在产品详情页,单击右上角的发布,弹出确认发布产品框。 b. 依次单击请确认后面的图标,然后单击发布。 步骤二:开发支付宝小程序服务端应用 支付宝小程序服务端接收支付宝小程序客户端的指令传送到阿里云 IoT 平台。使用 Visual Studio Code 开发工具,Node.js 脚本语言。如果需要部署到线上或者上线小程序,还需要准备: ECS 或者公网可访问的服务器。 有效域名(已备案)。 SSL 证书。 申请加入阿里巴巴小程序繁星计划,可以免费试用 ECS 和其他的小程序服务。 1. 下载安装 Node.js。 2. 下载支付宝小程序服务端源码。 3. 使用 Visual Studio Code 打开支付宝小程序服务端源码。 4. 修改配置信息。 修改 app/service/aliyunIoT.js 文件中的 config 属性。 oaccess-key 和 access-secret 是阿里云颁发给用户访问服务所用的密钥。 a. 登录阿里云控制台。 b. 鼠标移至右上角头像,然后单击 AccessKey 管理。 c. 在 AccessKey 管理页面获取 accessKey 和 accessSecret。 d. oregionId 是阿里云物联网平台所属地域,查看地域详情,例如:cn-shanghai。 oendPoint 是地域所属的数据中心。阿里云物联网平台有多个地域,不同地域有不同的数据中心, 例如:https://iot.cn-shanghai.aliyuncs.com。 5. 依次单击上面菜单栏的 Terminal>New Terminal 打开 Terminal 窗口。 6. 在 Terminal 窗口执行以下命令。
$ npm i $ npm run dev
使用浏览器访问 http://127.0.0.1:7001/。 说明:支付宝小程序服务端源码适用于 AliOS Things 3.1 版本。 步骤三:开发支付宝小程序客户端应用 支付宝小程序客户端向支付宝小程序服务端发送 RGB 灯颜色指令。使用小程序客户端开发工具打 开支付宝小程序客户端程序,并修改配置信息进行运行。了解支付宝小程序开发流程:支付宝小程序 快速开始。 1. 下载安装支付宝小程序客户端开发工具。 2. 下载支付宝小程序客户端源码。 3. 用小程序开发工具打开支付宝小程序客户端源码。 a. 打开小程序开发者工具客户端。然后单击客户端右上角打开项目。 b. 选择客户端源码文件,然后单击选择文件夹。 c. 单击打开。 d. 首次打开源码时提示安装依赖,单击确认安装依赖。 如果首次没有安装依赖,可以按下图操作手动安装所需依赖。修改配置。 打开 utils/device_api.js 文件,修改以下三个属性: const defaultServerURL = '
'; const defaultProductKey = '
'; const defaultDeviceName = '
'; your-domain 为支付宝小程序服务端 API 地址,例如:http://localhost:7001/api/device。 product-key 为设备四元组信息中 ProductKey 值。 device-name 为设备四元组信息中 DeviceName 值。 步骤四:开发设备端应用 要先安装好设备对应的驱动,本例中 D1 WiFi 设备对应的驱动为 CH340。 1. 修改 AliOS Things3.1 源码。 由于设备端应用需要依赖 pwm 库,所以要在 AliOS Things 系统中加入 pwm 库。 打开 platform/mcu/esp8266/aos.mk 文件,在第 54 行下面加入以下代码。 $(NAME)_PREBUILT_LIBRARY += bsp/lib/libpwm.a
下载设备端源码。 3. 用开发工具 Visual Studio Code 打开设备端源码。修改设备端配置。5. 编译。 单击上面导航栏的 Terminal>New Terminal,在下面的 Terminal 窗口输入 aos make 进行编译。烧录。a. 通过 USB 接口连接 D1 WiFi 设备。 b. 在 Terminal 窗口输入 aos upload 进行烧录。 步骤五:通过手机热点进行设备配网 前面的开发工作已经完成,现在是最关键的一步。手机热点信息已经通过步骤四烧录到设备中, 这里打开手机热点,设备会自动进行配网连接,通过串口监控可以查看配网日志信息。配网成功支付 宝小程序客户端设备状态变为在线,阿里云 IoT 平台设备状态变为在线。 1. 打开手机热点进行网络适配。 2. 单击设备端的图标 进行串口监控,查看设备日志。 3. 选择波特率为 961200,然后单击打开。步骤六:通过支付宝小程序控制 RGB 灯颜色 D1 WiFi 设备连上 RGB 灯,就可以通过支付宝小程序控制 RGB 灯的颜色。