在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用ESP32-S3搭建網絡攝像頭

jf_Vqngj70R ? 來源:美男子玩編程 ? 2023-09-06 12:48 ? 次閱讀

本篇博文使用ESP32-S3搭建網絡攝像頭,相比較局域網攝像頭,本篇博文將分享如何搭建外網可以訪問的網絡攝像頭。

這主要是使用內網穿透技術,內網穿透是為了使具有某一個特定源 IP 地址和源端口號的數據包(這里指局域網攝像頭)不被網絡地址轉換設備屏蔽而正確路由到內網主機。

主要流程分為兩步:

1、先實現局域網訪問網絡攝像頭;

2、在此基礎,使用內網穿透的方式,搭建外網可訪問的網絡攝像頭。

1局域網攝像頭

ESP32實現局域網攝像頭的方式比較簡單,驅動代碼如下:

#include "esp_camera.h"
#include


//
// WARNING!!! PSRAM IC required for UXGA resolution and high JPEG quality
//            Ensure ESP32 Wrover Module or other board with PSRAM is selected
//            Partial images will be transmitted if image exceeds buffer size
//
//            You must select partition scheme from the board menu that has at least 3MB APP space.
//            Face Recognition is DISABLED for ESP32 and ESP32-S2, because it takes up from 15 
//            seconds to process single frame. Face Detection is ENABLED if PSRAM is enabled as well


// ===================
// Select camera model
// ===================
//#define CAMERA_MODEL_WROVER_KIT // Has PSRAM
// #define CAMERA_MODEL_ESP_EYE // Has PSRAM
//#define CAMERA_MODEL_ESP32S3_EYE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_PSRAM // Has PSRAM
//#define CAMERA_MODEL_M5STACK_V2_PSRAM // M5Camera version B Has PSRAM
//#define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_ESP32CAM // No PSRAM
//#define CAMERA_MODEL_M5STACK_UNITCAM // No PSRAM
//#define CAMERA_MODEL_AI_THINKER // Has PSRAM
//#define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM
//#define CAMERA_MODEL_XIAO_ESP32S3 // Has PSRAM
// ** Espressif Internal Boards **
//#define CAMERA_MODEL_ESP32_CAM_BOARD
//#define CAMERA_MODEL_ESP32S2_CAM_BOARD
//#define CAMERA_MODEL_ESP32S3_CAM_LCD
#define CAMERA_MODEL_DFRobot_FireBeetle2_ESP32S3 // Has PSRAM
//#define CAMERA_MODEL_DFRobot_Romeo_ESP32S3 // Has PSRAM


#include "camera_pins.h"
#include "DFRobot_AXP313A.h"


DFRobot_AXP313A axp;


// ===========================
// Enter your WiFi credentials
// ===========================
const char* ssid = "";
const char* password = "";


void startCameraServer();
void setupLedFlash(int pin);


void setup() {
  Serial.begin(115200);
  Serial.setDebugOutput(true);
  Serial.println();


  while(axp.begin() != 0){
    Serial.println("init error");
    delay(1000);
  }


  axp.enableCameraPower(axp.eOV2640);  // 給攝像頭供電


  camera_config_t config;
  config.ledc_channel = LEDC_CHANNEL_0;
  config.ledc_timer = LEDC_TIMER_0;
  config.pin_d0 = Y2_GPIO_NUM;
  config.pin_d1 = Y3_GPIO_NUM;
  config.pin_d2 = Y4_GPIO_NUM;
  config.pin_d3 = Y5_GPIO_NUM;
  config.pin_d4 = Y6_GPIO_NUM;
  config.pin_d5 = Y7_GPIO_NUM;
  config.pin_d6 = Y8_GPIO_NUM;
  config.pin_d7 = Y9_GPIO_NUM;
  config.pin_xclk = XCLK_GPIO_NUM;
  config.pin_pclk = PCLK_GPIO_NUM;
  config.pin_vsync = VSYNC_GPIO_NUM;
  config.pin_href = HREF_GPIO_NUM;
  config.pin_sccb_sda = SIOD_GPIO_NUM;
  config.pin_sccb_scl = SIOC_GPIO_NUM;
  config.pin_pwdn = PWDN_GPIO_NUM;
  config.pin_reset = RESET_GPIO_NUM;
  config.xclk_freq_hz = 20000000;
  config.frame_size = FRAMESIZE_UXGA;
  config.pixel_format = PIXFORMAT_JPEG; // for streaming
  //config.pixel_format = PIXFORMAT_RGB565; // for face detection/recognition
  config.grab_mode = CAMERA_GRAB_WHEN_EMPTY;
  config.fb_location = CAMERA_FB_IN_PSRAM;
  config.jpeg_quality = 12;
  config.fb_count = 1;


  // if PSRAM IC present, init with UXGA resolution and higher JPEG quality
  //                      for larger pre-allocated frame buffer.
  if(config.pixel_format == PIXFORMAT_JPEG){
    if(psramFound()){
      config.jpeg_quality = 10;
      config.fb_count = 2;
      config.grab_mode = CAMERA_GRAB_LATEST;
    } else {
      // Limit the frame size when PSRAM is not available
      config.frame_size = FRAMESIZE_SVGA;
      config.fb_location = CAMERA_FB_IN_DRAM;
    }
  } else {
    // Best option for face detection/recognition
    config.frame_size = FRAMESIZE_240X240;
#if CONFIG_IDF_TARGET_ESP32S3
    config.fb_count = 2;
#endif
  }


#if defined(CAMERA_MODEL_ESP_EYE)
  pinMode(13, INPUT_PULLUP);
  pinMode(14, INPUT_PULLUP);
#endif


  // camera init
  esp_err_t err = esp_camera_init(&config);
  if (err != ESP_OK) {
    Serial.printf("Camera init failed with error 0x%x", err);
    return;
  }


  sensor_t * s = esp_camera_sensor_get();
  // initial sensors are flipped vertically and colors are a bit saturated
  if (s->id.PID == OV3660_PID) {
    s->set_vflip(s, 1); // flip it back
    s->set_brightness(s, 1); // up the brightness just a bit
    s->set_saturation(s, -2); // lower the saturation
  }
  // drop down frame size for higher initial frame rate
  if(config.pixel_format == PIXFORMAT_JPEG){
    s->set_framesize(s, FRAMESIZE_QVGA);
  }


#if defined(CAMERA_MODEL_M5STACK_WIDE) || defined(CAMERA_MODEL_M5STACK_ESP32CAM)
  s->set_vflip(s, 1);
  s->set_hmirror(s, 1);
#endif


#if defined(CAMERA_MODEL_ESP32S3_EYE)
  s->set_vflip(s, 1);
#endif


// Setup LED FLash if LED pin is defined in camera_pins.h
#if defined(LED_GPIO_NUM)
  setupLedFlash(LED_GPIO_NUM);
#endif


  WiFi.begin(ssid, password);
  WiFi.setSleep(false);


  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");


  startCameraServer();


  Serial.print("Camera Ready! Use 'http://");
  Serial.print(WiFi.localIP());
  Serial.println("' to connect");
}


void loop() {
  // Do nothing. Everything is done in another task by the web server
  delay(10000);
}

代碼中有幾點需要注意:

1、宏定義選擇適配的攝像頭模式。

// ===================
// Select camera model
// ===================
//#define CAMERA_MODEL_WROVER_KIT // Has PSRAM
// #define CAMERA_MODEL_ESP_EYE // Has PSRAM
//#define CAMERA_MODEL_ESP32S3_EYE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_PSRAM // Has PSRAM
//#define CAMERA_MODEL_M5STACK_V2_PSRAM // M5Camera version B Has PSRAM
//#define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_ESP32CAM // No PSRAM
//#define CAMERA_MODEL_M5STACK_UNITCAM // No PSRAM
//#define CAMERA_MODEL_AI_THINKER // Has PSRAM
//#define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM
//#define CAMERA_MODEL_XIAO_ESP32S3 // Has PSRAM
// ** Espressif Internal Boards **
//#define CAMERA_MODEL_ESP32_CAM_BOARD
//#define CAMERA_MODEL_ESP32S2_CAM_BOARD
//#define CAMERA_MODEL_ESP32S3_CAM_LCD
#define CAMERA_MODEL_DFRobot_FireBeetle2_ESP32S3 // Has PSRAM
//#define CAMERA_MODEL_DFRobot_Romeo_ESP32S3 // Has PSRAM

2、無線路由器SSID和密碼要填寫正確。

// ===========================
// Enter your WiFi credentials
// ===========================
const char* ssid = "";
const char* password = "";

3、給攝像頭供電

axp.enableCameraPower(axp.eOV2640);  // 給攝像頭供電

4、板卡需要外接天線,否則可能無法連接路由器。

編譯下載程序到板卡中,確保局域網訪問網絡攝像頭可正常使用。

2內網穿透網絡攝像頭

內網穿透我們使用花生殼這款軟件提供的內網穿透服務。

在官網下載APP

下載安裝完成后,在內網穿透服務點擊新建映射,如下圖所示:

6c73a7fe-4c6a-11ee-a25d-92fbcf53809c.png

填寫新建映射的基本信息,請注意內網主機和內網端口是局域網攝像頭的主機和端口(端口默認為80),如下圖所示:

6ca0b06e-4c6a-11ee-a25d-92fbcf53809c.png

新建映射完成后,可以在APP看到新增的設備列表,如下圖所示:

6cb80426-4c6a-11ee-a25d-92fbcf53809c.png

復制訪問網址,在瀏覽器中打開:http://2j90962r69.goho.co:47918/

即使不在同一個局域網內也可以正常訪問攝像頭啦。

6cc8e5de-4c6a-11ee-a25d-92fbcf53809c.png

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 攝像頭
    +關注

    關注

    60

    文章

    4862

    瀏覽量

    96308
  • 局域網
    +關注

    關注

    5

    文章

    761

    瀏覽量

    46396
  • ip地址
    +關注

    關注

    0

    文章

    303

    瀏覽量

    17131
  • ESP32
    +關注

    關注

    18

    文章

    978

    瀏覽量

    17529

原文標題:ESP32-S3搭建外網可訪問的網絡攝像頭(內網穿透)

文章出處:【微信號:美男子玩編程,微信公眾號:美男子玩編程】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    請問ESP32-S3 USB HOST是否支持USB2.0?

    規格書介紹ESP32-S2指定USB HOST支持的USB1.1,ESP32-S3的USB HOST支持USB2.0? 請問ESP32-S3 USB HOST是否支持USB2.0? 接入USB
    發表于 07-19 06:53

    請問ESP32-S3攝像頭,WIFI,藍牙鍵鼠,藍牙耳機對話,SD卡,USBOTG,一路串口通訊可以同時使用嗎?

    請問ESP32-S3上,攝像頭,WIFI,藍牙鍵鼠,藍牙耳機對話,SD卡,USBOTG,一路串口通訊可以同時使用嗎,最好再留5個IO輸出。
    發表于 02-15 06:03

    【FireBeetle 2 ESP32-S3開發板體驗】測評1_搭建開發環境

    ,擁有16MB Flash和8MB PSRAM。搭載的ESP32-S3芯片擁有強大的神經網絡運算能力和信號處理能力,適用于圖像識別、語音識別等項目。 FireBeetle 2 ESP32-S3板載
    發表于 07-29 21:40

    淺談ESP32-C3ESP32-S3芯片

    ESP32-C3ESP32-S3的發布,不僅為IOT行業提供了高性價比、穩定、好用、安全的通訊層,支持AI加速,同時在顯示層應用也將占有一席之地。
    發表于 04-28 10:37 ?1.9w次閱讀

    ESP32 AUDIO OV2640攝像頭 音頻調試日記

    reset 禁用3.vsync需使能兩次三、 I2S0切換使用ES8388和攝像頭前言記錄一下ESP32-DOWD芯片音頻和攝像頭的調試
    發表于 12-16 16:53 ?14次下載
    <b class='flag-5'>ESP32</b> AUDIO OV2640<b class='flag-5'>攝像頭</b> 音頻調試日記

    ESP32 CAM:遙控物體檢測攝像頭

    電子發燒友網站提供《ESP32 CAM:遙控物體檢測攝像頭.zip》資料免費下載
    發表于 12-15 09:56 ?2次下載
    <b class='flag-5'>ESP32</b> CAM:遙控物體檢測<b class='flag-5'>攝像頭</b>

    基于ESP32-CAM的RSTP協議的網絡攝像頭

    本次介紹的程序是使用ESP32-CAM進行圖像采集并將圖像以RTSP協議進行無線傳輸。在同網絡的PC上使用軟件對攝像頭的圖像進行拉取觀看。
    的頭像 發表于 12-15 11:39 ?4016次閱讀

    合宙ESP32-S3開發板特性解讀

    穿越萬水千山,奔赴與工程師朋友的約定——合宙ESP32-S3超值MCU開發板,來了! 1 合宙ESP32-S3開發板簡介 合宙CORE-ESP32S3是基于樂鑫ESP32-S3芯片進行
    的頭像 發表于 01-11 18:45 ?1w次閱讀

    什么是ESP32-CAM攝像頭

    ESP32-CAM是一款基于ESP32-S2 芯片,具有攝像功能的微型模組。同時配備了OV2640 攝像頭、連接外設的GPIO,以及用于存儲拍攝圖像的microSD 卡。
    的頭像 發表于 02-17 11:01 ?2.4w次閱讀
    什么是<b class='flag-5'>ESP32</b>-CAM<b class='flag-5'>攝像頭</b>?

    啟明去端分享| ESP32-S3如何實現tcp_client和tcp_server

    /get-started/index.html#get-started-set-up-env硬件需求:Esp32-s3開發板ESP32-S3TCP介紹傳輸控制協議(TCP
    的頭像 發表于 09-07 18:53 ?5523次閱讀
    啟明去端分享| <b class='flag-5'>ESP32-S3</b>如何實現tcp_client和tcp_server

    新品上市 | 合宙ESP32-S3開發板

    穿越萬水千山,奔赴與工程師朋友的約定——合宙ESP32-S3超值MCU開發板,來了!1合宙ESP32-S3開發板簡介合宙CORE-ESP32S3是基于樂鑫ESP32-S3芯片進行設計的
    的頭像 發表于 01-13 15:53 ?3346次閱讀
    新品上市 | 合宙<b class='flag-5'>ESP32-S3</b>開發板

    ESP32觸屏攝像頭

    電子發燒友網站提供《ESP32觸屏攝像頭.zip》資料免費下載
    發表于 06-27 14:28 ?0次下載
    <b class='flag-5'>ESP32</b>觸屏<b class='flag-5'>攝像頭</b>

    基于ESP32-S3的高性能開發板介紹

    PSRAM,可以存儲更多的代碼和數據,模組搭載的ESP32-S3芯片擁有強大的神經網絡運算能力和信號處理能力,適用于圖像識別、語音識別等項目。
    的頭像 發表于 09-05 11:33 ?1.1w次閱讀
    基于<b class='flag-5'>ESP32-S3</b>的高性能開發板介紹

    借助ESP32-S3主控MCU、ChirpLAN?小網關搭建網絡

    借助先進的ESP32-S3主控MCU,ChirpLAN?小網關為您帶來前所未有的網絡體驗。
    的頭像 發表于 03-14 10:02 ?1167次閱讀

    分享6個實用的ESP32-S3物聯網項目:從智能設備到安全創新

    的實時安全攝像頭等。 項目一、MutantW V2 - DIY ESP32-S3 智能手表 硬件和軟件組件: 硬件清單 1x ESP32-
    的頭像 發表于 05-17 10:15 ?947次閱讀
    主站蜘蛛池模板: 毛片一区二区三区 | 国产婷婷综合丁香亚洲欧洲 | 国产在线精品香蕉综合网一区 | 五月激情啪啪网 | 精品在线小视频 | 亚洲图色视频 | 久优草| 成在线人永久免费播放视频 | 国产一区二区三区在线影院 | 欧美日韩一区不卡 | 波多野结衣在线观看一区二区 | 高清成年美女xx免费网站黄 | 国产黄色录像视频 | 东莞a级毛片 | 黄色大视频 | 久久久久久夜精品精品免费啦 | 国产精品美女自在线观看免费 | 中国又粗又大又爽的毛片 | 欧美高清在线播放 | 六月丁香婷婷激情 | 亚洲成色999久久网站 | 欧美在线免费 | 一二三区电影 | 婷婷在线观看香蕉五月天 | 欧美亚洲一区二区三区在线 | 午夜性视频 | 欧美日韩亚洲国产一区二区综合 | 免费高清一级欧美片在线观看 | 欧美三级不卡在线观线看高清 | 性欧美极品另类 | 日韩操| 亚洲国产精品第一区二区 | 七月丁香八月婷婷综合激情 | 尻美女视频 | 国内外精品免费视频 | 欧美激情亚洲色图 | 国产午夜在线观看视频播放 | 色五夜婷婷 | 天天噜天天干 | 青青伊人91久久福利精品 | 激情亚洲婷婷 |