通过IP地址访问ESP32 Cam网络摄像头时,在Android设备上遇到的问题及解决方法

6次阅读
没有评论

问题描述

使用ESP32 Cam连接到本地Wi-Fi,并在其上运行一个Web服务器以提供视频控制和流媒体服务。在Linux PC以及女儿的iPhone中可以正确地通过输入http://192.168.1.132访问该设备,但是在三星Android手机上却无法进行访问。首次尝试时,手机屏幕上短暂显示了摄像头图片,之后则遇到了“ERR_ADDRESS_UNREACHABLE”的错误。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1 – 更新ESP32软件库和固件

根据评论提示,可能是由于使用了具有兼容性问题的ESP32库版本导致的问题。请确保已经安装并使用的是最新版的ESP32库。

  • 软件开发环境准备:
  • 打开Arduino IDE。
  • 从工具菜单中选择“板” > “管理硬件”,然后在搜索框中输入:“esp32cam”。

  • 更新库版本:

  • 在Arduino IDE主界面,依次点击“文件” > “首选项”。如果已有设置存在,则直接跳转至第2步;若无则在”附加开发板URL(逗号分隔):”后添加如下地址:https://dl.espressif.com/dl/package_esp32_index.json
  • 点击“工具” > “开发板” > “开发板管理器”,搜索并更新”esp32″。
  • 重启Arduino IDE。
  • 重新编译和上传最新的Web服务器代码至ESP32 Cam。

方案2 – 调整网络接口配置

在Web服务器设置中,可能需要调整本地IP地址分配或相关端口开放规则:

#include <WiFi.h>
#include <WebServer.h>

const char* ssid = "your_ssid";
const char* password = "your_password";

void handleRoot() {
  server.sendHeader("Connection", "close");
  server.send(200, "text/html", "<h1>Hello from ESP32Cam</h1><video autoplay controls src='/stream'></video>");
}

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);

  // 调试用:使用指定的本地IP地址和端口
  server.begin(7123);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected.");
  Serial.println("IP address: ");
  Serial.println(WiFi.local IP); // 打印实际使用的本地IP地址
}

void loop() {
  server.handleClient();
}

请确保在服务器设置中正确配置了需要开放的端口及网络接口参数。

方案3 – 检查手机侧问题

  • 需要保证三星Android设备已连接至同一Wi-Fi子网;
  • 尝试重置网络设置或重启设备,排除软件故障;
  • 使用类似“Speedtest by Ookla”这样的工具检查移动设备无线/数据信号强度。

以上步骤应该能够帮助解决通过IP地址访问ESP32 Cam Web服务器时,在Android手机上出现的问题。如果问题仍然存在,请考虑查阅相关的文档和在线支持资源以获得更详细的解决方案。

正文完