查看: 419|回复: 0
打印 上一主题 下一主题

【翻译教程】enc28J60 和 Arduino (4)——网络唤醒

[复制链接] qrcode

32

主题

34

帖子

103

积分

注册会员

Rank: 2

积分
103
楼主
跳转到指定楼层
发表于 2015-3-26 10:17 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   在这个教程我将演示如何用arduino网络唤醒你的电脑。
   几乎所有的网络适配器都有网络唤醒功能。他通过在网络上发送一个特殊指令唤醒你的电脑。

准备工作


    使用此功能的两个主要要求:

    如果您的网络适配器没有嵌入在主板上,你必须将电缆连接到主板:

    在BIOS中启用WOL功能  :

    有些主板如果网络适配器关闭了WOL After Power Loss(断电后是否启用WOL)功能将无法唤醒的PC。事实上,新的主板可以启用WOL功能,即使断电后,你可以配置此功能,在主板的BIOS:


Magic Packet

    唤醒命令是在网络上发送的一个特殊数据包,称为Magic Packet,这个数据包被本地网络所有设备接收,因为他的目标MAC地址为广播地址(FF:FF:FF:FF:FF:FF),后面为要唤醒电脑的MAC地址重复16次。

    并不需要选择高级别的协议,一般约定用UDP协议,目标端口为7或者9。

ARDUINO

    注意:EtherCard库在这个应用有一个bug,我已经做了修正,请确保下载最新的库。

    你可以用sendWol()方法发送Magic Packet;这个方法需要目标电脑MAC地址作为参数:

通常,你可以找到完整代码在 GitHub repository
利用网络分析工具如Wireshark,你可以查看arduino发送的数据包,你会发现数据包是正常的:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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