介绍
本示例有如下3个功能:
- 摄像头配网。
- 推送消息到钉钉群。
- 显示当天天气。

效果展示
点击查看
展示视频。
操作流程
环境配置
- AliOS Things环境安装,参考: AliOS-Things-Environment-Setup
- AliOS Things 3.0应用开发环境搭建,参考 AliOS Things 3.0 应用开发指南
- 准备developerkit开发板。
- 下载应用开发源码: 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
源码路径。
-
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>"
烧录运行
下载烧录并运行,按照
配网演示流程即可显示天气界面。其中配网二维码如下:
源码讲解
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:
如何获取CA根证书
本示例里面使用的https接口都是安全加密的接口,需要配置CA root证书才能够正常访问这些接口,如何获取https网站的ca证书请参考:
导出https网站证书