收起左侧

借助点灯科技为飞牛Nas增加远程开机

1
回复
317
查看
[ 复制链接 ]

1

主题

0

回帖

0

牛值

江湖小虾

有时候晚上关了Nas之后,白天会忘记打开。导致需要在外边连接的时候,无法连接。这个内容主要帮助喜欢动手的小伙伴做一个Nas开机的远程控制,当然了如果你家里支持网络唤醒的话,可以忽略。

一、硬件部分:

采用esp8266-01s作为主控核心。

这里我们用GPIO2控制开机键、GPIO0控制重启键、因为电脑主板的电压是5.0V,为了防止烧坏esp8266的引脚,我们需要给2个引脚串联一个1KΩ的电阻,电阻另一端连接一个三极管9014的基极;

三极管的发射极、电脑主板的power-、电脑主板的Reset-与ESP8266模块的GND引脚共地;

三极管的集电极分别连接电脑主板的power+、Reset+;

⚠️esp8266的供电电压是3.3V,如果通过主板取电,一定注意电压的不同;

二、固件代码:

为了方便省事,直接借用了点灯科技的库,大家用的时候可以自行注册一个账号,获取设备token,更换下面固件中的token即可。

#define BLINKER_WIFI

#include <ESP8266WiFi.h>
#include <Blinker.h>

// Blinker 相关配置
char auth[] = "*******";  //设备key
char ssid[] = "******";  //wifi信道
char pswd[] = "******"; //WiFi 密码

// 定义控制引脚
const int powerPin = 2;  // 连接开机键的GPIO
const int resetPin = 0;  // 连接重启键的GPIO

// Blinker Button 控件
BlinkerButton powerButton("btn-power");
BlinkerButton resetButton("btn-reset");
BlinkerButton forceShutdownButton("btn-force-shutdown");

// 模拟按下按钮的函数
void pressButton(int pin, int duration = 1000) {
  digitalWrite(pin, HIGH);
  delay(duration);
  digitalWrite(pin, LOW);
}

// 处理开机按钮点击事件
void powerButton_callback(const String & state) {
  Blinker.vibrate();
  pressButton(powerPin);
}

// 处理重启按钮点击事件
void resetButton_callback(const String & state) {
  Blinker.vibrate();
  pressButton(resetPin);
}

// 处理强制关机按钮点击事件
void forceShutdownButton_callback(const String & state) {
  Blinker.vibrate();
  // 对于强制关机,不同电脑可能有不同方式,这里假设长按电源键5秒
  pressButton(powerPin, 5000); 
}

void setup() {
  Serial.begin(115200);
  Blinker.begin(auth, ssid, pswd);
  pinMode(powerPin, OUTPUT);
  pinMode(resetPin, OUTPUT);
  digitalWrite(powerPin, LOW);
  digitalWrite(resetPin, LOW);
  powerButton.attach(powerButton_callback);
  resetButton.attach(resetButton_callback);
  forceShutdownButton.attach(forceShutdownButton_callback);
}

void loop() {
  Blinker.run();
}

三、烧录代码:

将上述代码编译后烧录到esp8266-01s芯片中即可,具体烧录教程网上很多。毕竟esp8266模块非常常见且廉价;

更多内容也可以参考我的博客www.zkii.net,有不懂的欢迎讨论。

收藏
送赞
分享

5

主题

16

回帖

0

牛值

系统先锋体验团🛩️

哥们,不用这么麻烦的,两种办法,第一种,如果装了home assistant,可以使用home assistant增加网络唤醒按钮,然后使用home assistant直接开机,或者如果整合了小爱的话,给小爱一个语音指令就行,第二种,如果有istoreos旁路由的话,可以是用易有云远程开机

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

本版积分规则