小安派開源硬件,你的體驗到哪一步了?有大佬@灰太狼在B站和安信可社區發布了基于小安派AiPi-Eye-S1的天氣站,來看看過程~
02.作品說明
2.1硬件部分
硬件上使用到了AiPi-Eye-S1開發板以及3.5寸 240*320像素的電容觸摸屏,日常使用USB線通過開發板上的typec接口為設備進行供電。使用USB轉TTL工具進行程序下載。
2.2軟件部分
①開發環境
個人是在Windows環境下使用VSCode進行項目的開發,具體的環境搭建過程可參考論壇中的帖子:【零基礎搭建小安派Windows 開發環境】
②UI設計
本項目使用了LVGL圖形庫,使用相應的輔助開發工具SquareLine Studio來進行界面設計與C代碼生成。
③天氣信息獲取
本項目使用易客云天氣提供的免費天氣API接口來獲取當前地區基礎七日天氣與基礎實況天氣。由于請求數據時使用到用戶ID與密鑰參數,因此需要進行賬號注冊。
④程序設計思路
本項目程序參考了官方給的天氣站示例(AiPi-Open-Kits/AiPi-Eyes_weather at master · Ai-Thinker-Open/AiPi-Open-Kits · GitHub),其整體的實現思路如下:
系統初始化
基于FreeRTOS創建多個任務
(1)wifi_mainWi-Fi運行任務;
(2)lvgl_task運行LVGL,實現觸摸屏顯示與觸摸功能,當觸發網絡連接條件時,會向隊列中發送WiFi名稱密碼數據;
(3)bl61x_show_heap_size_task通過串口打印內存占用情況(設定波特率為2000000);
(4)queue_task分析處理隊列數據,執行相應程序。各任務間的通信是基于隊列實現的,目前該任務處理的隊列數據包含以下4種:
? a.Wi-Fi名稱密碼數據 -> 數據保存,進行Wi-Fi連接,Wi-Fi連接成功會向隊列中發送Wi-Fi連接成功數據;
? b.Wi-Fi連接成功數據 -> 創建https_get_weather_task任務來獲取時間、天氣信息;
? c.未來七日天氣數據 -> 更新屏幕顯示內容;
? d.基礎實況天氣數據 -> 更新屏幕顯示內容。
(5)https_get_weather_task通過https獲取未來七日天氣及基礎實況天氣,成功獲取后將向隊列中發送相應數據。任務通過定時器http_timers來設定數據獲取的頻率。
03.固件燒錄
3.1 固件燒錄
以下操作需要再環境配置完成后進行。
①程序編譯
在項目根目錄下打開終端,輸入make。
如無錯誤,最終會顯示以下內容。
②固件燒錄
在終端中輸入make flash COMX=COMxx 其中xx為實際連接的下載器的COM口號,如下圖中COM口為20。
根據提示按下復位按鈕,進行燒錄。
3.2 網絡配置與天氣賬號
(1)在網絡配置菜單中輸入要連接的WiFi名稱及密碼。
(2)在天氣賬號菜單中輸入注冊易客云天氣后個人的appid與appsecret。
(3)點擊連接按鈕,若配置正確,則會跳轉到以下界面。
04.說明
4.1界面切換說明
在主界面下點擊下圖所示的對應區域,可切換至相應界面,在子界面下觸摸底部按鈕可切換至主界面。
4.2其他說明
需要注意的是,如果長時間運行,會因http服務器連接問題偶然出現卡死的問題,正嘗試進行解決......
審核編輯:湯梓紅
-
usb
+關注
關注
60文章
7958瀏覽量
265029 -
觸摸屏
+關注
關注
42文章
2309瀏覽量
116355 -
WINDOWS
+關注
關注
4文章
3551瀏覽量
88858 -
安信可
+關注
關注
0文章
154瀏覽量
4011
原文標題:0元用小安派AiPi-Eye-S1,做1個高顏值的天氣站
文章出處:【微信號:安信可科技,微信公眾號:安信可科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論