【安信可開源硬件】小安派Eyes-天氣站,酷炫DIY一起來~
前言
前幾天不是剛發(fā)布小安派Eyes-S1/S2兩款開源的板子,于是就有大佬問了,那兩款板子怎么玩?感謝各位大佬的捧場~

小安在這里提示下大家,小安派Eyes是一款帶觸摸屏+音頻+攝像頭的一款開發(fā)板,最近剛好桌面少了個擺件,小安打算先從最容易也最有意思的屏幕下手,搞一個天氣站。

一、功能分析

二、Gui Guider模擬運行結(jié)果
小安在這里使用的UI上位機是NXP的GuiGuider軟件,官方下載地址:https://www.nxp.com.cn/design/software/development-software/gui-guider:GUI-GUIDER
也可以到本文尾部連接下載資料包,里面有GuiGuider 軟件及本次項目的GuiGuider 工程。
成果如下:

三、UI 代碼移植
1.文件移植
因為在此之前,我們已經(jīng)把屏幕和觸摸的驅(qū)動寫好了,并且在LVGL 下測試成功,所以本文不會介紹Lvgl 的移植。Gui Guider 在成功運行之后,才會生成最新的UI代碼。需要移植的程序代碼如下:

以上連個文件夾復制到工程的UI位置:Ai-Pi_Eeys/demos/240X320_ui。
因為M6X_SDK中的Lvgl沒有dclock 時鐘組件,所以也要把dclock 移植到SDK當中。dclock的目錄如下:M6x_Eyes\lvgl\src\extra\widgets

把整個dclock文件夾復制到:Ai-Pi_Eeys\aithinker_Ai-M6X_SDK\components\graphics\lvgl\extra\widgets目錄下。

2.代碼修改
1)工程添加UI代碼
只需要在CMakeLists.txt 中添加以下內(nèi)容:


然后在
main.c
中引用gui_guider.h
和custom.h
,并定義lv_ui
全局變量,且使用setup_ui()
?函數(shù)進行初始化:

2)HTTPS GET請求及時間獲取
然后隨手把HTTPS請求天氣的邏輯實現(xiàn)一下,大概就是寫一個HTTPS的客戶端,然后發(fā)送請求,時間可以在響應頭中獲取,
Date
參數(shù)中獲取,北京時間只要把小時+8就OK,比如:

天氣情況獲取,我們這里使用的是天氣API的免費未來七天天氣接口:http://www.tianqiapi.com/index/doc?version=week
請求數(shù)據(jù)如下:

所以天氣站最高可以顯示未來七天的天氣情況,我們只顯示未來三天的數(shù)據(jù)。
3)WiFi 連接功能
天氣站使用的屏幕是電容觸摸屏,所以可以通過觸摸輸入WiFi 名稱及密碼連接WiFi。當我們輸入完成后,點擊確定按鈕即可觸發(fā)WiFi連接,天氣站在連接成功WiFi之后,會保存當前的路由信息,下次重啟時可以自動連接這次的WiFi。按鈕的點擊事件及讀取輸入的WiFi名稱及密碼代碼:

四、實際運行

哇哦~小安覺得這個花了一天開發(fā)出來的天氣站單純從界面還是可以的,它就是少了個美麗的外殼。個人的想法有限,不知道大家有什么好的想法,說不定我們可以幫你實現(xiàn)呢?來“安信可科技”b站官方號留言,告訴小安你們的想法吧~
六、資料
文章原博客鏈接:https://blog.csdn.net/Boantong_/article/details/131422515
安信可官網(wǎng)docs:https://docs.ai-thinker.com/wifi
M6x-SDK編程指南:https://bouffalolab.github.io/bl_iot_sdk
小安派-Eyes天氣站源碼(記得看README):https://github.com/Ai-Thinker-Open/Ai-Pi_Eeys/tree/AiPi-Eyes_Weather
小安派-Eyes天氣站其他資料包地址:https://docs.ai-thinker.com/eyes