0代码,不用app Arduino esp32cam 远程控制Web Server视频小车

使用 ESP32-CAM 构建 Wi-Fi 遥控汽车机器人。您将能够使用Web服务器控制机器人,该服务器显示机器人"看到"的视频流。您可以远程控制您的机器人,即使它不在你的视线范围内。ESP32-CAM 将使用 Arduino IDE 进行编程。

电路板兼容性:此项目需要 4 个 GPIO 来控制直流电机。因此,您可以使用任何带有 4 个可用 GPIO 的 ESP32 相机板,如 ESP32-CAM Ai-Thinker  

项目概况

在开始项目之前,我们将重点介绍用于构建机器人的最重要功能和组件。

无线网络

机器人将使用您的 ESP32-CAM 通过 Wi-Fi 进行控制。我们将创建一个基于Web的界面来控制机器人,可以在本地网络内的任何设备中访问。

该网页还显示了机器人"看到"的视频流。为了获得良好的视频流效果,我们建议使用带外部天线。

 

机器人控制

Web 服务器有 5 个控件:"前进"、"向后"、"向左"、"向右""停止"

 

只要您按下按钮,机器人就会移动。当您松开任何按钮时,机器人就会停止。但是,我们包含了"停止"按钮,如果您释放按钮时 ESP32 未收到停止命令,该按钮非常有用。

智能机器人底盘套件

我们将使用智能机器人底盘套件。您可以在大多数在线商店中找到它。该套件的价格约为10美元,并且易于组装 - 观看此视频,了解如何组装机器人底盘套件。

您可以使用任何其他机箱套件,只要它带有两个直流电机即可。

 

L298N 电机驱动器

控制直流电机的方法有很多种。我们将使用L298N电机驱动器,它提供了一种简单的方法来控制2个直流电机的速度和方向。

为了保持电路简单,我们将使用相同的电源为机器人(电机)和 ESP32 供电。我们使用了移动电源/便携式充电器(就像用于为智能手机充电的充电器一样),效果很好。

 

 注意:电机消耗大量电流,因此,如果您觉得机器人无法正常移动,则可能需要为电机使用外部电源。这意味着您需要两种不同的电源。一个用于为直流电机供电,另一个用于为 ESP32 供电。

部件
对于此项目,我们将使用以下部分:

ESP32-CAM AI-Thinker(安信可原装性能有保障),价格较贵,不带外置天线

ESP32-CAM模块带外置天线,第三方,较实惠
L298N 电机驱动器
机器人汽车底盘套件
移动电源其他5V电源

锂电池充电板
原型电路板(洞洞板排针

代码下载:icon-default.png?t=M1H3https://gitee.com/jun-tian/esp32-cam-wi-fi-car

#include "esp_camera.h"
#include <WiFi.h>
#include "esp_timer.h"
#include "img_converters.h"
#include "Arduino.h"
#include "fb_gfx.h"
#include "soc/soc.h"             // disable brownout problems
#include "soc/rtc_cntl_reg.h"    // disable brownout problems
#include "esp_http_server.h"

// Replace with your network credentials
const char* ssid = "REPLACE_WITH_YOUR_SSID";//修改为你的wifi名称
const char* password = "REPLACE_WITH_YOUR_PASSWORD";//修改为你的WiFi密码

#define PART_BOUNDARY "123456789000000000000987654321"

#define CAMERA_MODEL_AI_THINKER
//#define CAMERA_MODEL_M5STACK_PSRAM
//#define CAMERA_MODEL_M5STACK_WITHOUT_PSRAM
//#define CAMERA_MODEL_M5STACK_PSRAM_B
//#define CAMERA_MODEL_WROVER_KIT

#if defined(CAMERA_MODEL_WROVER_KIT)
  #define PWDN_GPIO_NUM    -1
  #define RESET_GPIO_NUM   -1
  #define XCLK_GPIO_NUM    21
  #define SIOD_GPIO_NUM    26
  #define SIOC_GPIO_NUM    27
  
  #define Y9_GPIO_NUM      35
  #define Y8_GPIO_NUM      34
  #define Y7_GPIO_NUM      39
  #define Y6_GPIO_NUM      36
  #define Y5_GPIO_NUM      19
  #define Y4_GPIO_NUM      18
  #define Y3_GPIO_NUM       5
  #define Y2_GPIO_NUM       4
  #define VSYNC_GPIO_NUM   25
  #define HREF_GPIO_NUM    23
  #define PCLK_GPIO_NUM    22

#elif defined(C
  • 7
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
Arduino ESP32是一款基于ESP32芯片的开发板,它可以通过使用LittleFS文件系统来创建一个Web服务器。 LittleFS是一个轻量级的嵌入式文件系统,适用于资源有限的嵌入式设备。它能够提供可靠的文件存储和管理解决方案,适用于ESP32开发板。 在Arduino环境中,我们可以利用ESP32的WiFi模块和LittleFS文件系统,通过编写代码来创建一个简单的Web服务器。首先,我们需要确保ESP32连接到网络,并设置相应的WiFi凭证。然后,我们可以使用Arduino IDE中提供的相应库函数来编写代码。 例如,我们可以使用SPIFFS库来实现文件系统的初始化和使用: ```cpp #include <WebServer.h> #include <SPIFFS.h> WebServer server(80); void setup() { // 初始化WiFi连接 // 初始化SPIFFS if(!SPIFFS.begin()){ Serial.println("An error occurred while mounting SPIFFS"); return; } // 设置路由 server.on("/", handleRoot); // 启动服务器 server.begin(); } void loop(){ server.handleClient(); } void handleRoot(){ String html = "<html><body><h1>Hello World!</h1></body></html>"; server.send(200, "text/html", html); } ``` 上述代码通过访问根路径"/",返回一个简单的HTML页面。我们可以根据自己的需求来编写处理其他路径的函数,并在其中返回相应的内容。 通过编写适当的处理函数,我们可以实现一些有趣的功能,例如通过网络控制一个LED灯、获取传感器的数据等等。 总而言之,Arduino ESP32结合LittleFS文件系统和Web服务器库,可以轻松实现嵌入式Web服务器的功能。这为我们提供了一个便捷的方式来与ESP32进行交互,并实现各种嵌入式应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值