当前位置:
文章详情

远程开关机的方法(教你10元用esp8266 DIY远程开机棒)

2020-06-04 13:13:05 184点赞 1580收藏 107评论

在个人电脑使用或者服务器管理中经常需要对电脑进行远程开关机、重启的操作。出门在外想要查找电脑上的资料怎么办,服务器出了故障需要重启怎么办,下班回家需要控制单位的电脑怎么办。。。下面我们就对比一下各种远程开关机的方法和优劣。

一、远程开机的原理

远程开机的原理一般有以下几种

1.WOL网络唤醒

WOL, Wake on Lan的简称,顾名思义就是利用网络唤醒。它是利用一种特定格式的网络幻象包(Magic Packet)进行广播发送,发送的时候有指定电脑的mac地址信息,相应mac地址的电脑网卡收到指定的信息后就会被唤醒。它是在局域网内向广域地址 x.x.x.255 的7或者9端口发送格式是 FF FF FF FF FF FF FF + MAC 地址 × 16 + 4-6字节的密码(可空),前提是目标电脑的网卡支持WOL,且系统已经设置成允许网络幻想包唤醒。网上有一些网络唤醒的软件或工具可以在局域网内进行远程唤醒,可以利用这些软件进行测试,甚至利用发送指令的规律我们可以直接通过网络调试助手来进行测试。发送指令内容和设置如下图:

远程开关机的方法(教你10元用esp8266 DIY远程开机棒)

要让电脑支持网络唤醒,首先需要网卡支持网络唤醒,近十年内的电脑一般都是支持的。其次是要在电脑bios设置里开启网络唤醒。电脑的bios设置根据主板而异,可以在网上搜索以下相应主板的设置方法,一般都是在电源下的Wake on Lan选项打开即可。

bios网络唤醒设置bios网络唤醒设置

设置好bios后在系统网卡设置中打开网络唤醒。

远程开关机的方法(教你10元用esp8266 DIY远程开机棒)

远程开关机的方法(教你10元用esp8266 DIY远程开机棒)

2.电脑上电自动启动

这种远程开机也是利用主板的功能,一般的主板都自带上电启动功能,就是当电源重新恢复时可以自动开机。利用这一点可以控制插座的开关,打开插座电源就可以自动开机了。这种方法同样需要在bios中打开上电开机设置。

远程开关机的方法(教你10元用esp8266 DIY远程开机棒)


3.远程模拟电脑开机键

这种方法是属于硬启动的方法,利用继电器或远程开关直接接到电脑的开机电源信号线上,然后模拟电脑的开机按键进行远程开机。

二.各种远程开机的方法对比

1.智能插座远程开机

向日葵开机插座开机超人wifi智能插座手机远程开机自动断电远程唤醒主机定时开关无需WOL远程电脑游戏排队49元天猫精选去购买


小米米家智能插座插头WiFi版创意电源插线板多功能插排远程控制接线板39元天猫精选去购买

这类智能插座的原理都是上电开机,远程控制wifi插座开关后就可以唤醒电脑。这种方法的成本一般在40元左右。

远程开关机的方法(教你10元用esp8266 DIY远程开机棒)

2.向日葵开机棒

向日葵的开机棒利用的是内网wol唤醒,只需要把开机棒用网线连接到同一局域网下就可以实现远程开机。连上后按照说明书打开bios的网络唤醒,然后在向日葵的官网上绑定要开机的mac地址即可。这种方法的成本大约在80元左右。

花生棒花生壳内网穿透远程办公NATngrok公网IP端口映射内网穿透神器微信测试frp办公SVN建站DDNS78元天猫精选去购买

3.利用ESP8266WIFI模块DIY远程开机棒

这种方法才是今天要介绍的重点。ESP8266是一个wifi控制的模块,在局域网中可以发送一些指令或控制继电器。

blinker点灯科技的app可以绑定esp8266模块实现远程控制。这样我们就可以利用点灯科技的app远程让ESP8266发送控制电脑的指令,可以直接发送网络幻像包利用wol启动电脑,也可以利用继电器控制电脑的电源插座开关或者模拟电脑的开机键。

esp8266的价格淘宝上价格在8元左右,加上烧录器也只需要15元,因此这种方法的成本非常低。也有和它配套的继电器模块,二者组合就可以DIY一个智能插座。

ESP8266串口WIFI无线模块WIF收发无线模块ESP-01ESP-01S4.2元淘宝精选去购买


下面介绍以下用ESP8266DIY开机棒的过程。

所需材料:ESP8266-01,usb转串口下载器,arduino IDE客户端

1.下载安装arduino ide客户端并安装esp8266的SDK

因为网络原因可能在ide中直接安装不了8266的sdk,这里转贴一个安装的方法

Arduino IDE安装esp8266 SDK(Windows10)

2.安装点灯科技的sdk

点灯科技的官方教程

库下载地址:点击下载

下载后解压到我的电脑-文档-arduino-libraries目录下就可以了

3.安装点灯科技app blinker

安装好后注册账户并登录。

添加设备,选择arduino设备,用wifi接入,添加后获得一个Secret Key,记下这个Secret Key,返回设备列表后就多了一个新建的设备。

远程开关机的方法(教你10元用esp8266 DIY远程开机棒)

点进去之后点右上角编辑 添加按键,编辑按键的文本名并记下来数据键名。

远程开关机的方法(教你10元用esp8266 DIY远程开机棒)

4.打开arduino ide写入以下代码。

替换刚才获得的Secret Key,要控制电脑的mac地址,控制电脑的网段地址,填入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};//唤醒目标电脑的mac为40 B8 76 A8 38 A6 ,替换为自己的电脑mac地址
byte preamble[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
IPAddress ip(192, 168, 31, 255); //幻数据包需要在局域网中广播发送 要控制的电脑的网段的255地址
//int pingResult;
WiFiUDP UDP; //建立一个WiFiUDP对象 UDP

// 新建组件对象
BlinkerButton Button1("btn-abc");//注意:内容替换为app中添加按键的数据键名
int GPIO = 0; //定义继电器输入引脚为GPIO/0

// 按下BlinkerAPP按键即会执行该函数
// 按下按键即会执行该函数
void button1_callback(const String & state)
{
UDP.beginPacket(ip, 7); //UDP发送到目标(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("唤醒主机");
UDP.endPacket();
}
void setup()
{
// 初始化串口,并开启调试信息,调试用可以删除
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口,右键单击电脑设备管理,查看设备用的com口。

在arduino程序中点击工具,开发板,选择8266,端口选择模块占用的com口。

远程开关机的方法(教你10元用esp8266 DIY远程开机棒)

选择好后点击项目,上传就可以把程序进行编译并上传到esp8266中。等程序上传结束后就可以打开app进行测试了。调试过程中可以利用串口助手和网络调试助手检测是否发送了信息。远程开机的前提条件是已经打开了主板wol功能,利用网络调试助手可以进行远程开机。调试正常后出门在外想要打开家里的电脑只需要在点灯blinker的app里按一下开机键就可以了。

远程开关机的方法(教你10元用esp8266 DIY远程开机棒)

点灯科技的接口还支持接入小爱同学、天猫精灵等智能音箱,所以把程序稍加改动也可以实现用智能音箱语言控制开机。

远程开机后就可以利用teamviewer、向日葵或者windows自带的远程桌面进行远程控制了,远程关机的办法一般就是连接远程桌面后直接关机,或者也可以用qq机器人脚本实现qq消息自动关机。


利用酷Q机器人远程控制服务器的方法



展开 收起
107评论

  • 精彩
  • 最新
  • 可行,但对于大部分人来说,弄个小米的智能插座,在手机上操作更为简单和美观,也多花不了几个钱。

    校验提示文案

    提交
    DIY的乐趣是钱能买到的吗? [中指]

    校验提示文案

    提交
    是的 这个主要就是自己折腾一下 成本低

    校验提示文案

    提交
    还有7条回复
    收起所有回复
  • 这个调试好了以后可以接在路由器的USB口使用唤醒功能吗?

    校验提示文案

    提交
    可以 找个充电头插上就可以 直接插电脑上把电脑主板调成关机usb供电也可以的

    校验提示文案

    提交
    好的,谢谢分享

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 好复杂的样子

    校验提示文案

    提交
    不复杂 买回来烧个程序就好了

    校验提示文案

    提交
    老毛子固件,高恪固件等等直接支持mac远程开机。关机用向日葵远程控制

    校验提示文案

    提交
    收起所有回复
  • 想看实现智能音箱控制开机,现在自己是路由器刷了padavan,也方便开机。

    校验提示文案

    提交
    音响控制可以直接用智能插座 用这个的话也简单 加几行代码就行了 我回头贴出来你看下

    校验提示文案

    提交
    收起所有回复
  • 如果有成品卖就好了,这个太复杂了

    校验提示文案

    提交
    成品就买个小米智能插座就好了 远程关闭插座10秒后再打开就行

    校验提示文案

    提交
    如果有公网IP的话,可以先主板BIOS和系统设置好,然后注册个花生壳什么的,搞好DDNS,然后手机端用WOL这个APP,直接就能唤醒,一毛钱都不用花,前提是要有公网IP

    校验提示文案

    提交
    还有8条回复
    收起所有回复
  • 8266丢包挺严重的最好校验一下数据 [观察]

    校验提示文案

    提交
    远程开机的幻象包没有反馈的。。。怕丢包可以多点几次 开机后再收到数据没影响

    校验提示文案

    提交
    开完以后可以ping一下主机,可以检测是否开机

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 路由开个端口,静态绑定下IP,手机下个wol,有公网开个ddns,远程唤醒零成本。

    校验提示文案

    提交
    大神怎么搞,能教我下吗

    校验提示文案

    提交
    没公网ip哦

    校验提示文案

    提交
    收起所有回复
  • 你这也太麻烦了,我直接路由器绑定花生壳,远程登录路由器点一下唤醒就搞定了

    校验提示文案

    提交
    其实不麻烦。。。买个东西烧个程序就好了 我直接烧好后放进电动窗帘里了 刚好是3.3v的电压

    校验提示文案

    提交
    收起所有回复
  • 这么麻烦,淘宝买个40元的wifi.开机卡就搞定了

    校验提示文案

    提交
    各有利弊 拆机卡也不简单 还得拆机箱

    校验提示文案

    提交
    的确,不过我用那款开机卡有个好处,除了能接入小爱和Siri,还能通过公众号来开关,有时候用电脑微信就开机了,懒得碰手机

    校验提示文案

    提交
    收起所有回复
  • 我以为是8266控制舵机按开机按钮 [装大款] 不过你这种方法也不错,比较美观 [亲亲]

    校验提示文案

    提交
    想直接控制按钮的话不用舵机 直接把8266放主机里 把主板的开机信号线接一根出来到8266的io口上程序直接控制

    校验提示文案

    提交
    收起所有回复
  • @Timmy- 你好,为什么我按照教程做了,手机APP上也显示设备在线,但是就是无法启动?点了开机没有反应

    校验提示文案

    提交
    你的电脑设置好网络唤醒了吗 用网络调试助手或者网络唤醒软件能不能打开 我帮你加我qq492073421

    校验提示文案

    提交
    收起所有回复
  • ipsec连上路由器然后再让siri帮我开电脑关电脑

    校验提示文案

    提交
    前提是有公网IP,不然还要搞内网穿透。 [高兴]

    校验提示文案

    提交
    收起所有回复
  • 我的电脑都是24小时开机

    校验提示文案

    提交
    Bios设置断电来电后自动开机

    校验提示文案

    提交
    我的也是24小时开机 [得意] [得意] ,然后定时每天早上7点开机,即使断电了,明早7点照样开 [得意]

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 物联网专业给你点个赞

    校验提示文案

    提交
  • 直接把esp8266装在主板和主机开机键之间
    通过mqtt控制 电脑什么设置都不用
    开机 强制关机 重启
    一次性解决 简单粗暴

    校验提示文案

    提交
  • 谢谢提醒,发现我的荣耀路由pro有远程唤醒插件,直接省去了更新轻薄本的需求 [高兴]

    校验提示文案

    提交
  • 好复杂,马家小店就有专门的,原理就是配套手机软件打开控制器连接主板开机并线。

    校验提示文案

    提交
  • kaixing.wang的博客有解决方案

    校验提示文案

    提交
  • test12345

    校验提示文案

    提交
  • test123456

    校验提示文案

    提交
提示信息

取消
确认
评论举报

最新文章 热门文章
1.5K
扫一下,分享更方便,购买更轻松