发布时间: 2026-05-10
您可曾考虑借助手机或者电脑,以远程方式操控一个机械手臂、或者是智能窗帘以及小型机器人呢?其中关键的方案是这样的:运用拥有GPIO输出能力的WiFi模块,在接收到无线指令之后输出PWM信号的情况下,直接促使舵机转到指定角度之处。本文会完好给予由硬件选型开始、经过接线、再到编程以及故障排除的整个流程,从而让您不用再次去查找,能够独自完成该项功能。
PWM信号的周期为20ms,脉宽处于0.5ms至2.5ms之间,舵机借助接收此信号来控制转角,转角范围通常是0°至180°。WiFi模块连接至本地无线网络后,会运行一个微型TCP服务器,监听来自客户端的指令,比如“角度90” ,接着把指令换算成对应的PWM脉宽,输出至信号引脚,舵机便会随即转动到目标位置。
案例参考:有一位DIY爱好者,在制作智能鱼饵投喂器这个物件的时候,运用了上述组合,达成了借助手机APP进行远程投掷饵料的操作 ,舵机促使杠杆发生动作 ,系统稳定运行长达6个月的时间都没有出现故障。
按照以下对应关系连接(模块引脚名称以实际丝印为准):
模块5V输出 → 舵机红色线(VCC)
模块GND → 舵机棕色/黑色线(GND)
对于模块GPIO编号引脚,比如说其中存在GPIO2这样的编号,它会对应到舵机橙色或者黄色线,也就是信号线。
![]()
留意着,要是舵机于大角度或者带着负载的情形下出现抖动或者重启的状况,那就表明供电是不足的。一定得外接超过5V/3A的稳压电源,而且要把模块的GND跟外接电源的GND进行共地处理。
下面拿 IDE开发环境当作例子,给出经过验证的完整代码,此代码不依赖任何第三方库,只是运用原生WiFi和PWM函数。
# // 若使用其他WiFi模块请替换对应头文件
// ======== 用户修改区域 ========
const char ssid = "你的WiFi名称";
const char = "你的WiFi密码";
const int = 80; // 监听端口
const int = 2; // 信号线所接GPIO编号
// =============================
();
int = 90; // 当前角度0180
// 将角度(0180)转换为PWM脉宽(5002500微秒)
int (int angle) {
map(angle, 0, 180, 500, 2500);
}
// 使用精确输出PWM脉冲(适用于所有WiFi模块)
void (int pin, int angle) {
int = (angle);
(pin, HIGH);
();
(pin, LOW);
(20000 ); // 20ms周期剩余部分
}
void setup() {
.begin();
(, );
(, LOW);
WiFi.begin(ssid, );
while (WiFi.() != ) {
delay(500);
.print(".");
}
.("\nWiFi已连接,IP地址:" + WiFi.().());
.begin();
.("服务器已启动,请发送指令:GET /?angle=数字");
}
void loop() {
= .();
if (!) ;
= .('\r');
.flush();
// 解析HTTP请求中的 angle 参数,例如 GET /?angle=45
int = .("angle=");
if ( != 1) {
int = .(" ", );
= .( + 6, );
int = .toInt();
if ( >= 0 && <= 180) {
= ;
(, );
.print("舵机转动到: ");
.();
}
}
// 返回简单响应
.("HTTP/1.1 200 OK");
.("Type: text/plain");
.();
.print("OK: angle=");
.print();
delay(10);
.stop();
}
操作步骤:
1. 把 IDE进行安装,给对应WiFi模块的开发板支持添加进去。
2. 把上述代码当中的ssid以及,变更为您路由器所具备的实际信息。
3. 选择正确的端口和开发板类型伟创动力舵机,点击上传。
4. 开启串口监视器之处,其波特率设定为的数值,而后着手记录WiFi模块所获取到的IP地址,此例对应的IP地址为192.168.1.100。
使用任意能连接到同一WiFi网络的设备(手机/电脑):
将浏览器开启,于地址栏当中输入: ,进而使得舵机转向至0度。
![]()
输入:http://<模块IP>/?angle=90 → 舵机转到中间
给予链接 ,促使舵机转向至最大角度。
常见问题应急处理:
核心观点重复如下:WiFi模块对舵机进行控制,其本质是这样的逻辑,即从网络指令开始,经由PWM脉宽再到角度位置,任何品牌的模块都依照这同一逻辑。您只要达成了上述最简系统,便能够把它嵌入任意有远程位置控制需求的设备当中。
立即行动建议:
1. ,要在面包板之上,运用小型舵机,也就是SG90,去完成那上述提及的测试,而且整个过程,时间不会超过30分钟。
2. 经过确认达到稳定状态后,依靠您最终的项目需求,去挑选大扭矩舵机,进而设计独立供电的电路。
3. 若有同时操控多个舵机之需求,能够运用同一WiFi模块的各异GPIO引脚,或者额外连接舵机驱动板(借助I2C实施控制)。
推进方向:把HTTP控制更替成MQTT协议,(这当中需要增添少许代码),如此一来就能达成没有公网IP的远程操控、定时任务、传感器联动等智能化情景。你已经掌握了最为核心的基础,后续拓展不会再存在技术阻碍。