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

简介: 摄像头配网 + 钉钉群通知 + 天气显示

image.png

给AliOS Things一颗STAR(前往GitHub关注我们)


目录

运行流程

本示例有如下3个功能:

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

undefined

效果展示

操作流程

环境配置

  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>"

烧录运行

下载烧录并运行,按照配网演示流程即可显示天气界面。其中配网二维码如下:

|240x240|center

源码讲解

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:

undefined

如何获取CA根证书

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

相关文章
|
3月前
在钉钉开放平台中,事件订阅功能允许你的应用订阅钉钉的各种事件
在钉钉开放平台中,事件订阅功能允许你的应用订阅钉钉的各种事件【1月更文挑战第20天】【1月更文挑战第98篇】
134 1
|
3月前
|
开发者
电子好书发您分享《钉钉应用开发者速成手册》
电子好书发您分享《钉钉应用开发者速成手册》
123 2
|
3月前
|
机器人 API
钉钉里{"code: 400, 错误描述:机器人权限校验不通过;解决方案:请登陆开放平台后台,检查机器人是否归属于token对应的主应用名下 请问场景机器人-发消息-这个报错什么原因导致的啊?
钉钉里{"code: 400, 错误描述:机器人权限校验不通过;解决方案:请登陆开放平台后台,检查机器人是否归属于token对应的主应用名下 请问场景机器人-发消息-这个报错什么原因导致的啊?
125 0
|
4月前
|
移动开发
钉钉H5微应用配置IP,应用首页地址报错:app url exceeds max length limit,这个怎么处理?
钉钉H5微应用配置IP,应用首页地址报错:app url exceeds max length limit,这个怎么处理?
287 0
|
4月前
|
开发者
钉钉酷应用链接增强必须要回调嘛?
钉钉酷应用链接增强必须要回调嘛?
29 0
|
18天前
|
移动开发
钉钉PC端点击消息通知的链接显示该应用已停用或未授权你的访问
开发的H5微应用能发送含详情页链接的卡片消息至用户移动端,用户可顺利跳转。然而,在PC端点击相同链接会显示“应用已停用或未授权”,提示联系管理员,附带图片说明问题。
|
26天前
|
监控 Serverless 开发者
Serverless 应用引擎常见问题之应用重启或者挂了通过钉钉发消息提醒如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
29 1
|
1月前
钉钉开放平台支持多种类型的应用
【2月更文挑战第19天】钉钉开放平台支持多种类型的应用
28 6
|
4月前
|
API 文件存储
在钉钉的企业内部应用中
在钉钉的企业内部应用中
38 2
|
5月前
|
存储 开发者
钉钉企业内部应用与第三方企业应用的主要区别
钉钉企业内部应用与第三方企业应用的主要区别
142 1