31

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

 5 years ago
source link: https://www.tuicool.com/articles/Ab2UJ3B
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

ZjqmQze.png!web

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

目录

运行流程

本示例有如下3个功能:

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

QbEJbq6.png!web

效果展示

视频观看地址: https://ucc-vod.alicdn.com/sv...

操作流程

环境配置

  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 源码路径。

  • 编辑  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>"

烧录运行

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

IBjumu6.png!web

源码讲解

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:

aMVFN3U.png!web

如何获取CA根证书

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

本文作者:阿里云AIoT

阅读原文

本文为云栖社区原创内容,未经允许不得转载。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK