肖晨陽
摘要:設計一種經(jīng)過簡單的硬件改造,通過樹莓派硬件遠程控制多臺計算機的開關(guān)機的方案,從硬件設計、軟件服務端設計、云服務器中轉(zhuǎn)信息三個方面介紹了設計方案。方案實施表明,方案能夠完成設計目標并具有很好的穩(wěn)定性。
關(guān)鍵詞:樹莓派;軟件服務端設計
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2020)29-0225-02
筆者在承擔病毒三維重構(gòu)的并行算法研究的過程,團隊搭建了一個小型的計算機集群,通過計算機集群來進行病毒三維重構(gòu)的運算。在實踐過程中,遇到以下情況:有時候人員出差在外、外出會議、回家后,某臺計算機出現(xiàn)了故障;另外有時候會出現(xiàn)某臺計算機需要開機等情況,而人員恰恰不在實驗室,導致程序運行中斷,往往需要返回實驗室,進行開機或者關(guān)機等處理,費時費力,影響工作。基于這種現(xiàn)狀,我們設計一種遠程計算機開關(guān)機的方法來解決此問題。
1 硬件設計
購置ARM硬件樹莓派計算機,通過和RJ45網(wǎng)線和計算機集群在同一局域網(wǎng),并使之保持互聯(lián)網(wǎng)連接。
樹莓派計算機,是一種基于ARM的嵌入式硬件平臺,體積小,只有一個通用的信用卡大小,有4G的存儲器,能夠安裝Linux操作系統(tǒng)。
樹莓派計算機除了有以太網(wǎng)口和常見的USB接口外,額外提供了一組40針的GPIO接口。我們利用GPIO口的輸出控制被控計算機的電源開關(guān)鍵。從而實現(xiàn)遠程控制開關(guān)機的目的。
由于樹莓派提供了多個GPIO口,如圖1所示,我們可以用一臺樹莓派控制多臺計算機的開關(guān)鍵。
1.1 樹莓派GPIO介紹
在樹莓派3上GPIO接口由40針引腳組成,有些針腳有特殊的用途,如2、4引腳固定輸出5V電壓,1、17引腳輸出3.3V電壓,6、9、20、39等為地線。其他引腳大多數(shù)是可以編程的引腳,一般用GIPX的編號來表示。每個針腳用杜邦線(導線)和外部相連。
1.2 樹莓派的操作系統(tǒng)
樹莓派的操作系統(tǒng)采用經(jīng)過定制的Linux系統(tǒng),具有豐富的網(wǎng)絡功能,能夠運行我們設計的遠程控制軟件。
2 軟件設計
2.1 程序控制GPIO
樹莓派Linux已經(jīng)對GPIO進行了驅(qū)動級支持,并提供了應用層接口命令GPIO。
用gpio readall獲取個GPIO接口的編號及其定義。
通過Linux內(nèi)置的wiringPi庫,可以用C語言編程控制GPIO接口。
使用wiringPi函數(shù)庫中的digitaIWrite函數(shù)對指定引腳輸出高電平或者電平,從而實現(xiàn)計算機開關(guān)鍵閉合和打開。
2.2 遠程控制樹莓派。
由于被控計算機在內(nèi)網(wǎng),無法通過公網(wǎng)進行直接訪問,因此我們購買了一個云服務器作為控制信息的中轉(zhuǎn),實現(xiàn)間接訪問。樹莓派計算機通過客戶端連接,并登記注冊到公網(wǎng)云服務器,保持網(wǎng)絡連接。
當我們需要對內(nèi)網(wǎng)內(nèi)的計算機進行關(guān)機或者開機時,外網(wǎng)客戶端連接云服務器,向云服務器發(fā)送控制信息,服務器收到控制信息后,將控制信息轉(zhuǎn)發(fā)給樹莓派,樹莓派客戶端軟件根據(jù)控制信息通過GPIO口對被控計算機進行開機或者關(guān)機操作。
2.3 軟件流程設計
1)內(nèi)網(wǎng)樹莓派啟動后,Client0啟動程序和Server建立TCP連接。端口為8018。Client0發(fā)送register請求到Server。
2)每隔5秒,發(fā)送一個心跳(hearbeat)信息,保證TCP連接不中斷。
3)當需要控制被控機器時,clientl啟動程序和Server建立TCP連接。端口為8018,發(fā)送控制指令“boot XX”或者“shut-down XX”給Server。
4) Server收到信息后“boot XX”或者“shutdown XX”信息后將信息發(fā)送給client0。
5)Client0收到信息后,根據(jù)boot或者shutdown對應的計算機啟動或者關(guān)機。
根據(jù)上述流程,我們用C語言編寫了一個軟件服務端和兩個客戶端程序。
3 方案實施
本文設計的遠程控制計算機方案,應用于本實驗室由8臺計算機組成的小型集群,經(jīng)過對計算機的簡單改裝,能夠成功實現(xiàn)遠程對指定計算機進行模擬計算機開關(guān)鍵進行開機和關(guān)機。經(jīng)過近一年時間的運行,運行情況良好。
4 結(jié)論
本文采用廉價的樹莓派硬件,通過控制所帶的GPIO控制口,控制計算機的開關(guān)鍵,從而實現(xiàn)控制開機和關(guān)機功能,而遠程控制的功能實現(xiàn),則通過一個公網(wǎng)云服務器,作為控制信息的中轉(zhuǎn),實現(xiàn)通過互聯(lián)網(wǎng)發(fā)送控制信息到樹莓派硬件,從而解決了異常情況下,需要對特定計算機進行啟動和關(guān)機的問題。在此基礎(chǔ)上,充分利用樹莓派提供的多個GPIO口,實現(xiàn)一臺樹莓派控制多臺計算機的開關(guān)機的操作。本方案結(jié)構(gòu)簡單,對計算機改動極少,完全不影響原有功能,具有方便使用等特點。
參考文獻:
[1]李文勝.基于樹莓派的嵌入式Linux開發(fā)教學探索[J].電子技術(shù)與軟件工程,2014(9):219-220.
[2]常英亮,基于嵌入式Linux的物聯(lián)網(wǎng)網(wǎng)關(guān)研究與實王見[D].北京:北京交通大學,2014.
[3]程學斌,艾紅.基于嵌入式Linux的土壤溫濕度監(jiān)測系統(tǒng)的設計[J].北京信息科技大學學報(自然科學版),2015,30(5):48-51.
[4]張彥春.面向通信行業(yè)的嵌入式軟件開發(fā)平臺設計與實現(xiàn)[D].合肥:合肥工業(yè)大學,2006.
【通聯(lián)編輯:唐一東】