2025-06-05
原创
00
请注意,本文编写于 188 天前,最后修改于 147 天前,其中某些信息可能已经过时。

目录

基于 ESP8266 的低延迟远程遥控车:从开发到云服务器部署保姆级全攻略
📲 软硬件准备
🤖 AI 助力:生成项目蓝图
🚀 部署指南:让小车跑起来
🖥️ 第一步:准备云服务器
🔌 第二步:连接服务器并安装基础环境
📥 第三步:获取项目代码
⚙️ 第四步:安装后端依赖
⚠️ 第五步:配置后端服务(可选)
🚦 第六步:启动后端服务
🔒 第七步:配置服务器系统防火墙 (如果启用)
🔧 第八步:更新 ESP8266 固件
🎮 第九步:测试连接与操控
🚧 重要提示与总结
👉 下一步:舵机控制小车

基于 ESP8266 的低延迟远程遥控车:从开发到云服务器部署保姆级全攻略

  今年初给表弟买了辆遥控车,可惜玩了几天主板就烧了。这反而激发了我的兴趣:能不能自己做一个更好玩、更强大的遥控车?于是,我踏上了基于 ESP8266 开发 WiFi 远程遥控车的旅程。

  起初,我使用点灯科技的 App 和配套库编写 ESP8266 代码。在同一个 WiFi 网络下,操控非常流畅,延迟很低。但一旦超出局域网范围,通过公网访问时,延迟就变得难以接受。

  为了追求更低的公网延迟,我开始学习 Node.js 准备自建后端。不过,由于同时要准备考公和找工作,实在难以静下心来深入。于是,我决定借助 AI :我让 DeepSeek 生成了详细的项目需求提示词。

📲 软硬件准备

  ESP8266开发版、L298n驱动板,一辆双电机小车、杜邦线若干、12v电池一块、随身wifi一个(或者能发热点的手机)、云服务器一台、域名一个(可不用)

🤖 AI 助力:生成项目蓝图

我向 DeepSeek 描述了项目核心需求:

  1. 硬件基础: 双电机设计,一个电机控制前轮转向,另一个电机驱动前后移动。电机驱动板使用经典的 L298N。
  2. 控制方式: 最终通过网页实现遥控器功能。网页包含两个摇杆:左边摇杆控制转向(左右),右边摇杆控制动力(前后)。摇杆的偏移量应能线性控制电机转速,实现力度感应。
  3. 通信架构: 使用我自己的云服务器作为数据中转,需要提供后端服务代码。
  4. ESP8266 代码: 提供满足遥控要求的 ESP8266 代码,并说明与 L298N 的引脚接线方式。
  5. 核心目标: 优先保证最低延迟,暂不考虑安全机制(如认证、加密)。


编程部分我将让AI编程工具cursor去完成,请你认真阅读要求,然后给出提示词引导cursor完成项目。

DeepSeek 生成了非常详细的提示词。我将这些提示词提交给 AI 编程工具 Cursor。令人惊喜的是,Cursor 直接生成了完整的项目文件包,包括:

  • 🌐 前端: 包含摇杆控制界面的 HTML、CSS、Javascript 文件
  • ⚙️ 后端: 基于 Node.js 的服务器端代码
  • 🔌 固件: ESP8266 的源代码(编译前)

🚀 部署指南:让小车跑起来

项目我已经上传至Github,下面以 Ubuntu 系统的云服务器为例,详细介绍如何部署该项目。GitHub项目地址:https://github.com/haitao-520/cursor-ESP8266

🖥️ 第一步:准备云服务器

  1. 购买服务器: 选择一家云服务商(阿里云、腾讯云、AWS 等,通常有免费试用)。关键配置建议:

区域: 选择离你物理位置最近的区域(例如你在贵州,优先选西南或周边地区节点),这是降低网络延迟的关键!
系统: Ubuntu (方便跟随本教程)。
配置: 至少 1核 CPU, 2GB 内存。
带宽: 建议 10Mbps 或更高,带宽越高,延迟通常越低。

  1. 开放防火墙端口: 在云服务商的控制台防火墙/安全组设置中,开放以下端口:

3000: 用于 WebSocket 和 HTTP 服务(网页控制和通信)。
22: 用于 SSH 远程连接管理。

🔌 第二步:连接服务器并安装基础环境

  1. SSH 连接服务器: ssh -p 22 用户名@服务器公网IP
    示例: ssh -p 22 root@103.168.16.69
  2. 更新系统软件包列表
    sudo apt update && sudo apt upgrade -y
  3. 安装必要工具: (Node.js, Git, 文本编辑器)
    sudo apt install git nodejs nano -y

📥 第三步:获取项目代码

使用 git 从 GitHub 克隆项目仓库:
git clone https://github.com/haitao-520/cursor-ESP8266.git

⚙️ 第四步:安装后端依赖

  1. 进入后端服务目录:
    cd cursor-ESP8266/server
  2. 安装 Node.js 依赖包:
    npm install

⚠️ 第五步:配置后端服务(可选)

默认服务端口是 3000。如果需要修改(例如避免端口冲突):

  1. 使用 nano 编辑服务器配置文件:
    nano server.js
  2. 找到设置端口号的行:
    const PORT = process.env.PORT || 3000;
  3. 将 3000 修改为你想要的端口号 (确保云服务器控制台也开放了这个新端口!)。
  4. 保存退出:按 Ctrl + X , 输入 Y , 按回车确认。

🚦 第六步:启动后端服务

为了保证服务在断开 SSH 后仍能持续运行,使用 PM2 进行进程管理:

  1. 安装 PM2 (全局安装):
    sudo npm install pm2 -g
  2. 启动服务:
    pm2 start server.js --name "cursor-ESP8266-server"

(服务现在已在后台运行,即使你退出终端)

🔒 第七步:配置服务器系统防火墙 (如果启用)

如果你的 Ubuntu 服务器启用了本地防火墙 ( ufw ),需要允许端口:


sudo ufw allow 3000/tcp # 或你修改后的端口号
sudo ufw allow 22/tcp
sudo ufw enable # 如果还没启用,则启用
sudo ufw status # 检查规则是否生效

🔧 第八步:更新 ESP8266 固件

  1. 打开下载到本地的项目文件夹中的 ESP8266 源代码文件 (在 cursor-ESP8266/esp8266-filmware 目录下)。
  2. 修改关键配置: 服务器地址和端口: 找到并修改以下两行,将你的服务器IP 替换为云服务器的公网 IP 地址,端口 3000 如果修改过也要同步更新。
    const char* serverAddress = "你的服务器IP"; // 改为你的云服务器公网IP
    const int serverPort = 3000; // 端口号,如果修改过server.js,
    这里也要改WiFi 凭证: 修改成你的小车将要连接的 WiFi 名称和密码。
    const char* ssid = "Redmi_E763"; // 改为你的WiFi名称 (SSID)
    const char* password = "12345678"; // 改为你的WiFi密码
  3. 编译并上传: 使用 Arduino IDE 或 PlatformIO 打开、修改并保存 ESP8266 代码。 连接 ESP8266 开发板到电脑。 安装必要的库(编译时如有报错提示缺少库,安装对应库即可)。 编译代码。 将编译好的固件上传到 ESP8266 开发板。


接线如下如果电机方向反了交换一下正负极就行

1000062317.jpg

🎮 第九步:测试连接与操控

  1. 访问控制网页: 在你的手机或电脑浏览器中打开: http://你的服务器IP:3000 。建议在手机上使用横屏模式以获得更好的摇杆操作体验。
  2. 启动小车: 给 ESP8266 遥控车供电,确保它能连接到你配置的 WiFi。
  3. 建立连接: 如果一切正常,网页应该能检测到小车并建立连接。
  4. 测试操控: 使用左侧摇杆控制转向(左右)。 使用右侧摇杆控制前进/后退和速度(摇杆偏移越大,速度越快)。 重点体验延迟! 这种直连云服务器的架构旨在最小化延迟,感受一下效果是否满意。

🚧 重要提示与总结

低延迟优先: 本方案的核心目标是实现最低的网络延迟,因此在当前部署中牺牲了安全性(没有 HTTPS、没有用户认证、数据明文传输)和部分可扩展性。请勿将其用于敏感或涉及隐私的场景。
项目成果: 经过以上步骤,你应该已经成功部署并运行了基于 ESP8266 和 Web 摇杆的超低延迟远程遥控车。通过手机浏览器横屏模式访问你的服务器地址,就能随时随地操控小车了。
GitHub 项目: 再次提供项目地址供参考:https://github.com/haitao-520/cursor-ESP8266

👉 下一步:舵机控制小车

  我已经基于此项目修改好了舵机项目的代码,准备下一步制作一个使用舵机转向的遥控小车。目前小车的建模和物理组装还在计划中。如果你也有类似的小车底盘,并且愿意折腾舵机改装,欢迎联系我。我可以免费提供适配舵机控制的遥控代码,一起探索AI辅助开发的乐趣。或者,你也可以参照这个项目,利用 AI 工具一步步调试出你自己的版本。

  项目至此告一段落,感谢大家的阅读。如果你在复现过程中遇到问题,或者有更好的改进建议,欢迎在评论区留言指正交流!

本文作者:水镜雪

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!