天天看點

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 網站證書

繼續閱讀