远程开机-更方便的WOL-使用WOL库-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3360|回复: 9

[分享] 远程开机-更方便的WOL-使用WOL库

[复制链接]
发表于 2020-8-11 21:43 | 显示全部楼层 |阅读模式
主要就是用WOL的库
在Arduino的库管理器搜索wol
第一个就是
下面直接放点灯源码
#define BLINKER_WIFI
#include <WiFiUdp.h>

#include <WakeOnLan.h>

WiFiUDP UDP;
WakeOnLan WOL(UDP);
#include <Blinker.h>

char auth[] = "key";
// 编写:1812z 这里需要改
char ssid[] = "ssid";
char pswd[] = "password";


void wakeMyPC() {
    const char *MACAddress = "E0:3F:49:7A:92:EE";
  //上面改mac地址
    WOL.sendMagicPacket(MACAddress); // Send Wake On Lan packet with the above MAC address. Default to port 9.
    // WOL.sendMagicPacket(MACAddress, 7); // Change the port number
}
BlinkerButton Button2("BUTTON_2");
void button2_callback(const String & state)
{

    BLINKER_LOG("get button state: ", state);

    if (state == BLINKER_CMD_BUTTON_TAP) {
        BLINKER_LOG("Button tap!");
           wakeMyPC();
    }
    else{
      digitalWrite(LED_BUILTIN, LOW);
     Blinker.delay(1000);
     digitalWrite(LED_BUILTIN, HIGH);

    }
}
void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);

      pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, HIGH);

    Blinker.begin(auth, ssid, pswd);

      //wol
       WOL.setRepeat(3, 100); // Optional, repeat the packet three times with 100ms between. WARNING delay() is used between send packet function.

    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }
}
    void loop()
    {
      Blinker.run();
    }



源码需要改key,wifi名字和密码,自己电脑mac地址
手机app只要加个按键,数据改BUTTON_2 即可
点击就会让指定电脑开机【如何指定看源码注释】
发表于 2020-8-12 08:56 | 显示全部楼层
不用改装,比主板接线简单。问题是关机不方便,可能需要在pc上开发个程序,来监听udp关机指令
发表于 2020-8-12 23:17 来自手机 | 显示全部楼层
本帖最后由 lh5263872 于 2020-8-12 23:19 编辑

有些主板断电后,wol会失效,待机电不能断,我有3台电脑,其中两台停电后再来电就不能wol开机
 楼主| 发表于 2020-8-14 18:27 | 显示全部楼层
奈何col 发表于 2020-8-12 08:56
不用改装,比主板接线简单。问题是关机不方便,可能需要在pc上开发个程序,来监听udp关机指令 ...

关机可看我上篇文章,用继电器的
 楼主| 发表于 2020-8-14 18:27 | 显示全部楼层
lh5263872 发表于 2020-8-12 23:17
有些主板断电后,wol会失效,待机电不能断,我有3台电脑,其中两台停电后再来电就不能wol开机 ...

的确,这样主板可以设置来电自启,或者我上篇文章用的继电器
发表于 2020-8-21 17:10 | 显示全部楼层
wol一般路由器就可以,不过我路由器每天都自动重启,可以搭配继电器来通电自动开机
 楼主| 发表于 2020-8-23 16:05 | 显示全部楼层
shic 发表于 2020-8-21 17:10
wol一般路由器就可以,不过我路由器每天都自动重启,可以搭配继电器来通电自动开机 ...

路由器要openwrt这种把,,,
我是把这个程序作为附加程序的,合并在其它设备上
还有继电器可以用光藕代替,便宜,没声音
发表于 2021-1-24 14:50 | 显示全部楼层
void setup() 里面好像是少啦一句代码吧
应该在void setup()加上这一句才可以吧  Button2.attach(button2_callback);
 楼主| 发表于 2021-1-28 23:25 | 显示全部楼层
花西子 发表于 2021-1-24 14:50
void setup() 里面好像是少啦一句代码吧
应该在void setup()加上这一句才可以吧  Button2.attach(button2_ ...

az,我也没注意,只是自己测试了下,感谢指出错误
发表于 2021-1-29 04:23 | 显示全部楼层
WOL需要主板支持并开启
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 15:41 , Processed in 0.095707 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表