一、效果展示
二、產品介紹
智能電子牌Demo是基于OpenHarmony系統開發的應用,其中主要由日程信息獲取模塊、實時天氣模塊、時間獲取模塊、定時提醒模塊與UI顯示模塊組成。通過該設備我們不僅可以隨時查看當天日程規劃,設定定時提醒,還可以查看時間,日期以及室內外溫濕度,空氣PM值等實時天氣狀況。 1. 設備運行效果 將潤和Hi3516DV300 AI Camera開發板進行OpenHarmony 1.0.1 版本的固件燒錄,開發板的網絡連接以及智能電子牌應用程序的安裝,之后打開智能電子牌應用,我們可以看到運行效果圖如下: ? 我們可以看到實時獲取的時間天氣(屏幕左半部分)與日程(屏幕右半部分)等信息,還可以通過滑動屏幕右上角的時間選擇器選擇提醒時間;日程信息包括日程的起始與終止時間,日程名與日程的執行細節等。 接收到日程時如下圖: ? ? 2. 設備與云端的交互 ? 我們在手機端的數字管家APP中更新日程信息后對應信息將上傳至云端,我們開發的智能電子牌應用會通過HTTP協議主動獲取云端日程信息并進行顯示更新。 ? 3.智能電子牌主要功能描述 智能電子牌在進行網絡連接配置后可以隨時查看當天日程規劃,日程信息包括日程的起始與終止時間,日程名與日程的執行細節;通過設定定時提醒實現定點準時提示;還可以在屏幕上查看實時時間,日期以及室內外溫濕度,空氣PM值等實時天氣狀況。用戶可以通過人性化的顯示服務輕松記住自己的日程規劃,了解到當前的天氣狀況是否適合戶外運動,同時,智能電子牌還能作為一款自動校準的實時時鐘,貼心地服務于用戶,為用戶的生活帶來舒適與便捷。
三、項目過程
智能電子牌項目依托于OpenHarmony開源開發者成長計劃,項目的推進離不開導師的指導與幫助。完成該項目時我經歷了三個階段:開發環境的搭建,C++語言的學習,智能電子牌項目的開發。 開發環境的搭建 該項目的源碼編譯是在Ubuntu環境下進行的,我的開發“裝備”只有一臺Windows電腦,所以我們想進行下一步開發與調試就必須在Windows環境下搭建好虛擬機,然后在虛擬機的Ubuntu環境下搭建好對應編譯環境。具體的搭建流程請見智能電子牌的開發部分。 C++語言的學習 該設備端項目是基于C++語言開發的,但我只有C語言基礎,所以我在寒假期間借助線上學習平臺等學習平臺實現了C++語言的學習,本項目的UI組件并沒有完善的開發手冊,故而該項目被官方評定的開發難度為高等,本項目的開發離不開大量的摸索、學習與實踐,與此同時,閱讀大量官方庫文件的過程極大地提高了我的C++語言熟練程度。 智能電子牌項目的開發 本項目產品的邏輯圖如下: ? 智能電子牌通過sntp協議主動于服務器獲取實時時間;通過天氣API實時獲取天氣信息,并且會根據天氣狀況給出一些暖心建議;通過http協議主動在華為云獲取我們在手機或平板端數字管家中設置的日程,展示日程的起始終止時間,日程名與日程細節;通過在時間選擇器中選擇時間,可以起到定時提醒日程的作用。 我將開發過程中對既有代碼的一些理解整理在了本文中:智能電子牌——設備端 ?
四、安裝教程
為了讓小伙伴們能在自己的開發板上運行智能電子牌項目的代碼,我將安裝該項目應用的教程整理如下: 硬件準備 預裝Windows系統的PC機;Hi3516DV300 IoT Camera開發板;USB轉串口線、網線(Windows工作臺通過USB轉串口線、網線與Hi3516DV300 開發板連接)。 1.完成開發板環境的搭建(即完成固件燒錄與Ubuntu的編譯環境搭建,詳細講解見智能電子牌的開發)后,在OpenHarmony的vendor目錄下新建team_x的目錄:
mkdir vendor/team_x? 2.將智能電子牌的代碼拷貝到新建的team_x下面。 已經合倉的代碼鏈接:
electronic_board
https://gitee.com/openharmony-sig/knowledge_demo_smart_home/tree/master/dev/team_x/electronic_board_1
3.之后可以進行應用程序的編譯,編譯指令共兩條hb set與hb build -f: 首先在Terminal內輸入:
hb set之后通過鍵盤上的上下鍵選擇electronic_board,之后回車進行選中; 之后進行全量編譯,輸入:
hb build -f當編譯完成后會顯示success。 4.編譯完成后,out/hispark_taurus/electronic_board/libs/usr/目錄下的libelectrBoard.so文件即為我們的目標應用文件,該文件與工程目錄下的res以及config.json文件通過壓縮打包成zip格式(三個文件直接壓縮,不能壓縮文件夾),并將后綴名改為hap后即可通過掛載NFS的方式進行應用安裝。具體內容見下方“六、文檔目錄”部分。
五、項目展示
1.代碼目錄結構 如下為設備端核心代碼的目錄結構:
|—— BUILD.gn // 編譯腳本|—— res // 圖片資源文件|—— config.json // 安裝包所需要的json文件|—— include| |—— electronic_board_ability.h // 入口類的頭文件| |—— electr_board_ability_slice.h // 主頁面的頭文件,包含了時間選擇器| |—— shcedule_list_view.h // 日程列表顯示類的頭文件| |—— weather_time_view.h // 天氣以及時間顯示類的頭文件| |—— native_base.h // 基類的頭文件| |—— event_listener.h // 事件定義及實現的類| |—— ui_config.h // 界面相關坐標定義的頭文件| |—— schedule_server.h // 日程服務相關定義的頭文件| |—— schedule_info.h // 日程內容類的頭文件| |—— common.h // 天氣獲取相關定義的頭文件| |—— sntp.h // 時間獲取相關定義的頭文件| |—— link_list.h // 鏈表相關定義函數的解釋頭文件| |—— schedule_net_status.h // 獲取與運行網絡連接相關的頭函數| |__ LinkList.h // 鏈表相關定義的頭文件||__ src |—— electronic_board_ability.cpp |—— electr_board_ability_slice.cpp// 主頁面相關實現 |—— schedule_list_view.cpp // 日程列表顯示類的實現 |—— weather_time_view.cpp // 天氣以及時間顯示類的實現 |—— common.c // 天氣獲取以及解析的實現 |—— schedule_server.c // 日程服務獲取的顯示 |—— sntp.c // 網絡實時時間獲取的實現 |—— schedule_net_status.c // 獲取與運行網絡連接相關的實現 |__ LinkList.c // 鏈表的實現已經合倉的代碼鏈接: electronic_board
https://gitee.com/openharmony-sig/knowledge_demo_smart_home/tree/master/dev/team_x/electronic_board_1
2.成果細節演示
如下圖所示,電子牌應用功能區共分為三部分,左邊的時間天氣區,右下區域的日程區,右上區域的定時時間設定區: ? 時間天氣區中: ? 天氣通過天氣對應的API獲取地區對應的實時天氣信息 ? 實時時鐘是通過sntp協議獲取的 日程區中: ? 日程信息是通過http協議與云端對接主動獲取的數字管家設置的信息,日程包含了日程的名字,以及開始時間及日程的內容,如下圖所示:
時間選擇區中:
? 通過滑動選擇需要提醒的時間,當實時時鐘與時間選擇區時間相同時會出現提示信息,當用戶接收到提示信息并重新設定時間選擇區的時間后提示信息會消失,如下圖所示:
六、項目感受
項目開發過程其實沒有很多人想象中的枯燥乏味,在我看來能夠開發出一款好用有價值的產品是一件很有成就感的事情。不可否認學習一門新的語言是很花費精力的,但是在學習與項目開發過程中自己的能力也在快速提升,這種學有所得的感覺正是我所追求的。 該項目是在原有代碼的基礎上進行了二次開發,老師們寫的源碼非常優美,當中的語言結構與構建方法都很值得我認真學習。在開發過程中我也曾碰到過蠻多困難的事情,因為到手的第一塊開發板的boot出現了問題無法完成固件的燒錄,后來和導師一塊探索了一段時間才最終通過更換開發板解決了這個問題,感謝電子發燒友官方和導師所提供的幫助。后面在搭建編譯環境的時候也出現了各種各樣的問題,感謝導師鐘老師的悉心指導,讓我最終解決了所有問題。 編譯一次源代碼的時間比較長(20min+),所以我每次對源碼的修改都十分謹慎,之后進行應用掛載后既有可能出現你滿意的UI與功能,也有可能出現各種亂碼甚至有可能應用沒辦法啟動,這一種類似“開獎”感覺的調試過程事后回想也是回味無窮。 總而言之,在項目開發過程中我學到了很多新知識,看到開發調試出預想的功能后我心里也是充滿成就感,感謝官方提供的機會與導師的悉心教誨。
-
網絡連接
+關注
關注
0文章
88瀏覽量
10870 -
OpenHarmony
+關注
關注
25文章
3713瀏覽量
16256
原文標題:有“智慧”的電子牌
文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論