ESP 物联网开发入门2:手指机器人
既然上一篇咱们已经让 ESP8266 的自带灯亮起来了,那说明开发环境已经通了。今天咱们玩点硬核的:做一个“物理外挂”,远程帮咱按电脑开机键。
ESP 物联网开发入门2:手指机器人
这次的主角依然是性价比之王 ESP8266(NodeMCU),配合一个 2 块 9 包邮的舵机(Servo)。
1. 硬件“全家桶”
除了之前的 NodeMCU,你还需要准备:
- SG90 舵机: 这种蓝色的小舵机就行,力气够大,正好能按动电脑键。
- 杜邦线: 3 根(公对母)。
- 双面胶/蓝丁胶: 用来把舵机粘在电脑机箱上。
2. 接线图:别接错,会没力气
舵机有三根线,颜色通常是固定的:
棕色(地线): 接 ESP8266 的 G”>GND。
红色(电源): 接 ESP8266 的 VIN 引脚(注意:VIN 输出的是 USB 的 5V 电压,接 3.3V 舵机可能转不动。byd我的vin针脚虚焊没电,不过实测3.3V带的动)。
黄色(信号): 接 ESP8266 的 D1(对应代码里的 GPIO 5)。
连接如图:


3. 准备“遥控器”:点灯科技(Blinker)
写代码前,先去手机应用商店下个 Blinker(点灯科技) App。
- 进入 App,点击添加设备 -> 独立设备 -> 网络接入。
- 复制那个 Secret Key(密钥),待会儿要填进代码里。
- 在设备界面加一个“按钮”组件,把它的组件键名修改为
btn-abc(你自己起个名,代码里要对得上)。
4. 搞定代码(ESP8266 版)
把下面的代码粘贴进 Arduino IDE。记得把 密钥、WiFi名 和 密码 换成你自己的。
#define BLINKER_WIFI
#include <Blinker.h>
#include <Servo.h>
// 1. 修改为你自己的信息
char auth[] = "你的Blinker Secret Key";
char ssid[] = "你的WiFi名字";
char pswd[] = "你的WiFi密码";
Servo myServo;
BlinkerButton Button1("btn-boot"); // 这里的名字要和 App 里的“组件键名”对上
// 2. 舵机动作函数:转下去 -> 等半秒 -> 回位
void servo_callback(const String & state) {
Serial.println("收到指令,准备开机!");
myServo.write(60); // “手指”按下的角度(根据实际情况微调这个数字)
Blinker.delay(500); // 停顿 0.5 秒,模拟真人按压
myServo.write(0); // “手指”收回原位
}
void setup() {
Serial.begin(115200);
// 信号线接 D1 (GPIO 5)
myServo.attach(5);
myServo.write(0); // 初始状态:手指收起
// 初始化 Blinker
Blinker.begin(auth, ssid, pswd);
// 把按钮和函数绑定
Button1.attach(servo_callback);
}
void loop() {
Blinker.run(); // 保持在线
}
5. 灵魂安装:大力胶工程
代码上传成功后,你会发现只要在手机上一按,舵机就转一下。接下来的工作就属于“土木工程”了:
- 找个合适的位置,用双面胶把舵机粘在机箱上。
- 调整舵机摇臂的角度,确保它“转下去”的时候刚好能压住开机键,“转回来”的时候不挡着按键弹起。
- 电源: 随便找个手机充电头给 ESP8266 供电就行。
6. 避坑小贴士
- 舵机抖动: 如果舵机一直在那“嘶嘶”响或者乱抖,通常是电流不够。换个好点的 5V/2A 充电头。
- 连不上网: ESP8266 只支持 2.4G WiFi。如果你家路由器的 2.4G 和 5G 合一了,建议分开,否则它可能半天连不上。
- 掉线: Blinker 免费版偶尔会有延迟,这是正常的。或者说练的是电脑的USB接口,电脑关机也自然就不供电了(除非电脑支持关机usb供电)。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 ZCP妙妙屋!




