999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ESP8266的機房遠程開關(guān)機實現(xiàn)研究

2021-01-08 02:16:42湯明偉吳東超
無線互聯(lián)科技 2021年23期

湯明偉 吳東超

摘 要:目前各學(xué)校的機房計算機數(shù)量龐大,如何破解機房批量開關(guān)機,提高實驗室的日常管理水平和效率,是機房管理工作中的一大難題,文章提出基于ESP8266實現(xiàn)機房遠程開關(guān)機方案,旨在不增加計算機軟硬件的基礎(chǔ)上,通過ESP8266自帶的WiFi網(wǎng)路功能,為機房日常運行與維護尋找一套行之有效的方法。

關(guān)鍵詞:遠程控制;ESP8266;magic packet;局域網(wǎng)

0 引言

隨著計算機技術(shù)的日異月新,各高校的機房配置的計算機功能越來越豐富,計算機的網(wǎng)卡都支持遠程喚醒(Wake On LAN)功能。為了方便教學(xué)各機房安裝了類似“極域2015”控制端軟件,實現(xiàn)了遠程開關(guān)機和網(wǎng)絡(luò)教學(xué)功能,極大地提升了教學(xué)質(zhì)量和教學(xué)效果。但因各種原因,機房在使用結(jié)束后,或多或少總有部分機器未關(guān)機。這些未正常關(guān)機的計算機不僅持續(xù)地浪費電力資源,存在著安全隱患;這些未關(guān)閉的計算機也給機房管理帶來了不少麻煩,直接斷電關(guān)機,會造成計算機的軟硬件損壞,影響正常的使用;如果逐一正常關(guān)機,大大增加了機房管理人員的工作量。如果能利用計算機的遠程喚醒功能,開發(fā)一套無需在計算機上安裝控制端的系統(tǒng),用于應(yīng)對機房的日常管理,將大大減輕機房管理員的工作量。設(shè)計思路如下:獲取要控制的計算機網(wǎng)卡MAC地址,通過ESP8266開發(fā)板的自帶的WiFi聯(lián)網(wǎng)功能接入局域網(wǎng),由ESP8266利用網(wǎng)卡的遠程喚醒功能,向被控計算機發(fā)送開關(guān)機指令實現(xiàn)遠程開關(guān)機指令,實現(xiàn)機房快速開關(guān)機功能,有效減輕機房管理的工作量,同時也有效延長了計算機軟硬件的使用壽命,減少了不必要的浪費[1]。

1 Wake On LAN遠程喚醒的原理

當聯(lián)網(wǎng)的計算機關(guān)閉啟遠程喚醒功能時,計算機關(guān)機后網(wǎng)卡也處于關(guān)閉狀態(tài),是無法檢測、接收網(wǎng)絡(luò)上的信息的。如果將計算機的遠程喚醒功能開啟,計算機網(wǎng)卡在計算機關(guān)機后處于低功耗狀態(tài),可以檢測、接收網(wǎng)絡(luò)上的信息,并對接收到的信息進行處理,這就為遠程喚醒計算機的實現(xiàn)提供了硬件基礎(chǔ)。當計算機處于關(guān)機狀態(tài)時,計算機的IP地址和計算機名稱都無法識別計算機身份,唯一能夠作為識別計算機身份只有網(wǎng)卡的物理地址(MAC)[2]。用戶獲取被喚醒計算機的物理地址(MAC)后,就可以利用廣播包的方式在網(wǎng)絡(luò)上傳輸喚醒數(shù)據(jù)包,喚醒數(shù)據(jù)包中包含被喚醒計算機的網(wǎng)卡信息、物理地址信息等數(shù)據(jù)資料。當處于關(guān)機狀、睡眠狀態(tài)的計算機網(wǎng)卡接收到喚醒數(shù)據(jù)包后,網(wǎng)卡控制芯片通過檢測數(shù)據(jù)包中的MAC地址,如果發(fā)現(xiàn)并確認數(shù)據(jù)是發(fā)給自己的,則通過專用的電路出發(fā)開機信號,計算機加電啟動[3]。

Magic Packet是AMD公司開發(fā)的網(wǎng)絡(luò)喚醒技術(shù),根據(jù)Magic Packet標準,Magic Packet數(shù)據(jù)包包含兩部內(nèi)容,共計102字節(jié),格式為:6*0xFF+16*MAC地址。其中6個“FF”表示這是一個特殊的喚醒數(shù)據(jù)包,后面緊跟重復(fù)16次的被喚醒計算機的MAC地址。

2 ? ESP8266WiFi模塊簡介

樂鑫科技是一家全球化的無晶圓廠半導(dǎo)體公司,多年來深耕AIoT領(lǐng)域軟硬件產(chǎn)品的研發(fā)與設(shè)計。ESP8266模塊提供了一套高度集成的WiFi SoC解決方案,專注于研發(fā)高集成、低功耗、性能卓越、安全穩(wěn)定、高性價比的WiFi和藍牙MCU。既能獨立應(yīng)用,也可以作為從機搭載其他主機MCU運行,成為物聯(lián)網(wǎng)應(yīng)用的理想選擇。

2.1? ESP8266 系列芯片參數(shù)

32-bit MCU&2.4 GHz WiFi;單核CPU時鐘頻率高達160 MHz;+19.5 dBm天線端輸出功率,確保良好的覆蓋范圍;睡眠電流小于20 μA,適用于電池供電的可穿戴電子設(shè)備;外設(shè)包括 UART,GPIO,I2S,I2C,SDIO,PWM,ADC 和SPI。

2.2? ESP8266的特點

2.2.1 性能卓越

ESP8266EX芯片內(nèi)置超低功耗Tensilica L106 32位RISC處理器,CPU時鐘速度最高可達160 MHz,支持實時操作系統(tǒng)(RTOS)和WiFi協(xié)議棧,可以將高達80%的處理能力應(yīng)用于編程和開發(fā)。

2.2.2 高度集成

ESP8266芯片高度集成天線開關(guān)、射線巴倫、功率放大器、低噪音接收發(fā)達器、濾波器等射頻模塊。模組尺寸小巧,尤其適用于空間受限的產(chǎn)品設(shè)計。

2.2.3? 產(chǎn)品應(yīng)用豐富

ESP8266模組既可以通過ESP-AT指令固件,為外部主機MCU提供WiFi連接功能;也可以作為獨立WiFi MCU運行,用戶通過RTOS的SDK開發(fā)帶WiFi連接功能的產(chǎn)品。

3 系統(tǒng)實現(xiàn)過程

3.1 開發(fā)語言環(huán)境

開發(fā)環(huán)境采用Arduino1.8.13版本作為開發(fā)環(huán)境,由于Arduino采用開源代碼,并且具有使用類似Java,C語言的Processing/Wiring開發(fā)環(huán)境。Arduino不僅僅是全球最流行的開源硬件,也是一個優(yōu)秀的硬件開發(fā)平臺,更是硬件開發(fā)的趨勢。Arduino簡單的開發(fā)方式使得開發(fā)者更關(guān)注創(chuàng)意與實現(xiàn),更快的完成項目開發(fā),大大節(jié)約了學(xué)習(xí)的成本,縮短了開發(fā)的周期。同時下載并配置ESP8266開發(fā)庫,方便ESP8266的開發(fā)。

3.2 硬件連接

在不改變機房網(wǎng)絡(luò)連接的基礎(chǔ)上,ESP6266通過有線或者無線方式接入機房局域網(wǎng),通過兩個開關(guān)按鈕向ESP8266發(fā)送開關(guān)機指令,當ESP8266收到按鈕信息后執(zhí)行開關(guān)機代碼,然后通過廣播方式將封裝好的喚醒數(shù)據(jù)包發(fā)送到局域網(wǎng)中,實現(xiàn)對局域網(wǎng)中計算機的開關(guān)機控制(見圖1)。

3.3 功能實現(xiàn)

該系統(tǒng)重點實現(xiàn)對局域網(wǎng)中計算機進行遠程開關(guān)機操作,用于減輕機房管理員逐臺手動開關(guān)機的工作量,提高機房管理員的工作效率。當機房管理員需要對計算機開機檢修或者批量關(guān)閉計算機時,僅需要按下連接ESP8266開發(fā)板上對應(yīng)的開關(guān)機按鈕就可以實現(xiàn)對批量計算機執(zhí)行相同的操作。同時也減少了機房計算機因非正常開關(guān)機帶來的負面影響,提升了計算機的使用率,延長了計算機整體的使用壽命。該系統(tǒng)目前只需要包含4個功能。

3.3.1 WiFi自動聯(lián)網(wǎng)功能

由于現(xiàn)在的網(wǎng)絡(luò)環(huán)境復(fù)雜,學(xué)院WiFi信號覆蓋有三四種,有的需要賬號和密碼,有的不需要密碼可以直連;再加上學(xué)生自己利用手機開設(shè)熱點,就會導(dǎo)致ESP8266加電會掃描到很多熱點,為了防止ESP8266“意外”連接到其他熱點,就需要通過控制實現(xiàn)ESP8266自動聯(lián)網(wǎng)功能,讓其在加電后直接連接上指定的熱點,確保ESP8266始終能夠連接到指定的局域網(wǎng)中。而ESP8266初次聯(lián)網(wǎng)后,系統(tǒng)會自動將WiFi的賬號、密碼自動保存在flash ROM中,當再次上電后先檢測保存的連接信息是否能夠聯(lián)網(wǎng),如果有有效的連接信息存在,則自動進行連接;否則自動建立“AutoConnectAP”熱點,通過手機連接“AutoConnectAP”熱點,選擇指定的WiFi信號并輸入密碼,完成ESP8266接入指定的網(wǎng)絡(luò)。通過此方法,極大地提升了ESP8266的普及率,可以使用ESP8266的WiFiManager庫實現(xiàn)自動聯(lián)網(wǎng)的功能。

由于本系統(tǒng)開發(fā)過程中暫不使用任何顯示設(shè)備,如何確定ESP8266是否聯(lián)網(wǎng)成功,也是需要考慮的問題。本系統(tǒng)使用ESP8266自帶的LED指示燈來提示用戶是否聯(lián)網(wǎng)成功,設(shè)計思路如下:

如果聯(lián)網(wǎng)成功,則ESP8266自帶的LED常亮;如果正在聯(lián)網(wǎng)則LED快速閃爍,嘗試連接WiFi熱點20次,還是連接不成功則停止連接,LED持續(xù)快速閃爍。通過這個方法,用戶就可以知道ESP8266的聯(lián)網(wǎng)狀況。實現(xiàn)代碼如圖2所示。

3.3.2 遠程開機功能實現(xiàn)

在局域網(wǎng)中通過arp–a命令獲取局域網(wǎng)中各計算機的MAC地址,MAC地址格式為“6C-0B-84-68-7B-38”,通過代碼檢測給定的MAC地址字符串是否是指定的長度。如果是代碼中自定的長度,則認為MAC地址正確,通過格式控制函數(shù)將獲取的MAC地址轉(zhuǎn)換成為十六進制表示格式“0x6C-0x0B-0x84-0x68-0x7B-0x38”;否則給出錯誤提示信息。

通過代碼將“0x6C-0x0B-0x84-0x68-0x7B-0x38”中的數(shù)據(jù)提取出來,剔除格式字符串中的“-”符號,并將數(shù)據(jù)保存到{0x6C,0x0B,0x84,0x68,0x7B,0x38}數(shù)組中,這個數(shù)組中的值就是構(gòu)造Magic Packet數(shù)據(jù)包要用到的數(shù)據(jù)。

根據(jù)Magic Packet白皮書描述,這個魔法數(shù)據(jù)包由6組 “FF”+16組十六進制的被喚醒計算機的MAC地址構(gòu)成(FFFFFFFFFFFF6C0B84687B386C0B84687B386C0B84687B386C0B84687B386C0B84687B38

6C0B84687B386C0B84687B386C0B84687B386C0B84687B386C0B84687B386C0B84687B386C0B84687B386C0B84687B386C0B84687B386C0B84687B386C0B84687B38)。因此需要通過代碼構(gòu)造Magic Packet數(shù)據(jù)包,實現(xiàn)代碼如圖3所示。

通過以上3個步驟,可以獲得Magic Packet封裝的數(shù)據(jù)包。通過UDP協(xié)議將封裝好的數(shù)據(jù)包發(fā)送到局域網(wǎng)中,這樣局域網(wǎng)中的計算機網(wǎng)卡都會收到這個喚醒數(shù)據(jù)包,網(wǎng)卡通過解析決定是否是自己的MAC地址,決定是否執(zhí)行喚醒操作,具體代碼如下:

void sendMagicPacket(char* _SingleMAC,IPAddress _broadcastAddress,uint16_t _NumPort){

……

//Constructing magic packet variable

size_t magicPacketSize = 6 +(6 * 16);? // FF*6 + MAC*16

uint8_t* magicPacket = new uint8_t[magicPacketSize];

if(strlen(_SingleMAC)==17){

sprintf(FormatString,”%%2x%c%%2x%c%%2x%c%%2x%c%%2x%c%%2x”,

_SingleMAC[2],_SingleMAC[5],_SingleMAC[8],_SingleMAC[11],_SingleMAC[14]);

intcounts=sscanf(_SingleMAC,(const char*)FormatString,&tempMACAddress[0],

&tempMACAddress[1],&tempMACAddress[2],&tempMACAddress[3],

&tempMACAddress[4],&tempMACAddress[5]);

if(counts==6){

for(int i=0;i<sizeof(tempMACAddress)/sizeof(*tempMACAddress);i++){

MACAddressHEX[i]=tempMACAddress[i];

Serial.print(MACAddressHEX[i],HEX);

}}

else{? ? ? Serial.println(“Conversion Failed !”);? ? }

generateMagicPacket(magicPacket, magicPacketSize,

MACAddressHEX, sizeof(MACAddressHEX));

for(int i=0;i<3;i++){

wifiUDP.beginPacket(_broadcastAddress,_NumPort);

wifiUDP.write(magicPacket,magicPacketSize);

sucessNum=wifiUDP.endPacket();

delay(100);

if(sucessNum==3){

Serial.println(“Data Send Succeed!”);

sucessNum=0;

}}}

else{? ? Serial.println(“MAC Address Data Format Error!”);? }? }

3.3.3 遠程關(guān)機功能實現(xiàn)

計算機處于正常運行狀態(tài),可以正常接收并執(zhí)行命令行。采用UDP協(xié)議通過廣播地址向局域網(wǎng)廣播,向整個局域網(wǎng)發(fā)送關(guān)機命令(shutdown),當計算機收到關(guān)機命令后,本地執(zhí)行關(guān)機命令實現(xiàn)遠程關(guān)機。實現(xiàn)代碼如下:

SendShutdown(uint16_t Numport){

Const char* ShutDown=”shutdown”;

int suceessNum=0;

for(int i=0;i<3;i++){

wifiUDP.beginPacket(_broadcastAddress,_NumPort);

wifiUDP.write(ShutDown,8);

sucessNum=wifiUDP.endPacket();

delay(100);

if(sucessNum==3){

Serial.println(“Data Send Succeed!”);

sucessNum=0;

}}}

4 功能測試

以聯(lián)想啟天M428-A119臺式計算機作為目標測試機,配置如下:

(1)CPU:Intel? Core(TM)i3-8100 @ 3.60 GHz 3.60 GHz;

(2)內(nèi)存:8 G內(nèi)存;

(3)操作系統(tǒng)類型:Windows7 64位旗艦版;

(4)網(wǎng)卡:Realtak PCIe GbE Family Controller千兆網(wǎng)卡;

從機房中隨機挑選4臺計算機,首先,進入BIOS界面,確保“Wake On LAN ”選項開啟。進入BIOS界面,切換到“Power”,修改“Wake On LAN”選項為“Automatic”,保存退出BIOS。

其次,修改網(wǎng)卡選項,確保可以接收到喚醒的數(shù)據(jù)包。進入Windows7系統(tǒng)桌面,鼠標右鍵單擊“我的電腦”—“屬性”—“設(shè)備管理器”—“網(wǎng)卡適配器”—“Realtak PCIe GbE Family Controller”,鼠標右鍵單擊此網(wǎng)卡,選擇“屬性”,彈出網(wǎng)卡屬性對話框。在“高級”選項卡中,修改“魔術(shù)封包”和“關(guān)機網(wǎng)絡(luò)喚醒”的值為“開啟”;在“電管理”選項卡中,勾選“允許此設(shè)備喚醒計算機”,點擊“確認”按鈕保存修改。

最后,將燒錄代碼的ESP8266開發(fā)板中,通過WiFi接入機房的局域網(wǎng),確保WiFi的IP地址和計算機的IP地址在同一個網(wǎng)段。ESP8266通電后LED燈點亮,表示ESP8266聯(lián)網(wǎng)成功。按下開發(fā)板上的“開機”按鍵,可以看到4臺計算機依次加電開啟,表明設(shè)計思路正確,獲取目標機MAC格式正確,系統(tǒng)代碼正常運行。

5 ? 結(jié)語

本系統(tǒng)旨在不改變原有機房布局和配置的前提下,無需安裝控制端程序,通過單個ESP8266開發(fā)板實現(xiàn)局域網(wǎng)中的遠程喚醒/關(guān)閉計算機功能,有效解決了機房批量開關(guān)機的難題,消除了機房的安全隱患,提升了機房管理效率。

[參考文獻]

[1]李佳.遠程控制技術(shù)在高校機房管理中的應(yīng)用探究[J].電腦編程技巧與維護,2019(10):34.

[2]儲懷川,王誠忠,張宇.基于GSM短信的無人機房遠程控制系統(tǒng)的設(shè)計[J].有線電視技術(shù),2017(5):67.

[3]高岳.機房管理中網(wǎng)絡(luò)遠程控制技術(shù)應(yīng)用研究[J].信息系統(tǒng)工程,2017(1):48-49.

(編輯 何 琳)

Research and implementation of remote switching machine room based on ESP8266

Tang Mingwei, Wu Dongchao*

(Jiangyin Vocational and Technical College, Jiangyin 214405, China)

Abstract:At present, there are a large number of computers in the computer room of each school. How to crack the batch switching on and off of the computer room and improve the daily management level and efficiency of the laboratory is a major problem in the computer room management. This paper proposes a scheme to realize the remote switching on and off of the computer room based on ESP8266, which aims to realize the WiFi network function of ESP8266 without adding computer software and hardware, find a set of effective methods for the daily operation and maintenance of the computer room.

Key words:remote control; ESP8266; magic packet; LAN

作者簡介:湯明偉(1980— ),男,江蘇江陰人,講師,碩士;研究方向:軟件技術(shù)。

通信作者:吳東超(1975— ),男,山東菏澤人,副教授,碩士;研究方向:計算機應(yīng)用。

主站蜘蛛池模板: 国产亚洲欧美另类一区二区| 亚洲人在线| 毛片免费网址| 中文字幕人妻无码系列第三区| 69精品在线观看| 狠狠干综合| 久视频免费精品6| 一本一本大道香蕉久在线播放| 亚洲精品视频免费观看| 久久九九热视频| 免费a在线观看播放| 91色综合综合热五月激情| 在线观看欧美国产| 国产99视频在线| 久久久久亚洲AV成人网站软件| 婷婷开心中文字幕| 四虎综合网| 99一级毛片| 免费99精品国产自在现线| 在线亚洲精品自拍| AV不卡无码免费一区二区三区| 天堂在线视频精品| 中国精品久久| 国产精品乱偷免费视频| 欧美一级一级做性视频| 亚洲国产精品一区二区第一页免 | 国产在线精品人成导航| 国产精品制服| 欧美高清三区| a在线亚洲男人的天堂试看| 在线国产综合一区二区三区| 成人福利在线看| 婷婷综合色| 亚洲天堂日韩在线| 国产成人精品一区二区三区| 国产欧美亚洲精品第3页在线| 91九色国产在线| 高清无码不卡视频| 日韩免费成人| 国产SUV精品一区二区6| 91精品情国产情侣高潮对白蜜| 成人欧美在线观看| 国产嫩草在线观看| 在线国产资源| 国产精品福利尤物youwu| 国产又爽又黄无遮挡免费观看| 亚洲三级色| 欧美在线视频不卡第一页| 国产精品福利在线观看无码卡| 久久中文无码精品| 国产SUV精品一区二区| 不卡视频国产| 国产免费自拍视频| 精品人妻AV区| 免费va国产在线观看| 99热最新网址| 国产aⅴ无码专区亚洲av综合网| 成人精品区| 日韩欧美国产综合| a免费毛片在线播放| 超级碰免费视频91| 欧美日韩亚洲综合在线观看| 中文字幕精品一区二区三区视频| 亚洲国产91人成在线| 日韩欧美在线观看| 成人亚洲视频| 久久99热66这里只有精品一| 亚洲日韩精品无码专区| 亚洲狼网站狼狼鲁亚洲下载| 欧美亚洲国产精品久久蜜芽| 国产v精品成人免费视频71pao| 女人18毛片一级毛片在线 | 国产第一色| 精品三级在线| 国产系列在线| 国产精品一区二区国产主播| 欧美一区日韩一区中文字幕页| 婷婷色狠狠干| 老司机精品一区在线视频| 亚洲色欲色欲www在线观看| 一级毛片免费不卡在线| 日韩麻豆小视频|