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