目录
初步工作:
进入正题:
初步工作:
(已使用过ESP32的同志们,可以忽略这一步)
首先下载arduinoIDE
Software | Arduino
我安装的是1.8.18直装版本
勾选上所有安装选项
配置arduinoIDE:
1.文件-->首选项
将以下地址复制到附加开发板管理器网址
https://www.arduino.cn/package_esp32_index.json
2.下载esp32.inf驱动更新,点右键安装即可
2.5若inf文件安装不成功,报出未有数字签名的错误:
打开WIN10的设置-->更新与安全-->恢复-->立即重启-->疑难解答-->高级选项-->启动设置
根据提示,选择和数字签名有关的选项。等待自动重启后即可解决问题。
3.手动安装一次ESP32开发板驱动包
(此时需要删除以前与esp32相关的开发板数据包,否则容易产生冲突)
删除方法:文件管理器地址栏输入 %LOCALAPPDATA%/Arduino15/packages,回车进入,然后删除掉其中的esp32文件夹
esp32开发板驱动包 链接:https://pan.baidu.com/s/1reBfqBlgN-mr5avxOt4qag?pwd=ku4z
提取码:ku4z
4.将属于自己型号的ESP32选择到开发板中,并选择已经插好开发板的串口号
4.5如果查不到新的串口接入,可以上网下载一个CH340串口驱动,安装即可解决问题
5.尝试实现烧录和闪烁灯
void setup()
{ pinMode(LED_BUILTIN, OUTPUT);
}void loop()
{digitalWrite(LED_BUILTIN, HIGH);delay(1000);digitalWrite(LED_BUILTIN, LOW);delay(1000);
}
进入正题:
1.安装 “米家”APP 和 “blinker”APP 。
blinker的库以及手机控制软件可以从如下地址下载
点灯科技-点灯物联网解决方案
米家APP可自行在应用商城下载安装
2.在blinkerAPP创建成为开发者,并保存好自己的密钥
3.理解以下代码并补充相关信息
感谢源代码的分享者:Blinker-xiaoAi-WOL/Blinker_WOL.ino at master · xujunjie96/Blinker-xiaoAi-WOL · GitHub
/*********************************************** ESP32 + ARDUINO + Blinker + XiaoAi* Remote boot by WOL* Creater:Faiz* Borrower:单音字*/#define BLINKER_WIFI
#define BLINKER_MIOT_OUTLET#include <Blinker.h>
#include <WiFiUdp.h>
#include <WiFi.h>
char auth[] = "************"; //密钥
char ssid[] = "单音字"; //wifi名
char pswd[] = "************"; //wifi密码//The udp library class
WiFiUDP udp;bool oState = false;
BlinkerButton Button1("awaking");//awaking!
void button1_callback(const String & state)
{BLINKER_LOG("get button state: ", state);digitalWrite(LED_BUILTIN, HIGH);delay(50);digitalWrite(LED_BUILTIN,LOW);delay(50);pcawaking();digitalWrite(LED_BUILTIN, HIGH);delay(50);digitalWrite(LED_BUILTIN, LOW);delay(50);digitalWrite(LED_BUILTIN, HIGH);delay(50);digitalWrite(LED_BUILTIN, LOW);delay(50);
}void miotPowerState(const String & state)
{BLINKER_LOG("need set power state: ", state);if (state == BLINKER_CMD_ON) {BlinkerMIOT.powerState("on");BlinkerMIOT.print();digitalWrite(LED_BUILTIN, HIGH);delay(25);digitalWrite(LED_BUILTIN, LOW);delay(25);pcawaking();digitalWrite(LED_BUILTIN, HIGH);delay(25);digitalWrite(LED_BUILTIN, LOW);delay(25);digitalWrite(LED_BUILTIN, HIGH);delay(25);digitalWrite(LED_BUILTIN, LOW);oState = false; //force off!!}else if (state == BLINKER_CMD_OFF) {digitalWrite(LED_BUILTIN, LOW);BlinkerMIOT.powerState("off");BlinkerMIOT.print();oState = false;}
}void miotQuery(int32_t queryCode)
{BLINKER_LOG("MIOT Query codes: ", queryCode);switch (queryCode){case BLINKER_CMD_QUERY_ALL_NUMBER :BLINKER_LOG("MIOT Query All");BlinkerMIOT.powerState(oState ? "on" : "off");BlinkerMIOT.print();break;case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :BLINKER_LOG("MIOT Query Power State");BlinkerMIOT.powerState(oState ? "on" : "off");BlinkerMIOT.print();break;default :BlinkerMIOT.powerState(oState ? "on" : "off");BlinkerMIOT.print();break;}digitalWrite(LED_BUILTIN, HIGH);delay(25);digitalWrite(LED_BUILTIN, LOW);delay(25);digitalWrite(LED_BUILTIN, HIGH);delay(25);digitalWrite(LED_BUILTIN, LOW);
}void pcawaking()
{int i=0;char mac[6]={0xF8,0xB4,0x6A,0xB2,0x6F,0x0F}; //例如mac地址F8-B4-6A-B2-6F-0Fchar pac[102];char * Address = "192.168.1.255";//udp adress 网关地址或路由器分配的IP//群发最后为.255int Port = 3333;//udp port//make magicpacket,网络启动的魔术封包for(i=0;i<6;i++){pac[i]=0xFF;}for(i=6;i<102;i+=6){memcpy(pac+i,mac,6);}udp.beginPacket(Address, Port);udp.write((byte*)pac, 102);//send pac to txbufferudp.endPacket();//biubiubiu
}void dataRead(const String & data)
{BLINKER_LOG("Blinker readString: ", data);Blinker.vibrate();uint32_t BlinkerTime = millis();Blinker.print("millis", BlinkerTime);
}void setup()
{Serial.begin(115200);BLINKER_DEBUG.stream(Serial);pinMode(LED_BUILTIN, OUTPUT);digitalWrite(LED_BUILTIN, LOW);Blinker.begin(auth, ssid, pswd);Blinker.attachData(dataRead);BlinkerMIOT.attachPowerState(miotPowerState);BlinkerMIOT.attachQuery(miotQuery);Button1.attach(button1_callback);
}void loop()
{Blinker.run();
}
3.5 在电脑win+R输入cmd并打开,输入ipconfig /all,查看有线网卡的mac地址(在以太网适配器分类中)和自己的网关地址(在无线局域网适配器分类中)。
将mac地址和网关地址(网关最后的.1改为.255)分别填入代码相关位置。
4.将编译好的内容烧录/上传到开发板
5.打开blinkerAPP添加搜索到的wifi设备
6.为米家APP添加设备。在其他设备中搜索 点灯科技 并绑定账号
7.打开blinkerAPP,为搜索到的WiFi设备添加一个初始案例。
并点击右上角的编辑按钮,添加一个叫awaking的文本按钮。
8.打开电脑的控制面板,进行网络属性设置:
控制面板--网络和共享中心--以太网--属性--配置--高级--魔术封包唤醒--开启。
(注意,只有有线以太网才有魔术封包唤醒的设置)
9.部分电脑无法实现网络唤醒,则要进行主板BIOS设置
进入BIOS方法:关机--启动--在启动界面显示的同时,按下F2或ESC(因电脑而异)
以下将以 惠普战66笔记本为例:
在BIOS中的Advanced分类中,找到与Devices Options相关的选项
找到Wake On LAN(或叫WOL)的选项卡,建议选择常规启动顺序
( 部分电脑如果唤醒不成功,可能要在电源控制面板中关闭快速启动)
10.重新关机后,保持电源与网线的连接状态。
11.对你的小爱音响说打开“电脑”(blinker中的设备名称),或者Blinker软件上点击awaking按键一下。板子上灯闪几下,电脑就会开机了。
此处感谢这位博主给予的开发教程:
使用ESP32和Blinker实现远程网络唤醒电脑(接入语音助手,以小爱同学为例)_网络设备_什么值得买创作立场声明:希望多多分享购买理由点灯科技 Blinker是提供远程接入物联网方案的一家公司,使用他们家的库,可以轻松将设备联网,并接入主流语音助手https://post.smzdm.com/p/aoown0g7/