盧建華 龍超平
摘要:本文介紹了一個(gè)基于樹莓派的嵌入式系統(tǒng)設(shè)計(jì)的實(shí)踐教學(xué)項(xiàng)目。該系統(tǒng)以ARM Cortex-A7為硬件核心,以Zigbee技術(shù)作為無(wú)線通信手段,結(jié)合DHT11溫濕度傳感器,可實(shí)現(xiàn)對(duì)周圍環(huán)境的溫濕度監(jiān)控。樹莓派的引入,有效地降低了嵌入式實(shí)踐教學(xué)的開發(fā)和教學(xué)難度,對(duì)嵌入式系統(tǒng)的教學(xué)有很好的促進(jìn)作用。
關(guān)鍵詞:樹莓派;嵌入式系統(tǒng);Zigbee;溫濕度監(jiān)控
中圖分類號(hào):G642.0 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1674-9324(2019)15-0076-03
一、樹莓派簡(jiǎn)介
樹莓派(又稱Raspberry Pi電腦板,簡(jiǎn)稱RPi),是由英國(guó)Raspberry Pi基金會(huì)開發(fā)的,是世界上最小的臺(tái)式機(jī),又稱卡片式電腦。它外形只有信用卡大小,卻具有電腦的所有基本功能。
樹莓派最初是為學(xué)習(xí)計(jì)算機(jī)的學(xué)生而設(shè)計(jì)的,但由于其價(jià)格低廉、功耗低、體積小、功能完善、可與PC機(jī)媲美的特性,使其使用遠(yuǎn)遠(yuǎn)超過(guò)了最初的設(shè)計(jì)目的,應(yīng)用領(lǐng)域不斷被擴(kuò)展。它既能運(yùn)行Linux操作系統(tǒng),也能運(yùn)行Windows 10等操作系統(tǒng),可在開發(fā)板上直接使用Python或者Java語(yǔ)言進(jìn)行軟件編程。
作為一款卡片式計(jì)算機(jī),樹莓派不僅可以代替電腦作為軟件開發(fā)平臺(tái),還具有嵌入式開發(fā)板的引腳資源,可以外接不同的設(shè)備,例如單片機(jī)、傳感器、CC2530芯片等,通過(guò)外接設(shè)備擴(kuò)展其功能。另外,作為微型計(jì)算機(jī)又使得樹莓派不需要借助主機(jī)就能完成軟件的開發(fā),使得樹莓派具有獨(dú)立性。
二、樹莓派開發(fā)環(huán)境的搭建
(一)樹莓派開發(fā)板硬件資源
樹莓派2代B型(資源配置表見表1)是基于ARM Cortex-A7 BCM2836的miniPC,它兼容1代B+,且性能提升了6倍,內(nèi)存翻了一番。配備4個(gè)可擴(kuò)展USB接口和一個(gè)以太網(wǎng)接口,再加上可供選擇的視頻音頻輸出模式,完全可以與個(gè)人電腦相媲美。它不僅能跑全系列ARM GNU/Linux發(fā)行版,而且支持Snappy Ubuntu Core 以及Windows 10。
(二)操作系統(tǒng)的選擇
樹莓派支持多種操作系統(tǒng)環(huán)境,其中Raspbian OS是一款Debian專門為樹莓派開發(fā)板量身定制的免費(fèi)操作系統(tǒng),有著良好的桌面環(huán)境便于操作,還附帶了35000個(gè)軟件包以及預(yù)編譯軟件,并且支持C/C++和Python語(yǔ)言編程。
(三)樹莓派的Qt環(huán)境搭建
首先從官方網(wǎng)站上下載系統(tǒng)鏡像文件,燒入到SD卡中,再將燒好的SD卡插入到樹莓派上,然后連接無(wú)線鼠標(biāo)、鍵盤,再通過(guò)HDMI信號(hào)線將樹莓派與電腦顯示器相連,上電啟動(dòng)樹莓派,并對(duì)系統(tǒng)作相應(yīng)的配置,重啟后就進(jìn)入了樹莓派的圖形界面。
Qt是一款跨平臺(tái)式圖形開發(fā)應(yīng)用程序框架,主要是基于C++進(jìn)行軟件開發(fā)。在搭建樹莓派的Qt環(huán)境時(shí),首先下載Qt開發(fā)工具、Qt Creator、終端模擬器、編譯器等,然后打開樹莓派命令終端輸入以下命令進(jìn)行安裝。
sudo apt-get install qt4-dev-tools //安裝必要的開發(fā)工具
sudo apt-get install qtcreator //安裝Qt Creator
sudo apt-get install gcc //安裝GNU編譯器套件gcc
sudo apt-get install xterm //安裝終端模擬器
sudo apt-get install git-core
sudo apt-get install subversion
上述操作結(jié)束后,Qt Creator就可以使用了。
三、基于樹莓派的溫濕度監(jiān)控系統(tǒng)的設(shè)計(jì)
(一)系統(tǒng)結(jié)構(gòu)框圖
基于樹莓派設(shè)計(jì)的溫濕度監(jiān)控系統(tǒng)結(jié)構(gòu)框圖如圖1所示,主要由三個(gè)部分構(gòu)成。
第一個(gè)部分是由傳感器和終端節(jié)點(diǎn)構(gòu)成的信息采集模塊,負(fù)責(zé)數(shù)據(jù)的提取和上傳。DHT11溫濕度傳感器將實(shí)際環(huán)境中的溫度和濕度轉(zhuǎn)換為電信號(hào),經(jīng)過(guò)處理后以數(shù)字信號(hào)的形式上傳給Zigbee終端節(jié)點(diǎn),隨后Zigbee終端節(jié)點(diǎn)再以無(wú)線電波的方式傳送給Zigbee協(xié)調(diào)器節(jié)點(diǎn)。同時(shí),終端節(jié)點(diǎn)還可以接收來(lái)自上位機(jī)的操作命令,輸出控制信號(hào)對(duì)電路進(jìn)行控制。
第二個(gè)部分通過(guò)樹莓派和協(xié)調(diào)器節(jié)點(diǎn),實(shí)現(xiàn)對(duì)信息的處理和控制功能。Zigbee協(xié)調(diào)器節(jié)點(diǎn)先對(duì)終端節(jié)點(diǎn)發(fā)來(lái)的無(wú)線電信號(hào)進(jìn)行解調(diào),再將數(shù)據(jù)通過(guò)RS232串口上傳給樹莓派。在樹莓派上進(jìn)行編程,將數(shù)據(jù)以圖形化的方式呈現(xiàn)出來(lái),而且可以通過(guò)樹莓派對(duì)Zigbee終端節(jié)點(diǎn)發(fā)出控制信號(hào)。
第三個(gè)部分是移動(dòng)端利用無(wú)線通訊技術(shù)所構(gòu)成的遠(yuǎn)距離無(wú)線控制模塊,該模塊以無(wú)線局域網(wǎng)為媒介,能與樹莓派開發(fā)板進(jìn)行Socket通訊,從而實(shí)現(xiàn)通過(guò)移動(dòng)端進(jìn)行遠(yuǎn)程監(jiān)控。
(二)系統(tǒng)中的節(jié)點(diǎn)結(jié)構(gòu)
該系統(tǒng)的節(jié)點(diǎn)由終端節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)構(gòu)成。終端節(jié)點(diǎn)與溫濕度傳感器DHT11相連,把收到的環(huán)境信息發(fā)送給協(xié)調(diào)器節(jié)點(diǎn)。協(xié)調(diào)器節(jié)點(diǎn)位于控制中心模塊,通過(guò)串口芯片F(xiàn)T232RL實(shí)現(xiàn)USB轉(zhuǎn)換為串口與上位機(jī)相連,實(shí)現(xiàn)數(shù)據(jù)的上傳,所以協(xié)調(diào)器節(jié)點(diǎn)也是Zigbee網(wǎng)絡(luò)對(duì)外的通訊接口,協(xié)調(diào)器節(jié)點(diǎn)的結(jié)構(gòu)如圖2所示。
采用CC2530片上系統(tǒng)板實(shí)現(xiàn)無(wú)線信號(hào)的收發(fā)。使用串口芯片F(xiàn)T232RL實(shí)現(xiàn)樹莓派與協(xié)調(diào)器節(jié)點(diǎn)之間的數(shù)據(jù)交換。CC2530的信息通過(guò)FT232RL轉(zhuǎn)到USB,再傳給上位機(jī)樹莓派,F(xiàn)T232RL相當(dāng)于上位機(jī)和CC2530芯片之間的數(shù)據(jù)中轉(zhuǎn)站。FT232RL的主要作用是讓數(shù)據(jù)從串口轉(zhuǎn)換到USB接口,轉(zhuǎn)換后可以從串行UART接口進(jìn)行數(shù)據(jù)的接收和發(fā)送。
(三)軟件設(shè)計(jì)
1.協(xié)調(diào)器節(jié)點(diǎn)軟件設(shè)。協(xié)調(diào)器節(jié)點(diǎn)的主要任務(wù)是構(gòu)造一個(gè)新的Zigbee網(wǎng),搭建好網(wǎng)絡(luò)環(huán)境和配置參數(shù),并獲取傳來(lái)的數(shù)據(jù),再上傳給樹莓派。該軟件設(shè)計(jì)主要分為建立網(wǎng)絡(luò)和與樹莓派通訊兩部分。協(xié)調(diào)器的工作流程如圖3所示。
2.傳感器節(jié)點(diǎn)軟件設(shè)計(jì)。傳感器節(jié)點(diǎn)負(fù)責(zé)將收集到的數(shù)據(jù)以一定時(shí)間間隔發(fā)送給協(xié)調(diào)器,并接收從樹莓派傳來(lái)的控制信號(hào)。當(dāng)定時(shí)裝置被觸發(fā)時(shí),提取現(xiàn)場(chǎng)的溫度和濕度信息,打包后以無(wú)線方式發(fā)送出去。傳感器節(jié)點(diǎn)的工作流程如圖4所示。
3.上位機(jī)和移動(dòng)端的軟件設(shè)計(jì)。在上位機(jī)的軟件設(shè)計(jì)過(guò)程中,通過(guò)Wiring Pi GPIO庫(kù)調(diào)用串口函數(shù)實(shí)現(xiàn)對(duì)協(xié)調(diào)器數(shù)據(jù)的收發(fā)功能,從串口獲取數(shù)據(jù),并將數(shù)據(jù)用曲線形式顯示出來(lái)。上位機(jī)除了與協(xié)調(diào)器建立通訊外,還要與移動(dòng)端口建立通訊,實(shí)現(xiàn)移動(dòng)端的遠(yuǎn)程訪問和控制功能。
移動(dòng)端的功能在安卓手機(jī)上完成,以實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。
四、仿真運(yùn)行效果
該系統(tǒng)采用SmartRF04EB仿真器,它是美國(guó)TI公司為TI Zigbee芯片研制的,具有標(biāo)準(zhǔn)的JTAG調(diào)試接口。在Zigbee系統(tǒng)開發(fā)過(guò)程中,把待調(diào)試程序燒入到Zigbee芯片,再使用仿真器就可以進(jìn)行動(dòng)態(tài)調(diào)試。
啟動(dòng)系統(tǒng)后,點(diǎn)擊“打開串口”和“數(shù)據(jù)刷新”就可以看到采集到的溫度和濕度數(shù)據(jù),如圖5所示。左下角是采集到的溫度實(shí)時(shí)曲線,也可以選擇查看濕度的曲線圖。點(diǎn)擊“網(wǎng)絡(luò)服務(wù)”后,可以用手機(jī)進(jìn)行遠(yuǎn)程訪問。打開手機(jī)軟件,點(diǎn)擊網(wǎng)絡(luò)設(shè)置,輸入IP地址,連接成功后就可以在手機(jī)上看到采集的溫度、濕度數(shù)據(jù),圖6為手機(jī)終端運(yùn)行界面。
五、結(jié)束語(yǔ)
基于樹莓派的嵌入式系統(tǒng)設(shè)計(jì),和傳統(tǒng)的基于ARM開發(fā)板的設(shè)計(jì)相比,更易學(xué)易用,開發(fā)的產(chǎn)品具有更好的便捷性。引入樹莓派,能更好地促進(jìn)嵌入式系統(tǒng)的實(shí)踐教學(xué)。
參考文獻(xiàn):
[1]王節(jié)旺,王瑞寶.基于樹莓派的雷電預(yù)警系統(tǒng)設(shè)計(jì)方案[J].電子設(shè)計(jì)工程,2016,24(01):169-171+174.
[2]蔡燕敏,孔維通.基于樹莓派網(wǎng)絡(luò)監(jiān)控系統(tǒng)的研究[J].實(shí)驗(yàn)室科學(xué),2015,18(06):87-90.
[3]馮志輝.使用樹莓派實(shí)現(xiàn)網(wǎng)絡(luò)監(jiān)控系統(tǒng)[J].電子技術(shù)與軟件工程,2015,(05):85.
[4]李文勝.基于樹莓派的嵌入式Linux開發(fā)教學(xué)探索[J].電子技術(shù)與軟件工程,2014,(09):219-220.