在個(gè)人電腦使用或者服務(wù)器管理中經(jīng)常需要對電腦進(jìn)行遠(yuǎn)程開關(guān)機(jī)、重啟的操作。出門在外想要查找電腦上的資料怎么辦,服務(wù)器出了故障需要重啟怎么辦,下班回家需要控制單位的電腦怎么辦。。。下面我們就對比一下各種遠(yuǎn)程開關(guān)機(jī)的方法和優(yōu)劣。
遠(yuǎn)程開機(jī)的原理一般有以下幾種
WOL, Wake on Lan的簡稱,顧名思義就是利用網(wǎng)絡(luò)喚醒。它是利用一種特定格式的網(wǎng)絡(luò)幻象包(Magic Packet)進(jìn)行廣播發(fā)送,發(fā)送的時(shí)候有指定電腦的mac地址信息,相應(yīng)mac地址的電腦網(wǎng)卡收到指定的信息后就會(huì)被喚醒。它是在局域網(wǎng)內(nèi)向廣域地址 x.x.x.255 的7或者9端口發(fā)送格式是 FF FF FF FF FF FF FF + MAC 地址 × 16 + 4-6字節(jié)的密碼(可空),前提是目標(biāo)電腦的網(wǎng)卡支持WOL,且系統(tǒng)已經(jīng)設(shè)置成允許網(wǎng)絡(luò)幻想包喚醒。網(wǎng)上有一些網(wǎng)絡(luò)喚醒的軟件或工具可以在局域網(wǎng)內(nèi)進(jìn)行遠(yuǎn)程喚醒,可以利用這些軟件進(jìn)行測試,甚至利用發(fā)送指令的規(guī)律我們可以直接通過網(wǎng)絡(luò)調(diào)試助手來進(jìn)行測試。發(fā)送指令內(nèi)容和設(shè)置如下圖:
要讓電腦支持網(wǎng)絡(luò)喚醒,首先需要網(wǎng)卡支持網(wǎng)絡(luò)喚醒,近十年內(nèi)的電腦一般都是支持的。其次是要在電腦bios設(shè)置里開啟網(wǎng)絡(luò)喚醒。電腦的bios設(shè)置根據(jù)主板而異,可以在網(wǎng)上搜索以下相應(yīng)主板的設(shè)置方法,一般都是在電源下的Wake on Lan選項(xiàng)打開即可。
設(shè)置好bios后在系統(tǒng)網(wǎng)卡設(shè)置中打開網(wǎng)絡(luò)喚醒。
這種遠(yuǎn)程開機(jī)也是利用主板的功能,一般的主板都自帶上電啟動(dòng)功能,就是當(dāng)電源重新恢復(fù)時(shí)可以自動(dòng)開機(jī)。利用這一點(diǎn)可以控制插座的開關(guān),打開插座電源就可以自動(dòng)開機(jī)了。這種方法同樣需要在bios中打開上電開機(jī)設(shè)置。
這種方法是屬于硬啟動(dòng)的方法,利用繼電器或遠(yuǎn)程開關(guān)直接接到電腦的開機(jī)電源信號線上,然后模擬電腦的開機(jī)按鍵進(jìn)行遠(yuǎn)程開機(jī)。
這類智能插座的原理都是上電開機(jī),遠(yuǎn)程控制wifi插座開關(guān)后就可以喚醒電腦。這種方法的成本一般在40元左右。
向日葵的開機(jī)棒利用的是內(nèi)網(wǎng)wol喚醒,只需要把開機(jī)棒用網(wǎng)線連接到同一局域網(wǎng)下就可以實(shí)現(xiàn)遠(yuǎn)程開機(jī)。連上后按照說明書打開bios的網(wǎng)絡(luò)喚醒,然后在向日葵的官網(wǎng)上綁定要開機(jī)的mac地址即可。這種方法的成本大約在80元左右。
這種方法才是今天要介紹的重點(diǎn)。ESP8266是一個(gè)wifi控制的模塊,在局域網(wǎng)中可以發(fā)送一些指令或控制繼電器。
blinker點(diǎn)燈科技的app可以綁定esp8266模塊實(shí)現(xiàn)遠(yuǎn)程控制。這樣我們就可以利用點(diǎn)燈科技的app遠(yuǎn)程讓ESP8266發(fā)送控制電腦的指令,可以直接發(fā)送網(wǎng)絡(luò)幻像包利用wol啟動(dòng)電腦,也可以利用繼電器控制電腦的電源插座開關(guān)或者模擬電腦的開機(jī)鍵。
esp8266的價(jià)格淘寶上價(jià)格在8元左右,加上燒錄器也只需要15元,因此這種方法的成本非常低。也有和它配套的繼電器模塊,二者組合就可以DIY一個(gè)智能插座。
下面介紹以下用ESP8266DIY開機(jī)棒的過程。
所需材料:ESP8266-01,usb轉(zhuǎn)串口下載器,arduino IDE客戶端
1.下載安裝arduino ide客戶端并安裝esp8266的SDK
因?yàn)榫W(wǎng)絡(luò)原因可能在ide中直接安裝不了8266的sdk,這里轉(zhuǎn)貼一個(gè)安裝的方法
Arduino IDE安裝esp8266 SDK(Windows10)
2.安裝點(diǎn)燈科技的sdk
庫下載地址:點(diǎn)擊下載
下載后解壓到我的電腦-文檔-arduino-libraries目錄下就可以了
3.安裝點(diǎn)燈科技app blinker
安裝好后注冊賬戶并登錄。
添加設(shè)備,選擇arduino設(shè)備,用wifi接入,添加后獲得一個(gè)Secret Key,記下這個(gè)Secret Key,返回設(shè)備列表后就多了一個(gè)新建的設(shè)備。
點(diǎn)進(jìn)去之后點(diǎn)右上角編輯 添加按鍵,編輯按鍵的文本名并記下來數(shù)據(jù)鍵名。
4.打開arduino ide寫入以下代碼。
替換剛才獲得的Secret Key,要控制電腦的mac地址,控制電腦的網(wǎng)段地址,填入wifi賬號和密碼。
#define BLINKER_WIFI
#include <Blinker.h>
#include <WiFiUDP.h>
#include <ESP8266Ping.h>
char auth[] = "xxxxxxxx";//app中獲取到的Secret Key(密鑰)
char ssid[] = "";//填入wifi賬號
char pswd[] = "";//填入wifi密碼
byte mac1[] = {0x40, 0xB8, 0x76, 0xA8, 0x38, 0xA6};//喚醒目標(biāo)電腦的mac為40 B8 76 A8 38 A6 ,替換為自己的電腦mac地址
byte preamble[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
IPAddress ip(192, 168, 31, 255); //幻數(shù)據(jù)包需要在局域網(wǎng)中廣播發(fā)送 要控制的電腦的網(wǎng)段的255地址
//int pingResult;
WiFiUDP UDP; //建立一個(gè)WiFiUDP對象 UDP
// 新建組件對象
BlinkerButton Button1("btn-abc");//注意:內(nèi)容替換為app中添加按鍵的數(shù)據(jù)鍵名
int GPIO = 0; //定義繼電器輸入引腳為GPIO/0
// 按下BlinkerAPP按鍵即會(huì)執(zhí)行該函數(shù)
// 按下按鍵即會(huì)執(zhí)行該函數(shù)
void button1_callback(const String & state)
{
UDP.beginPacket(ip, 7); //UDP發(fā)送到目標(biāo)(IP,端口)
UDP.write(preamble, sizeof preamble); //寫入包頭(FF,FF,FF,FF,FF,FF)
for (byte i = 0; i < 16; i++)
{
UDP.write(mac1, sizeof mac1);
}
Serial.println("喚醒主機(jī)");
UDP.endPacket();
}
void setup()
{
// 初始化串口,并開啟調(diào)試信息,調(diào)試用可以刪除
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
// 初始化IO
pinMode(GPIO, OUTPUT);
digitalWrite(GPIO, HIGH);
// 初始化blinker
Blinker.begin(auth, ssid, pswd);
Button1.attach(button1_callback);
}
void loop()
{
Blinker.run();
}
5.編譯上傳程序
把esp8266模塊插入燒錄器中,插入電腦的usb口,右鍵單擊電腦設(shè)備管理,查看設(shè)備用的com口。
在arduino程序中點(diǎn)擊工具,開發(fā)板,選擇8266,端口選擇模塊占用的com口。
選擇好后點(diǎn)擊項(xiàng)目,上傳就可以把程序進(jìn)行編譯并上傳到esp8266中。等程序上傳結(jié)束后就可以打開app進(jìn)行測試了。調(diào)試過程中可以利用串口助手和網(wǎng)絡(luò)調(diào)試助手檢測是否發(fā)送了信息。遠(yuǎn)程開機(jī)的前提條件是已經(jīng)打開了主板wol功能,利用網(wǎng)絡(luò)調(diào)試助手可以進(jìn)行遠(yuǎn)程開機(jī)。調(diào)試正常后出門在外想要打開家里的電腦只需要在點(diǎn)燈blinker的app里按一下開機(jī)鍵就可以了。
點(diǎn)燈科技的接口還支持接入小愛同學(xué)、天貓精靈等智能音箱,所以把程序稍加改動(dòng)也可以實(shí)現(xiàn)用智能音箱語言控制開機(jī)。
遠(yuǎn)程開機(jī)后就可以利用teamviewer、向日葵或者windows自帶的遠(yuǎn)程桌面進(jìn)行遠(yuǎn)程控制了,遠(yuǎn)程關(guān)機(jī)的辦法一般就是連接遠(yuǎn)程桌面后直接關(guān)機(jī),或者也可以用qq機(jī)器人腳本實(shí)現(xiàn)qq消息自動(dòng)關(guān)機(jī)。
聯(lián)系客服