AliOS Things 3.0 应用笔记:摄像头配网 + 钉钉群通知 + 天气显示


AliOS Things 3.0 应用笔记:摄像头配网 + 钉钉群通知 + 天气显示

作者:阿里云AIoT

运行流程

本示例有如下3个功能:

  1. 摄像头配网。
  2. 推送消息到钉钉群。
  3. 显示当天天气。

AliOS Things 3.0 应用笔记:摄像头配网 + 钉钉群通知 + 天气显示

效果展示

点击查看 展示视频

操作流程

环境配置

  1. AliOS Things 环境安装,参考:AliOS-Things-Environment-Setup
  2. AliOS Things 3.0 应用开发环境搭建,参考:AliOS Things 3.0 应用开发指南
  3. 准备 developerkit 开发板。
  4. 下载应用开发源码:developerkit_app.zip

使用 vscode 打开developerkit_app 源码。

源码目录结构

.
├── Config.in
├── README.md
├── aos.mk
├── gui               # gui显示,包括进度条、天气界面等
├── http              # https client应用,包括上报消息到钉钉群,获取天气数据等
├── k_app_config.h
├── main.c            # 主入口函数
└── qr_decode         # 摄像头扫码识别

配置

更改 AOS_SDK_PATH 路径
  • 编辑 .aos:
AOS_SDK_PATH=/Users/xxw/workspace/github/AliOS-Things
DEPENDENCIES=
MD5SUM_HEADER=a1a4b53ab917fb4a6cb08289b6007fe0

更改 /Users/xxw/workspace/github/AliOS-Things 为你的AliOS-Things源码路径。

windows用户的路径示例为:C:/workspace/github/AliOS-Things,注意路径中用的是斜杠/,不是反斜杠\

  • 编辑 Config.in:
......
config AOS_SDK_PATH
    string
    default "/Users/xxw/workspace/github/AliOS-Things"
......

更改 /Users/xxw/workspace/github/AliOS-Things 为你的AliOS-Things源码路径。

更改钉钉群机器人的 token

更改http/http_request.c中的DINGTALK_TOKEN为你的钉钉群token,点击这里了解详细说明:

/* dingtalk token */
#define DINGTALK_TOKEN "<YOUR-DINGTALK-TOKEN>"

更改天气 api 的 appcode

更改http/http_request.c中的WEATHER_APPCODE为你的 appcode,点击这里了解详细说明:

/* weather api appcode */
#define WEATHER_APPCODE "<YOUR-WEATHER-APPCODE>"

烧录运行

下载烧录并运行,按照配网演示流程即可显示天气界面。其中配网二维码如下:
AliOS Things 3.0 应用笔记:摄像头配网 + 钉钉群通知 + 天气显示

源码讲解

QR 扫码部分

本 demo 使用 developerkit 开发板的摄像头,通过摄像头扫二维码获取到 wifi 信息,然后连接到二维码。配网二维码中的 wifi 信息格式为:yunqiwifi&<ssid>&<passwd>,比如 wifi 名称为aiot,密码为12345678,那配网二维码中的 wifi 信息为:yunqiwifi&aiot&12345678

当然也可以用网上的二维码生成网站自己生成二维码:https://cli.im/

GUI 部分

本 demo 基于 littlevGL 绘制了简单的UI交互界面,使用了 littlevGL 如下组件:

其中字体图标和中文字体在 Iconfont 中生成,也可以到 FontEditor 里面编辑字体,得到的 ttf 文件通过 littlevGL提供的 Font Converter 在线工具转化为 C 文件。

https client 部分

本示例使用到了 AliOS Things 3.0 提供的 httpc 组件,httpc 组件支持多种 RESTful 的 API 调用,包括 GET、POST、PUT、HEAD 等,也支持 https 安全协议。

1. 钉钉群机器人:

本示例使用到了钉钉群自定义机器人的 webhook 功能,当设备上线后,会主动发送消息到钉钉群中,原理就是通过 https client 发送 POST 数据到机器人 webhook 中,就能够在钉钉群中显示相应 POST 的数据,该数据也支持markdown 格式。

了解钉钉群自定义机器人如何运作的可以参考:自定义机器人

2. 天气 API:

本示例使用到了阿里云 API 云市场的天气 API:全国天气预报查询、实时天气、24 小时天气、景区天气、预报 7 天/ 15 天【支持高并发】【低延迟】,可以免费调用。请购买该应用( 0 元免费购买),然后获取到相应的访问 appcode:
AliOS Things 3.0 应用笔记:摄像头配网 + 钉钉群通知 + 天气显示

如何获取 CA 根证书

本示例里面使用的 https 接口都是安全加密的接口,需要配置 CA root 证书才能够正常访问这些接口,如何获取  https 网站的 ca 证书请参考:导出 https 网站证书

上一篇:Zabbix 添加WEB监控(学习笔记十一)


下一篇:[asp.net]C#实现json的序列化和反序列化