【物联网-远程开机实现方案(esp8266+WOL+阿里云)】

原理概述

在这里插入图片描述

  • 原理:利用WOL(Wake On LAN)技术,可实现关机/睡眠状态下的台式机电脑被处理同一局域网下的设备通过魔术包(一种具有特定载荷的UDP协议包)唤醒。在此基础上,利用ESP8266WIFI模块接入公共物联网平台,使得ESP8266WIFI模块可被物联网平台配套应用远程操控。完整的流程为:移动端通过公共物联网平台发送指令->ESP8266WIFI模块收到指令后向局域网内的台式机发送魔术包->台式机收到魔术包被唤醒
  • 硬件设施:台式机设备(主板:微星H610M爆破弹 网卡:Intel Ethernet connection (17) 1219-V、ESP8266_NodeMcu开发板
  • 开发环境:ArduinoIDE

1 WOL实现

1.1 WOL配置

  • WOL是一种让网卡在主机关机的状态下仍保持工作,等待接收到魔术包即唤醒主机的技术。主流的主板一般均具备WOL功能,一般需要在BIOS以及网卡属性中进行相关设置,网卡的设置步骤基本相同,但是不同的主板BIOS设置步骤不同。请根据自身具体情况调整。此外,大部分无线网卡不支持关机后工作,所以WOL唤醒方案只适合有限网卡的主机
  • 微星H610M爆破弹BIOS设置
    待补充
  • Intel Ethernet connection (17) 1219-V网卡设置
    待补充

1.2 WOL测试

  • 完成BIOS和网卡的相关设置后将电脑关机,观察机箱网线接口处的灯是否保持闪烁,如果闪烁证明网卡在关机后仍在正常数据收发,这是接收唤醒包的必备条件。

  • 使用测试工具测试唤醒包是否能正常收到。这里需要两类工具,一是主机端的捕获网络数据的工具,二是唤醒包发送工具。

  • 主机端捕获工具
    1)协议类型选择UDP
    2)本地端口号选择7或者9(建议分别尝试)
    在这里插入图片描述

  • 唤醒包发送工具

  • 1)将手机连接到与主机同一局域网。在微信小程序中搜索下图小程序

  • 2)MAC地址填写本机地址

  • 3)点击唤醒
    在这里插入图片描述

  • 4)观察主机端捕获工具数据接收,出现以下内容表示收到了唤醒包

  • 唤醒包的载荷格式为【FF FF FF FF FF FF】+【主机MAC】*16
    在这里插入图片描述
    至此主机端WOL唤醒完毕。

2 代码开发测试

2.1 阿里云平台部署

主页搜索生活物联网平台(飞燕)–>管理控制台–>项目–>创建产品–>【功能定义】–>【人机交互】选云智能并完成【产品展示】【配网引导】【绑定方式】【设备面板】灯一系列基础配置
–>【设备调试】中新增测试设备记录PRODUCT_KEY、DEVICE_NAME、DEVICE_SECRET
–>在【产品说明书】中点击下载配网二维码填写DEVICE_NAME。

2.2 Arduino环境下的代码编译

  • 依赖的Arduino库:ArduinoJson、AliyunIoTSDK、Crypto、WIFIManager、PubSubClient
    #include <ESP8266WiFi.h>
    //#include <Wire.h>
    #include <WiFiUdp.h>
    #include <ArduinoJson.h>
    #include <AliyunIoTSDK.h>

  • PubSubClient.h 的修改(适配与阿里云的MQTT通讯)
    MQTT_MAX_PACKET_SIZE 改为1024
    MQTT_KEEPALIVE 改为65
    // MQTT_MAX_PACKET_SIZE : Maximum packet size. Override with setBufferSize().
    #ifndef MQTT_MAX_PACKET_SIZE
    #define MQTT_MAX_PACKET_SIZE 1024
    #endif
    // MQTT_KEEPALIVE : keepAlive interval in Seconds. Override with setKeepAlive()
    #ifndef MQTT_KEEPALIVE
    #define MQTT_KEEPALIVE 65
    #endif

  • 代码中的以下三项按物联网平台中生成的填写
    #define PRODUCT_KEY "XXXXXXX"
    #define DEVICE_NAME "XXXXXX"
    #define DEVICE_SECRET "XXXXXXXXX"

  • 编译通过后将程序烧写到开发板中。正常情况下设备首先会连接WIFI成功,再连接MQTT服务器成功。此后物联网平台可看到设备在线。

2.3 在线调试

  • 进入到【设备调试】,选择具体设备,会进入在线调试界面,读写对应的属性右侧日志窗口会有日志,esp8266的调试串口输出端会有打印信息

2.4 云智能APP测试

  • 使用云智能APP扫描配网二维码会进入APP界面,操作控件会在esp8266的调试串口输出端看到打印信息,与在线调试效果相同

3 应用场景分析及调整

  • 适用于家中台式机与ESP8266接入的WIFI共处一个局域网的场景,部分路由器本身具备WOL唤醒包发送功能,可用该路由器代替ESP8266。

4 涉及到的代码及各类工具下载

WOL测试工具及Arduino工程下载地址

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值