很多初學者或者互聯網轉行從業者,在學習嵌入式技術的基本理論概念之后,可能會感覺到迷茫,感覺自己雖然學了不少,但卻不知道怎么用到項目上。
我一直認為,對于嵌入式物聯網技術的入門,項目實戰是驗證理論學習的最佳方式。
在前面的兩篇文章里面,我們基于飛凌的 ElfBoard 嵌入式開發板,分別從開箱入門測評和嵌入式Linux開發套路的角度,分析了這塊開發板的各種特點,讓開發者對這塊開發板的硬件和資料有一個基本的認識。
本篇文章,我們將會基于 ElfBoard 開發板,開源一個面向初學者的,軟硬件結合的嵌入式物聯網項目,希望可以通過這個開源項目,讓初學者對嵌入式物聯網技術領域的 “云-網-邊-端” 架構,有一個更加直觀的認識。
關于這個項目的思維導圖,如下圖所示。
接下來,我們將會從云-網-邊-端的物聯網體系架構出發,描述整個開源項目的開發過程,整個開源項目的系統框架,如下圖所示。
1– 云(涂鴉云服務器)
開源項目是采用涂鴉云作為云服務器的,之所以采用涂鴉云,主要是涂鴉的IoT生態體系很友好,并且對于個人開發者(初學者),涂鴉云的學習門檻和接入門檻是比較低的,無需企業賬號,無需太高的設備購買費用,即可接入涂鴉云。
關于涂鴉云的具體用法,可以在公眾號搜索我以前發布過的文章:
【嵌入式實戰項目】環境監測設備接入涂鴉IoT開發平臺
ElfBoard邊緣中控是通過Tuya LinkSDK接入云服務器的,這個SDK采用標準的C語言進行編寫,移植的時候非常方便,具體可以參考官方提供的移植文檔,(此處不做詳細描述)
在涂鴉云服務器上建立好產品,完成功能定義,完成設備交互面板設計,移植完Tuya Link SDK,等一系列操作后,就可以讓ElfBoard具備接入云服務器的能力。
產品建成后,具體的功能定義如下圖所示。
2– 網(Wi-Fi無線連接)
要讓ElfBoard接入云服務器,就要先讓ElfBoard的硬件具備連接互聯網的能力,接入互聯網的方式有:4G網絡,Wi-Fi無線連接,RJ45有線網絡連接,這幾種方式都可以選用,由于ElfBoard開發板默認板載了一個RTL8723 無線Wi-Fi模塊,因此,本項目選用Wi-Fi無線連接方式,讓開發板接入互聯網。
十分方便的是,飛凌官方已經提供了一個聯網腳本,elf1_cmd_wifi.sh,應用程序開發工程師,可以很方便地調用這個腳本進行互聯網鏈接,對于使用嵌入式Linux+Qt開發的應用程序,飛凌官方也提供了參考例程,我們在程序開發的時候直接參考使用即可。
本項目關于Wi-Fi聯網的部分參考代碼,如下圖所示。(具體請參考完整源碼)
3– 邊(ElfBoard邊緣中控)
邊緣計算設備(邊緣中控)采用飛凌ElfBoard開發板進行設計,運行嵌入式Linux操作系統,采用Qt進行UI界面開發,應用程序采用C/C++語言進行編寫。
邊緣計算設備(邊緣中控)通過一個USB無線擴展模塊,與端側設備進行無線通信,這個USB無線擴展模塊的具體設計,可以參考項目里面開源的教程文檔。
USB無線擴展模塊支持AT指令集,支持從機設備管理,支持控制命令透傳,等等。感興趣的初學者還可以修改這個擴展模塊的固件(代碼已開源),讓其擴展更多創意的功能。
整個邊緣計算設備的Qt應用程序,共提供了5個應用界面,初學者可以在這5個應用程序界面,自由擴展自己的創意想法,以下是這5個應用界面的功能介紹。
界面 1
界面 1是一個電器控制界面,通過這個界面,可以對端側的電器設備進行無線控制,比如RGB三色燈的開關和亮度調節,燈光總開關的控制,遠程繼電器開關的控制,等等。當端側無線設備有按鍵事件觸發的時候,可以即時把按鍵值通過無線方式上報到邊緣中控設備,并把按鍵事件在信息窗口進行顯示。
界面 2
界面 2是一個環境監測界面,在這個界面,可以把開發板上面的溫濕度傳感器數據(客廳是實際值,臥室是模擬值)和環境亮度數據在界面上面實時顯示出來,這個界面還可以擴展到土壤數據監測,空氣顆粒物監測,環境噪聲監測,等等。
界面 3
界面 3是一個云服務器連接界面,通過【連接涂鴉云】按鈕,把邊緣中控ElfBoard接入涂鴉云服務器,然后通過手機端【智能生活APP】掃描二維碼,即可完成手機APP與設備的綁定操作,并且在信息窗口顯示連接狀態,手機APP通過云端轉發的控制指令,也可以實時在信息窗口進行顯示。
ElfBoard邊緣中控還可以把手機APP的控制指令轉發到無線端側設備執行,也可以把環境監測里面的傳感器數據,上報到云服務器,然后在手機APP界面進行實時顯示。
界面 4
界面 4是一個有線網絡界面,這個界面實現了一個遠程抄寫電表數據的功能,通過RS485總線和Modbus-RTU軟件協議,讓ElfBoard邊緣中控連接一個虛擬電表,虛擬電表的用電數據不斷更新(模擬用電過程),然后實現電表數據的實時讀取,并在信息窗口進行顯示。
界面 5
界面 5是ElfBoard邊緣中控的參數設置界面,在這個界面里面,可以對ElfBoard邊緣中控本身進行程序升級(未完成),同步網絡時間,設置USB無線模塊,端側從機掃描,以及重置USB無線模塊,開發者還可以在這個界面擴展更多有趣好玩的參數配置功能。
4– 端(采集與執行設備)
端側設備主要是以下三種類型的設備:支持Modbus-RTU協議的有線從機設備,具備2.4GHz/433MHz無線通信功能的網絡模塊,以及手機APP應用程序。
關于Modbus-RTU的有線從機設備,我們可以使用電腦端的Modbus-Slave軟件進行虛擬,Modbus-Slave軟件是一款精美小巧的Modbus-RTU從機調試軟件,使用它可以虛擬出任何支持Modbus協議的從機設備,具體軟件界面如下圖所示。
關于無線網絡模塊,它支持繼電器開關、RGB三色燈、按鍵事件等功能。
除了以上兩種端側設備之外,手機APP應用程序,也是屬于端側顯示設備。手機APP應用是通過涂鴉云的間接轉發方式,與ElfBoard邊緣中控進行端對端通信的,ElfBoard邊緣中控可以轉發手機APP的控制指令到無線網絡模塊,以及接收邊緣中控上報的環境監測數據。
整個項目已經開源到Gitee,歡迎各位嵌入式初學者或愛好者進行Fork和Star。
--補充說明一下,文章里面提到的“ElfBoard開發板”,是指飛凌嵌入式旗下 ElfBoard 品牌推出的 ELF 1S 開發板,在驗證這個開源項目的時候,需要使用ELF 1S進階版。
審核編輯:湯梓紅
-
嵌入式
+關注
關注
5092文章
19177瀏覽量
307665 -
物聯網
+關注
關注
2913文章
44923瀏覽量
377016 -
Linux
+關注
關注
87文章
11345瀏覽量
210391
原文標題:搞了一個物聯網開源項目,和大家一起內卷嵌入式!
文章出處:【微信號:工程師進階筆記,微信公眾號:工程師進階筆記】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論