点击免费下载
>>《AliOS Things快速开发指南》<<
或者复制该链接到浏览器完成下载或分享:https://developer.aliyun.com/topic/download?id=812
使用AliOS Things快速构建RGB灯应用
本文将基于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.创建产品。
- 单击左侧菜单栏的设备管理>产品,打开产品列表页。
- 单击创建产品进入创建产品页面。
- 参考说明配置产品信息,然后单击保存。
- 产品名称:输入产品名称,例如:xw智能灯。
-
所属品类:此处选择标准品类下的智能生活/电工照明/灯。
- 单击请选择标准品类选择框。
- 在搜索框里输入
灯
,然后单击搜索图标。
- 单击下图所示选择,选择品类。
- 单击请选择标准品类选择框。
- 联网方式:此处选择Wi-Fi。
- 数据格式:此处选择ICA 标准数据格式(Alink JSON)。
3.添加设备。
- 单击图示中前往添加进入产品所属设备列表页面。
- 单击添加设备。
- 参考说明配置设备信息,然后单击确认。
- DeviceName:输入DeviceName,例如:xwRGBLamp。
-
备注名称:输入备注名称,例如:xw智能灯设备。
- 单击下图所示前往查看。
- 单击
DeviceSecret
旁边的查看。
- 单击一键复制复制设备三元组。
- 单击下图所示前往查看。
设备三元组信息如下:
{
"ProductKey": "a1****kJ",
"DeviceName": "xwRGBLamp",
"DeviceSecret": "be8f*********b45297fc"
}
4.添加功能。
- 单击左侧菜单栏产品进入产品列表页。然后单击操作列的查看按钮。
- 单击功能定义,然后单击编辑草稿。
- 单击添加标准功能。
- 选择RGB调色,然后单击确定。
- 单击发布上线。
- 勾选确认已查看当前版本与线上版本的 比对结果,然后单击确定。
- 单击
ProductSecret
旁边的查看。
- 单击
ProductSecret
栏的复制。
ProductSecret和上面的三元组信息组成设备的四元组信息。
设备四元组信息用于后续支付宝客户端,物联网设备端开发,此处可以保存一下。
设备四元组信息如下:
{
"ProductKey": "a1******EB",
"ProductSecret": "Sj********YX",
"DeviceName": "xwRGBLamp",
"DeviceSecret": "c7*******************4c1c"
}
5.发布产品。
- 在产品详情页,单击右上角的发布,弹出确认发布产品框。
- 依次单击请确认后面的图标,然后单击发布。
步骤二:开发支付宝小程序服务端应用
支付宝小程序服务端接收支付宝小程序客户端的指令传送到阿里云IoT平台。使用Visual Studio Code开发工具,Node.js脚本语言。如果需要部署到线上或者上线小程序,还需要准备:
- ECS或者公网可访问的服务器。
- 有效域名(已备案)。
- SSL证书。
申请加入阿里巴巴小程序繁星计划,可以免费试用ECS和其他的小程序服务。
1.下载安装Node.js。
2.下载支付宝小程序服务端源码。
3.使用Visual Studio Code打开支付宝小程序服务端源码。
4.修改配置信息。
修改app/service/aliyunIoT.js文件中的config属性。
const config = {
accessKey: '<access-key>',
accessSecret: '<access-secret>',
endPoint: 'https://iot.<regionId>.aliyuncs.com',
apiVersion: '2018-01-20',
regionId: '<regionId>',
};
access-key
和access-secret
是阿里云颁发给用户访问服务所用的密钥。
- 登录阿里云控制台。
- 鼠标移至右上角头像,然后单击AccessKey 管理。
- 在AccessKey管理页面获取
accessKey
和accessSecret
。
-
regionId
是阿里云物联网平台所属地域,查看地域详情,例如:cn-shanghai。 -
endPoint
是地域所属的数据中心。阿里云物联网平台有多个地域,不同地域有不同的数据中心,例如:https://iot.cn-shanghai.aliyuncs.com。
-
5.依次单击上面菜单栏的Terminal>New Terminal打开Terminal窗口。
6.在Terminal窗口执行以下命令。
$ npm i
$ npm run dev
7.使用浏览器访问http://127.0.0.1:7001/。
说明:支付宝小程序服务端源码适用于AliOS Things 3.1版本。
步骤三:开发支付宝小程序客户端应用
支付宝小程序客户端向支付宝小程序服务端发送RGB灯颜色指令。使用小程序客户端开发工具打开支付宝小程序客户端程序,并修改配置信息进行运行。了解支付宝小程序开发流程:支付宝小程序快速开始。
1.下载安装支付宝小程序客户端开发工具。
2.下载支付宝小程序客户端源码。
3.用小程序开发工具打开支付宝小程序客户端源码。
- 打开小程序开发者工具客户端。然后单击客户端右上角打开项目。
- 选择客户端源码文件,然后单击选择文件夹。
- 单击打开。
- 首次打开源码时提示安装依赖,单击确认安装依赖。
如果首次没有安装依赖,可以按下图操作手动安装所需依赖。
4.修改配置。
打开utils/device_api.js文件,修改以下三个属性:
const defaultServerURL = '<your-domain>';
const defaultProductKey = '<product-key>';
const defaultDeviceName = '<device-name>';
- 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
2.下载设备端源码。
3.用开发工具Visual Studio Code打开设备端源码。
4.修改设备端配置。
- 打开app_entry.c文件,修改以下属性。
设备认证信息:
#define PRODUCT_KEY "<ProductKey>"
#define PRODUCT_SECRET "<ProductSecret>"
#define DEVICE_NAME "<DeviceName>"
#define DEVICE_SECRET "<DeviceSecret>"
- ProductKey为设备四元组信息ProductKey的值。
- ProductSecret为设备四元组信息ProductSecret的值。
- DeviceName为设备四元组信息DeviceName的值。
- DeviceSecret为设备四元组信息DeviceSecret的值。
WiFi信息:
#define WIFI_SSID "<WIFI_SSID>"
#define WIFI_PASSWD "<WIFI_PASSWD>"
- WIFI_SSID为手机热点的设备名称,例如:aiotesp8266。
- WIFI_PASSWD为手机热点的密码,例如:12345678abc。
5.编译。
单击上面导航栏的Terminal>New Terminal,在下面的Terminal窗口输入aos make
进行编译。
输出类似下图信息表示编译成功。
6.烧录。
- 通过USB接口连接D1 WiFi设备。
- 在Terminal窗口输入
aos upload
进行烧录。 - 输入
1
,然后按enter键。
输出类似下图信息表示烧录成功。
步骤五:通过手机热点进行设备配网
前面的开发工作已经完成,现在是最关键的一步。手机热点信息已经通过步骤四烧录到设备中,这里打开手机热点,设备会自动进行配网连接,通过串口监控可以查看配网日志信息。配网成功支付宝小程序客户端设备状态变为在线,阿里云IoT平台设备状态变为在线。
1.打开手机热点进行网络适配。
2.单击设备端的图标进行串口监控,查看设备日志。
3.选择波特率为961200,然后单击打开。
- Web Serial窗口输出连接信息。
- 支付宝小程序客户端重新编译后,设备状态为在线。
- 在阿里云物联网平台查看设备状态为在线。
步骤六:通过支付宝小程序控制RGB灯颜色
D1 WiFi设备连上RGB灯,就可以通过支付宝小程序控制RGB灯的颜色。
1.D1 WiFi设备连接RGB灯。
接线方式如下:
D1 WiFi引脚 | RGB灯引脚 |
---|---|
GPIO12 | Blue(蓝色灯引脚) |
GPIO13 | Red(红色灯引脚) |
GPIO15 | Green(绿色灯引脚) |
GND | GND(负极) |
2.在支付宝小程序客户端选择绿色,RGB灯颜色变为绿色。
3.在支付宝小程序客户端选择蓝色,RGB灯颜色变为蓝色。
4.在支付宝小程序客户端选择红色,RGB灯颜色变为红色。