WOL远程开机——通过ESP8266+blinker(点灯)平台实现

本文介绍了如何使用ESP8266和Blinker物联网平台实现远程WOL开机,适用于没有公网IP、服务器或高级路由器的用户。详细步骤包括设置WOL、编写ESP8266程序、Blinker平台配置和程序烧写,成本低廉,适合DIY爱好者。
摘要由CSDN通过智能技术生成

WOL远程开机——通过ESP8266+blinker(点灯)平台实现

之前疫情现在家里,无聊时改装家里的吸顶灯入网时,寻找了各种物联网平台,最终找到了blinker(点灯)这个物联网平台,APP很简洁,同时提供方便的API接口,非常适于DIY。
然后就是这次的想法,开学后已经搞好了Teamview远程连接自己的实验室电脑,使自己在宿舍也能科(hua)研(shui),但又因为实验室电脑总是开着,感觉不舒服(毕竟是自己配的机子,不舍得一直烧着)。于是想着怎么远程开关机,淘宝上的向日葵开机棒一个108,看了看原理,发现身为一个电子专业的科研狗,买了就是交智商税,刚好想到了用前面提到的平台,就可以实现远程开机,最后成本就8块钱(或者不要钱,我的ESP8266是本科玩剩下的,用不完就送学弟了)。

说明

本方法适合没公网IP的、没自己服务器的、没高级路由器的三无玩家,有以上几个的也可以这么搞,但没必要,毕竟(教程一堆):

  1. 宽带是公网IP的直接走内网映射
  2. 有腾讯云、阿里云服务器的直接走转发
  3. 有高级路由器的(带WOL功能)直接设置
    但是如果图方便也可以

预备知识

  1. 计算机网络基本知识
  2. C语言基本知识
  3. Arduino编程经验(没有也行)
    (如果是电子专业的,肯定没啥障碍)

所需材料和前提

前提

  1. 自己的电脑支持WOL
  2. 连着网的路由器
    (没有上面两个前提的可以直接放弃)

材料

  1. 手机APP(blinker,Android & IOS 平台都有)
  2. ESP8266模块一个

调试下载工具

  1. Arduino IDE平台(编译用)
  2. USB转TTL模块(下载用)

原理

如果有上述提到的预备知识,则整体原理会非常简单,一句话概括就是手机APP端发送MQTT包到ESP8266,ESP8266转发WOL的UDP包到本地子网。

WOL

WOL(Wake On LAN) 局域网唤醒,顾名思义,是一种在局域网内唤醒PC的一种技术。其主要原理是向本地子网内的机器广播一个包含有目标机器网卡MAC地址的一个UDP包(WOL魔术包),所有接收到的机器解析包中的MAC地址,匹配成功的网卡发送对应命令,开启电脑。

Blinker平台

Blinker平台简介其官网有具体的介绍(链接在这),在此就大致说明一下本方法所用到的原理即可。
原理

大致原理即如图所示,在局域网内网中,手机客户端直接通过局域网与ESP8266通讯,ESP8266接收到指令后进行WOL包的广播发送,在非局域网的远程连接中,ESP8266与Blinker服务器连接,同时手机客户端向Blinker服务器发送相关指令后,服务器转发给远端的ESP8266后,ESP8266发送WOL包唤醒电脑。

步骤

STEP1:设置WOL(实现内网唤醒)

WOL在BIOS中设置,具体的机器需要具体设置,就是在BIOS中打开一个选项开关,具体步骤自己在BIOS中找,我的电脑的设置如下:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

其次就是在Windows中设置网卡的步骤,设置步骤如下:
首先在设备管理器中找到自己的以太网卡,找到连网线的那个网卡,进行如下操作:
在这里插入图片描述

然后继续在此页面下进行已下操作:
在这里插入图片描述

最后在网络和共享中心中查看自己网卡的MAC地址和IP地址:
在这里插入图片描述

全部设置正确后,便可以在本地局域网下进行设备唤醒了。
iOS下的Wolow软件可以进行测试,在手机连接路由器后(手机,电脑在同一个子网下,同时路由器没有开启AP隔离功能(一般都不开启)),进入对应设置,点击唤醒电脑就可以唤醒了。

注:最好在路由器中设置PC的IP与MAC绑定,方便后续的开机状态检查功能拓展,若不设置此项,开机功能可以用,但是可能无法进行设备开启状态检查!!!

Wolow软件设置如下:

首先添加新设备,界面如下:

在这里插入图片描述

接下来按照提示进行相关设置的填写,界面如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A03j8cz4-1598239993341)(\app2.jpg)]

设置完成后进行测试,若PC没能启动检查是否有设置错误的地方,直到测试成功唤醒。

STEP2:ESP8266程序编写 + Blinker设置(实现外网唤醒)

先贴程序,对着程序进行解释:

/**
 * 本项目简单的利用了blinker的Button例程,在客户端按下按键后,
 * 通过MQTT通知ESP8266触发按键处理函数,按键处理函数主要负责
 * 发送WOL的UDP魔术包,WOL魔术包格式如下
 * FF FF FF FF FF FF ( XX XX XX XX XX XX (网卡的MAC地址)) x 16
 * 包的总大小为 6+6*16 = 102 Byte 
*/

#define BLINKER_WIFI

#include <Blinker.h>

//对应客户端的秘钥
char auth[] = "************";
//WIFI SSID
char ssid[] = "XXXX";
//WIFI Password
char pswd[] = "XXXX";

#define BUTTON_1 "OPEN"


WiFiUDP Udp;
//网卡的IP地址
const IPAddress remote_ip(192, 168, 0, 1);
//根据自己的路由器选择子网段的广播地址
#define BROADCAST_ADD "192.168.1.255"
//网卡唤醒端口(一般为9或7,可以在BIOS中查看)
#define REMOTEPORT 9
//ESP8266端口,随便填一个,也填成9
#define LOCALPORT 9
//网卡的MAC地址 6个字节    
char NETCARD_MAC[6] = {
   0xAA,0xAA,0xAA,0xAA,0xAA,0xAA};
//WOL包
char WOL_Buffer[102];

//调试开关
//#define WOL_DEBUG

//WOL魔术包初始化
void WOL_packet_init()
{
   
	int i,j;
	for(i=0;i<6;i++)
	{
   
	WOL_Buffer[i] = 0xFF;
	}
	for(i=
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值