《AliOS Things快速开发指南》来了!

点击免费下载
>>《AliOS Things快速开发指南》<<

或者复制该链接到浏览器完成下载或分享:https://developer.aliyun.com/topic/download?id=812

《AliOS Things快速开发指南》来了!

使用AliOS Things快速构建RGB灯应用

本文将基于AliOS Things 3.1系统搭建应用,此应用通过支付宝小程序控制RGB灯的颜色。

背景信息

整体流程图如下:
《AliOS Things快速开发指南》来了!

  • 支付宝小程序服务端主要功能是为支付宝小程序提供API SaaS服务,同时通过OpenAPI SDK对接阿里云物联网(IoT)平台。
  • 支付宝小程序客户端主要功能是显示前端控制界面,通过https API发送指令控制设备属性。
  • 设备端程序主要功能是基于AliOS Things 3.1系统适配D1 WiFi设备开发。
  • 阿里云物联网平台主要功能是提供安全可靠的设备连接通信能力,支持设备数据采集上云,规则引擎流转数据和云端数据下发设备端。此外,也提供方便快捷的设备管理能力,支持物模型定义,数据结构化存储,和远程调试、监控、运维。
  • 硬件设备主要功能是通过D1 WiFi设备连接网络,接收支付宝小程序的指令控制RGB灯的颜色。D1 WiFi设备的芯片型号是ESP 8266。

步骤一:管理阿里云物联网平台设备

支付宝小程序和设备端是通过阿里云IoT平台进行通信的,具体是通过设备四元组信息进行连接的。所以要先在阿里云物联网平台创建产品,在产品下添加对应型号的设备,产生该设备四元组信息。要有阿里云账号并开通阿里云物联网平台服务。
1.登录阿里云物联网平台
2.创建产品。

  • 单击左侧菜单栏的设备管理>产品,打开产品列表页。
    《AliOS Things快速开发指南》来了!
  • 单击创建产品进入创建产品页面。
  • 参考说明配置产品信息,然后单击保存
    《AliOS Things快速开发指南》来了!
  • 产品名称:输入产品名称,例如:xw智能灯。
  • 所属品类:此处选择标准品类下的智能生活/电工照明/灯。

    • 单击请选择标准品类选择框。
      《AliOS Things快速开发指南》来了!
    • 在搜索框里输入,然后单击搜索图标。
      《AliOS Things快速开发指南》来了!
    • 单击下图所示选择,选择品类。
      《AliOS Things快速开发指南》来了!
  • 联网方式:此处选择Wi-Fi。
  • 数据格式:此处选择ICA 标准数据格式(Alink JSON)。

3.添加设备。

  • 单击图示中前往添加进入产品所属设备列表页面。
    《AliOS Things快速开发指南》来了!
  • 单击添加设备。
    《AliOS Things快速开发指南》来了!
  • 参考说明配置设备信息,然后单击确认
    《AliOS Things快速开发指南》来了!
  • DeviceName:输入DeviceName,例如:xwRGBLamp。
  • 备注名称:输入备注名称,例如:xw智能灯设备。

    • 单击下图所示前往查看
      《AliOS Things快速开发指南》来了!
    • 单击DeviceSecret旁边的查看
      《AliOS Things快速开发指南》来了!
    • 单击一键复制复制设备三元组。
      《AliOS Things快速开发指南》来了!

设备三元组信息如下:

{
  "ProductKey": "a1****kJ",
  "DeviceName": "xwRGBLamp",
  "DeviceSecret": "be8f*********b45297fc"
}

4.添加功能。

  • 单击左侧菜单栏产品进入产品列表页。然后单击操作列的查看按钮。
    《AliOS Things快速开发指南》来了!
  • 单击功能定义,然后单击编辑草稿
    《AliOS Things快速开发指南》来了!
  • 单击添加标准功能
    《AliOS Things快速开发指南》来了!
  • 选择RGB调色,然后单击确定
    《AliOS Things快速开发指南》来了!
  • 单击发布上线
    《AliOS Things快速开发指南》来了!
  • 勾选确认已查看当前版本与线上版本的 比对结果,然后单击确定
    《AliOS Things快速开发指南》来了!
  • 单击ProductSecret旁边的查看
    《AliOS Things快速开发指南》来了!
  • 单击ProductSecret栏的复制
    《AliOS Things快速开发指南》来了!

ProductSecret和上面的三元组信息组成设备的四元组信息。
设备四元组信息用于后续支付宝客户端,物联网设备端开发,此处可以保存一下。
设备四元组信息如下:

{
  "ProductKey": "a1******EB",
  "ProductSecret": "Sj********YX",
  "DeviceName": "xwRGBLamp",
  "DeviceSecret": "c7*******************4c1c"
}

5.发布产品。

  • 在产品详情页,单击右上角的发布,弹出确认发布产品框。
    《AliOS Things快速开发指南》来了!
  • 依次单击请确认后面的图标,然后单击发布
    《AliOS Things快速开发指南》来了!

步骤二:开发支付宝小程序服务端应用

支付宝小程序服务端接收支付宝小程序客户端的指令传送到阿里云IoT平台。使用Visual Studio Code开发工具,Node.js脚本语言。如果需要部署到线上或者上线小程序,还需要准备:

  • ECS或者公网可访问的服务器。
  • 有效域名(已备案)。
  • SSL证书。

申请加入阿里巴巴小程序繁星计划,可以免费试用ECS和其他的小程序服务。
1.下载安装Node.js
2.下载支付宝小程序服务端源码
3.使用Visual Studio Code打开支付宝小程序服务端源码。
《AliOS Things快速开发指南》来了!
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-keyaccess-secret是阿里云颁发给用户访问服务所用的密钥。

  • 登录阿里云控制台
  • 鼠标移至右上角头像,然后单击AccessKey 管理
    《AliOS Things快速开发指南》来了!
  • 在AccessKey管理页面获取accessKeyaccessSecret
    《AliOS Things快速开发指南》来了!

5.依次单击上面菜单栏的Terminal>New Terminal打开Terminal窗口。
《AliOS Things快速开发指南》来了!
6.在Terminal窗口执行以下命令。

$ npm i
$ npm run dev

7.使用浏览器访问http://127.0.0.1:7001/
《AliOS Things快速开发指南》来了!
说明:支付宝小程序服务端源码适用于AliOS Things 3.1版本。

步骤三:开发支付宝小程序客户端应用

支付宝小程序客户端向支付宝小程序服务端发送RGB灯颜色指令。使用小程序客户端开发工具打开支付宝小程序客户端程序,并修改配置信息进行运行。了解支付宝小程序开发流程:支付宝小程序快速开始
1.下载安装支付宝小程序客户端开发工具
2.下载支付宝小程序客户端源码
3.用小程序开发工具打开支付宝小程序客户端源码。

  • 打开小程序开发者工具客户端。然后单击客户端右上角打开项目
    《AliOS Things快速开发指南》来了!
  • 选择客户端源码文件,然后单击选择文件夹
    《AliOS Things快速开发指南》来了!
  • 单击打开
    《AliOS Things快速开发指南》来了!
  • 首次打开源码时提示安装依赖,单击确认安装依赖。
    《AliOS Things快速开发指南》来了!

如果首次没有安装依赖,可以按下图操作手动安装所需依赖。
《AliOS Things快速开发指南》来了!

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

《AliOS Things快速开发指南》来了!
2.下载设备端源码
3.用开发工具Visual Studio Code打开设备端源码。
《AliOS Things快速开发指南》来了!
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。

《AliOS Things快速开发指南》来了!

5.编译。
单击上面导航栏的Terminal>New Terminal,在下面的Terminal窗口输入aos make进行编译。
《AliOS Things快速开发指南》来了!
输出类似下图信息表示编译成功。
《AliOS Things快速开发指南》来了!
6.烧录。

  • 通过USB接口连接D1 WiFi设备。
    《AliOS Things快速开发指南》来了!
  • Terminal窗口输入aos upload进行烧录。
  • 输入1,然后按enter键。
    《AliOS Things快速开发指南》来了!

输出类似下图信息表示烧录成功。

《AliOS Things快速开发指南》来了!

步骤五:通过手机热点进行设备配网

前面的开发工作已经完成,现在是最关键的一步。手机热点信息已经通过步骤四烧录到设备中,这里打开手机热点,设备会自动进行配网连接,通过串口监控可以查看配网日志信息。配网成功支付宝小程序客户端设备状态变为在线,阿里云IoT平台设备状态变为在线。
1.打开手机热点进行网络适配。
2.单击设备端的《AliOS Things快速开发指南》来了!图标进行串口监控,查看设备日志。
3.选择波特率为961200,然后单击打开
《AliOS Things快速开发指南》来了!

  • Web Serial窗口输出连接信息。

《AliOS Things快速开发指南》来了!

  • 支付宝小程序客户端重新编译后,设备状态为在线。

《AliOS Things快速开发指南》来了!

  • 在阿里云物联网平台查看设备状态为在线。

《AliOS Things快速开发指南》来了!

步骤六:通过支付宝小程序控制RGB灯颜色

D1 WiFi设备连上RGB灯,就可以通过支付宝小程序控制RGB灯的颜色。
1.D1 WiFi设备连接RGB灯。
接线方式如下:

D1 WiFi引脚 RGB灯引脚
GPIO12 Blue(蓝色灯引脚)
GPIO13 Red(红色灯引脚)
GPIO15 Green(绿色灯引脚)
GND GND(负极)

2.在支付宝小程序客户端选择绿色,RGB灯颜色变为绿色。
《AliOS Things快速开发指南》来了!
《AliOS Things快速开发指南》来了!
3.在支付宝小程序客户端选择蓝色,RGB灯颜色变为蓝色。
《AliOS Things快速开发指南》来了!
《AliOS Things快速开发指南》来了!
4.在支付宝小程序客户端选择红色,RGB灯颜色变为红色。
《AliOS Things快速开发指南》来了!
《AliOS Things快速开发指南》来了!

上一篇:使用AliOS Things快速构建温度计应用

上一篇:使用线上的开发板做开发调试 |《AliOS Things快速开发指南》


下一篇:Linux萌芽 | 计算机百年趣味史(下)第11篇