家用电脑搭建的服务器,偶尔停电和宕机,是否有个产品能远程开机或从启服务器呢?使用万能的淘宝搜索,确实有这样的产品,价格还可以接受。对嵌入式还有点兴趣,看看自己能不能肝出硬件来,然后烧录上自己写的程序。
本作品由安信可社区用户
01
功能介绍
1、 主控采用ESP-12F,带wifi模块。基于Blinker物联网平台;
2、 硬件光耦隔离,两路输入。一路开机,一路复位;
3、 手机端使用Blinker App,自定义控制界面;开机从和重启复用一个按钮,单机是开机,长按重启。
01
硬件设计
3.1 硬件原理图

3.2 硬件PCB

3.3 硬件3D视图

3.4 硬件实物

03
软件设计
基于Blinker平台,手机端用的Blinker app,设计界面如下:

#define BLINKER_WIFI#define BLINKER_ALIGENIE_OUTLET#include <Blinker.h>char auth[] = "xxxxxxxxx";char ssid[] = "xxxxxx";char pswd[] = "xxxxxxx";/***************************手机APP接口***********************///按键1初始化, 创建对象#define BUTTON1 "ButtonKey1"BlinkerButton Button1(BUTTON1);#define BOOTGPIO4 4#define RESETGPIO5 5#define LED LED_BUILTIN//按键1数据处理回调函数void Button1Callback(const String& state) {BLINKER_LOG("get button state: ", state);if (state == "tap") {//电脑开关机digitalWrite(BOOTGPIO4, HIGH);digitalWrite(LED, HIGH);delay(1000);digitalWrite(BOOTGPIO4, LOW);digitalWrite(LED, LOW);Blinker.print("Boot OK.");BLINKER_LOG("Boot OK.");}if (state == "press") {//电脑重启digitalWrite(RESETGPIO5, HIGH);}if (state == "pressup") {digitalWrite(RESETGPIO5, LOW);Blinker.print("Reboot OK.");BLINKER_LOG("Reboot OK.");}}//检测收到未解析数据时的回调函数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, OUTPUT);digitalWrite(LED, LOW);pinMode(BOOTGPIO4, OUTPUT); //开关机控制引脚digitalWrite(BOOTGPIO4, LOW);pinMode(RESETGPIO5, OUTPUT); //重启控制引脚digitalWrite(RESETGPIO5, LOW);//网络初始化Blinker.begin(auth, ssid, pswd);//注册Blinker APP命令的回调函数Blinker.attachData(dataRead);Button1.attach(Button1Callback);}void loop() {Blinker.run();}


0.1毫安!超超超超超低功耗雷达模组Rd-03L
从30W到200W,小安派-Cam-D 爆炸升级!
安信可更多产品信息可进入以下链接查阅:
●开发资料:https://docs.ai-thinker.com/
●官方教程:https://blog.csdn.net/Boantong_
●安信可官网:www.ai-thinker.com
●安信可社区:https://bbs.ai-thinker.com
●业务咨询请联系:18022036575


