
作者:阿裡雲AIoT
運作流程
本示例有如下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
源碼路徑。
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>"
燒錄運作
下載下傳燒錄并運作,按照
配網示範流程即可顯示天氣界面。其中配網二維碼如下:
源碼講解
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 網站證書