簡介:?攝像頭配網(wǎng) + 釘釘群通知 + 天氣顯示
給AliOS Things一顆STAR(前往GitHub關(guān)注我們)
目錄
運(yùn)行流程
本示例有如下3個(gè)功能:
攝像頭配網(wǎng)。
推送消息到釘釘群旗们。
顯示當(dāng)天天氣。
效果展示
操作流程
環(huán)境配置
AliOS Things環(huán)境安裝曹阔,參考:AliOS-Things-Environment-Setup奢米。
AliOS Things 3.0應(yīng)用開發(fā)環(huán)境搭建痢士,參考AliOS Things 3.0 應(yīng)用開發(fā)指南。
準(zhǔn)備developerkit開發(fā)板。
下載應(yīng)用開發(fā)源碼:developerkit_app.zip?豆茫。
使用vscode打開developerkit_app 源碼火脉。
源碼目錄結(jié)構(gòu)
.├── Config.in├── README.md├── aos.mk├── gui# gui顯示方援,包括進(jìn)度條笛丙、天氣界面等├──http# https client應(yīng)用笨鸡,包括上報(bào)消息到釘釘群,獲取天氣數(shù)據(jù)等├── k_app_config.h├── main.c# 主入口函數(shù)└── qr_decode# 攝像頭掃碼識別
配置
更改AOS_SDK_PATH路徑
編輯?.aos:
AOS_SDK_PATH=/Users/xxw/workspace/github/AliOS-ThingsDEPENDENCIES=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源碼路徑。
更改釘釘群機(jī)器人的token
更改http/http_request.c中的DINGTALK_TOKEN為你的釘釘群token,點(diǎn)擊這里了解詳細(xì)說明:
/* dingtalk token */#defineDINGTALK_TOKEN"<YOUR-DINGTALK-TOKEN>"
更改天氣api的appcode
更改http/http_request.c中的WEATHER_APPCODE為你的appcode童社,點(diǎn)擊這里了解詳細(xì)說明:
/* weather api appcode */#defineWEATHER_APPCODE"<YOUR-WEATHER-APPCODE>"
燒錄運(yùn)行
下載燒錄并運(yùn)行,按照配網(wǎng)演示流程即可顯示天氣界面忘嫉。其中配網(wǎng)二維碼如下:
源碼講解
QR掃碼部分
本demo使用developerkit開發(fā)板的攝像頭,通過攝像頭掃二維碼獲取到wifi信息,然后連接到二維碼描滔。配網(wǎng)二維碼中的wifi信息格式為:yunqiwifi&<ssid>&<passwd>,比如wifi名稱為aiot铡原,密碼為12345678卵洗,那配網(wǎng)二維碼中的wifi信息為:yunqiwifi&aiot&12345678本橙。
當(dāng)然也可以用網(wǎng)上的二維碼生成網(wǎng)站自己生成二維碼:https://cli.im/?役纹。
GUI部分
本demo基于littlevGL繪制了簡單的UI交互界面促脉,使用了littlevGL如下組件:
其中字體圖標(biāo)和中文字體在Iconfont中生成,也可以到FontEditor里面編輯字體誉尖,得到的ttf文件通過littlevGL提供的Font Converter在線工具轉(zhuǎn)化為C文件铡恕。
https client部分
本示例使用到了AliOS Things 3.0提供的httpc組件,httpc組件支持多種RESTful的API調(diào)用撤防,包括GET无牵、POST扮念、PUT迁匠、HEAD等,也支持https安全協(xié)議。
1. 釘釘群機(jī)器人:
本示例使用到了釘釘群自定義機(jī)器人的webhook功能滋捶,當(dāng)設(shè)備上線后,會主動發(fā)送消息到釘釘群中炒考,原理就是通過https client發(fā)送POST數(shù)據(jù)到機(jī)器人webhook中知给,就能夠在釘釘群中顯示相應(yīng)POST的數(shù)據(jù)轩勘,該數(shù)據(jù)也支持markdown格式花墩。
了解釘釘群自定義機(jī)器人如何運(yùn)作的可以參考:自定義機(jī)器人。
2. 天氣API:
本示例使用到了阿里云API云市場的天氣API:全國天氣預(yù)報(bào)查詢仇箱、實(shí)時(shí)天氣、24小時(shí)天氣渊额、景區(qū)天氣况木、預(yù)報(bào)7天/15天【支持高并發(fā)】【低延遲】,可以免費(fèi)調(diào)用旬迹。請購買該應(yīng)用(0元免費(fèi)購買)火惊,然后獲取到相應(yīng)的訪問appcode:
如何獲取CA根證書
本示例里面使用的https接口都是安全加密的接口,需要配置CA root證書才能夠正常訪問這些接口奔垦,如何獲取https網(wǎng)站的ca證書請參考:導(dǎo)出https網(wǎng)站證書屹耐。