آردوینو اینترنت اشیا IOT برد Esp32

ساخت دوربین امنیتی کلاود ESP32-Cam با قابلیت دسترسی از هر نقطه

نوشته شده توسط CiferTech

در دسته محصولات امنیتی دوربین هایی را مشاهده می‌کنید که به دوربین های ip شناخته می‌شوند که درواقع از هر نقطه از دنیا تصاویر دریافتی را به کاربر به واسطه کلاود تحویل می‌دهند. در این آموزش نیز قصد داریم با استفاده از برد های ESP32-CAM و کلاود ngrok اقدام به ساخت چنین دستگاهی با فابلیت ارسال تصاویر به نقاط به مختلف بدون محدودیت کنیم. در واقع پس از پایان پروژه و راه‌اندازی آن، تنها توسط یک لینک توانایی دسترسی به آن را خواهید داشت. در ادامه آموزش ساخت اکسس پوینت ESP32-Cam با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 

ساخت دوربین امنیتی با ESP32-cam - دیجی اسپارک

 


ngrok چیست؟!


ngrok یک برنامه cross-platform است که توسعه دهندگان را قادر می سازد با حداقل تلاش یک سرور توسعه محلی را در معرض اینترنت قرار دهند. این نرم افزار باعث می شود وب سرور محلی شما در زیر دامنه ngrok.com میزبانی شود، به این معنی که به هیچ IP یا نام دامنه عمومی در دستگاه محلی یا Local نیازی نیست. عملکرد مشابه را می توان با Reverse SSH Tunneling بدست آورد، اما این امر به تنظیمات بیشتر و همچنین میزبانی از سرور راه دور خود نیاز دارد.

 

ngrok با ایجاد یک تونل TCP tunnel از یک زیر دامنه ایجاد شده به طور تصادفی در ngrok.com (به عنوان مثال ۳gf892ks.ngrok.com) به ماشین محلی می تواند محدودیت های نقشه برداری NAT و فایروال را دور بزند. پس از مشخص کردن پورتی که سرور وب شما روی آن گوش می کند، برنامه کلاینت با اتصال سرور، شروع به اتصال می کند و سپس هر کسی می تواند با آدرس منحصر به فرد از سرور محلی خود درخواست کند.

 


تراشه ESP-32


ESP32 نسل پیشرفته ESP8266 است. یکی از تفاوت‌های آن بلوتوث داخلی‌اش می‌باشد. همچنین دارای هسته وایفای ۲,۴ گیگا هرتزی و بلوتوث داخلی تولید شده با تکنولوژی ۴۰ نانومتری شرکت TSMC می‌باشد. این ماژول دارای بهترین پرفورمنس در مصرف انرژی می‌باشد یعنی با کمترین مصرف انرژی بهترین نتیجه را برای ما به همراه دارد. اگر بخواهیم دقیق‌تر به این برد نگاه کنیم باید بگوییم که این یک chip است که پلتفرم NodeMCU در اون پیاده سازی شده که به این نوع چیپ ها System on a chip microcontrollers هم گفته می‌شود. از دیگر امکانات ماژول ESP32-cam می‌توان به دوربین OV2640 با قابلیت ثبت تصویر با فرمت JPEG, BMP, grayscale اشاره کرد. همچنین با LED flash مونتاژ شده بر روی این ماژول قادر به تصویر برداری در مکان‌های تاریک نیز خواهید بود. یکی از ویژگی‌های کاربردی این ماژول ورودی micro SD با قابلیت ارتقا تا ۴GB است که به کاربر اجازه ذخیره تصاویر را هم می‌دهد.

 


ماژول FTDI programmer


برای پروگرام کردن ESP32-cam بدلیل اینکه پروگرامر داخلی برای قرار داده نشده، از این ماژول استفاده می کنیم در واقع این ماژول مبدل USB به TTL می باشد که از Rx و Tx با برد ESP-CAM و از طریق ارتباط USB با سیستم مورد استفاده ما ارتباط برقرار میکند. در این ماژول دو سطحی ولتاژ ۳٫۳ و ۵ ولت وجود دارد که در پروژه های مختلف می تواند مفید باشد.

 


نحوه کار پروژه


این پروژه به این شکل کار می‌کند که با استفاده از کلاود ngrok، پس از ثبت نام و دریفات کد موردنیاز و در ادامه با اجرا کردن وب سرور ESP32-CAM در شبکه محلی به کمک کلاود ngrok اقدام به انتقال دیتا به سمت کلاود و دریافت درطرف دیگر خواهیم کرد. این فرآیند تا با استفاده از یک cmd در ماشین ویندوزی شما صورت میگیرد که البته نسخه های دیگر برای ماشین لینوکسی نیز موجود است که به ما این امکان را می‌دهد، با استفاده از رزبری پای نیز قادر به راه‌اندازی بخش سرور این پروژه باشیم.

پروژه دوربین امنیتی Cloud با برد ESP32 - دیجی اسپارک

 


وسایل مورد نیاز


ماژول ESP32-CAM

ماژول مبدل FT232 برای پروگرام

برد esp32-cam و دسترسی به تصویر دوربین - دیجی اسپارک

 


نصب افزونه ESP32


برای شروع باید کتابخانه مربوط به این ماژول در نرم افزار Arduino IDE نصب گردد. ابتدا باید لینک زیر در محل ذکر شده FilePreferences کپی و پیست شود.

نصب افزونه ESP32 - دیجی اسپارک

 

سپس با مراجعه به بخش برد ها در Tools > Board > Boards Manager  و جسجوی ESP32 قادر به دانلود کتابخانه مربوط خواهید بود.

انتخاب نوع برد در نرم افزار Arduino IDE - دیجی اسپارک

 

روش نصب پکیج esp32 در آردوینو - دیجی اسپارک

 


پروگرام کردن ESP32-cam


برای پروگرام کردن این برد از شماتیک زیر استفاده کنید و اتصالات را مطابق شماتیک زیر متناسب با USB TO TTL استفاده شده برقرار کنید. دقت داشته باشد که در زمان پروگرام شدن کد یعنی پس از کامپایل کردن کد، دو پین GPIO 0 و GND به یکدیگر متصل هستند و پس از کامپایل موفق کد، برای اجرا شدن پروژه باید این اتصال را جدا کنید.

روش پروگرام کردن ESP32-cam - دیجی اسپارک

 

  • اتصالات به شرح زیر می‌باشد.

اتصالات پروگرامر ESP32-cam - دیجی اسپارک

 


راه‌اندازی ngrok


در اولین مرحله برای اجرای این پروژه در سایت ngrok.com اقدام به ساخت یک اکانت خواهیم کرد. ابتدا وارد سایت ngrok.com خواهیم شد، و با استفاده از گزینه SignUp به صفحه ای در پایین نشان داده شده وارد می‌شویم.

ثبت نام و راه‌اندازی ngrok - دیجی اسپارک

 

پس از ورود به این صفحه به دو روش می‌توانیم اقدام به ثبت نام در سایت کنیم. اول، با استفاده از اطلاعات کامل و وارد کردن دستی آن ها همان گونه که در تصویر زیر نشان داده شده.

مراحل ثبت نام در ngrok - دیجی اسپارک

 

در حالت دوم این امکان فراهم شده که با استفاده از اکانت Github یا Gmail در کمترین زمان اقدام به ثبت نام کنیم. در تصویر زیر با کلیک بر روی تصاویر مربوط به Gmail یا Github به واسطه این اکانت ها که از قبل ساخته اید، قادر به ساخت اکانت اتوماتیک در سایت هستید.

ثبت نام با gmail در سایت ngrok - دیجی اسپارک

 

پس از ثبت نام در سایت در صفحه اول یعد از ثبت نام یک پنجره را مشاهده خواهید کرد که با استفاده از آن ترمینال ngrok را برای سیستم عامل مربوط دانلود کنید.

دانلود ngrok از سایت اصلی - دیجی اسپارک

 

پس از دانلود فایل مشخص شده و اجرای آن با چنین محیطی مواجه خواهید شد. که در مراحل بعدی دستورات قابل فهم این ترمینا را بررسی خواهیم کرد.

 


دریافت IP Local (محلی)


برای دریافت IP لوکال از برد ESP32-CAM ابتدا باید کد مدنظر را در بر روی تراشه آپلود کنیم. کدی که برای این بخش استفاده می‌کنیم نمونه ساده شده مثال اصلی دوربین است که بدون تنظیمات اضافی قرار داده شده است، تا به راحتی در فضای وب انتقال داده شود. کد زیر نیاز به چند تغییر کوچک دارد که اولین مربوط به تنظیمات SSID و پسوورد مودم شما است که باید در فیلد های مشخص شده وارد کنید.

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

 

این کد برای تراشه های Wrover/ Ai Thinker به درستی کار میکند، به دلیل کانفیک قرار داده برای پین های مربوط در صورتی که از تراشه های متفرقه استفاده می‌کنید، این موارد را تغییر دهید.

 

#define PWDN_GPIO_NUM     32
#define RESET_GPIO_NUM    -1
#define XCLK_GPIO_NUM      0
#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       21
#define Y4_GPIO_NUM       19
#define Y3_GPIO_NUM       18
#define Y2_GPIO_NUM        5
#define VSYNC_GPIO_NUM    25
#define HREF_GPIO_NUM     23
#define PCLK_GPIO_NUM     22

 

در نهایت با استفاده از شماتیک موجود و آموزش های پیشین، اقدام به آپلود کد در تراشه ESP32 کنید.

#include "esp_camera.h"
#include <WiFi.h>

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

#define PWDN_GPIO_NUM     32
#define RESET_GPIO_NUM    -1
#define XCLK_GPIO_NUM      0
#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       21
#define Y4_GPIO_NUM       19
#define Y3_GPIO_NUM       18
#define Y2_GPIO_NUM        5
#define VSYNC_GPIO_NUM    25
#define HREF_GPIO_NUM     23
#define PCLK_GPIO_NUM     22

WiFiServer server(80);
bool connected = false;
WiFiClient live_client;


String index_html = "<meta charset=\"utf-8\"/>\n" \
                    "<style>\n" \
                    "#content {\n" \
                    "display: flex;\n" \
                    "flex-direction: column;\n" \
                    "justify-content: center;\n" \
                    "align-items: center;\n" \
                    "text-align: center;\n" \
                    "min-height: 100vh;}\n" \
                    "</style>\n" \
                    "<body bgcolor=\"#000000\"><div id=\"content\"><h2 style=\"color:#ffffff\">CiferTech LIVE</h2><img src=\"video\"></div></body>";

void configCamera(){
  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_sscb_sda = SIOD_GPIO_NUM;
  config.pin_sscb_scl = SIOC_GPIO_NUM;
  config.pin_pwdn = PWDN_GPIO_NUM;
  config.pin_reset = RESET_GPIO_NUM;
  config.xclk_freq_hz = 20000000;
  config.pixel_format = PIXFORMAT_JPEG;

  config.frame_size = FRAMESIZE_QVGA;
  config.jpeg_quality = 9;
  config.fb_count = 1;

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

//continue sending camera frame
void liveCam(WiFiClient &client){
  camera_fb_t * fb = esp_camera_fb_get();
  if (!fb) {
      Serial.println("Frame buffer could not be acquired");
      return;
  }
  client.print("--frame\n");
  client.print("Content-Type: image/jpeg\n\n");
  client.flush();
  client.write(fb->buf, fb->len);
  client.flush();
  client.print("\n");
  esp_camera_fb_return(fb);
}

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  Serial.println("");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  String IP = WiFi.localIP().toString();
  Serial.println("IP address: " + IP);
  index_html.replace("server_ip", IP);
  server.begin();
  configCamera();
}
    
void http_resp(){
  WiFiClient client = server.available();                           
  if (client.connected()) {     
      String req = "";
      while(client.available()){
        req += (char)client.read();
      }
      Serial.println("request " + req);
      int addr_start = req.indexOf("GET") + strlen("GET");
      int addr_end = req.indexOf("HTTP", addr_start);
      if (addr_start == -1 || addr_end == -1) {
          Serial.println("Invalid request " + req);
          return;
      }
      req = req.substring(addr_start, addr_end);
      req.trim();
      Serial.println("Request: " + req);
      client.flush();
  
      String s;
      if (req == "/")
      {
          s = "HTTP/1.1 200 OK\n";
          s += "Content-Type: text/html\n\n";
          s += index_html;
          s += "\n";
          client.print(s);
          client.stop();
      }
      else if (req == "/video")
      {
          live_client = client;
          live_client.print("HTTP/1.1 200 OK\n");
          live_client.print("Content-Type: multipart/x-mixed-replace; boundary=frame\n\n");
          live_client.flush();
          connected = true;
      }
      else
      {
          s = "HTTP/1.1 404 Not Found\n\n";
          client.print(s);
          client.stop();
      }
    }       
}

void loop() {
  http_resp();
  if(connected == true){
    liveCam(live_client);
  }
}

 

پس از آپلود کد در تراشه با انتخاب گزینه سریال مانیتور در Arduino IDE قادر خواهید بود ip لدکال ایجاد شده را دریافت کنید، که در مراحل بعدی به آن نیاز خواهیم داشت.

نکته: در صورت عدم نمایش ip یکبار با استفاده از میکروسوییج بر روی برد اقدام به ریست برد کنید.

 


راه‌اندازی پروژه و انتقال تصاویر


پس از انجام مراحل قبل از جمله آپلود کد و دریافت ip لوکال باید به سمت راه‌اندازی پیش نیاز های ngrok برویم و با استفاده از کامند های مربوط اقدام به ارسال تصاویر به سمت کلاود کنیم. ابتدا از تب سمت چپ در سایت ngrok بر روی گزینه Your Authtoken کلیک کنید.

 

در این قسمت با یک کد چندین کارکتری که از مجموع چندین حرف و رقم تشکیل شده مواجه خواهید شد. این کد تنها برای اکانت شما است و نباید به دست فرد دیگری برسد در این صورت می‌توانید از تنظیمات اقدام به ریست کردن آن کنید.

 

در مرحله بعد ترمینالی که دانلود کردیم را اجرا می‌کنیم و کامند زیر را به همراه Authtoken که دریافت کردید وارد کنید.

 

ngrok authtoken 1u6jfK9SLU0AYZPS8eLjNfxWaYX_5mVoVkgs7ZGSzRdBvXoeR

 

سپس در خط بعدی کامند زیر را با ip لوکال که دریافت کردید را وارد کنید، در قسمتی که نوشته شده ip_of_esp32 سپس enter را بزنید.

ngrok http 192.168.1.103:80

 

در ادامه با پنجره جدید با اطلاعات زیر مواجه خواهید شد که به شما لینک هایی برای دسترسی به وب‌سرور از طریق کلاود را می‌دهد. گه با جستجو کردن لینک مشخص شده در تصویر از هر نقطه و با هر دستگاهی قادر به دسترسی به وب‌سرور خود خواهید بود.

 

در نهایت با جستجوی لینک در مرورگر تصویر را بصورت لحظه ای دریافت خواهید کرد.

ارسال تصویر برد ESP32-cam به صورت آنلاین - دیجی اسپارک

 


کلام آخر با سایفر


در این پروژه ابتدا مانند دفعات پیش یک وب‌سرور ساده استریم تصاویر ساختیم و بصورت محلی به آن دسترسی داشته و با استفاده از سرویس ngrok اطلاعات این وب سرور را به سمت کلاود ارسال و با لینک مشخصی دریافت کردیم که به ما این امکان را داد تا در هر زمان و مکانی امکان اتصال به آن را داشته باشیم. این پروژه در نمونه محصولات امنیتی و نظارتی بسیار دیده می‌شود برای مثال دوربین های امنیتی که به دوربین های ip معروف هستند و یا محصولات ممراقب از کودک که یک سیستم نظارتی را برای شما فراهم می‌کند.

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

درباره نویسنده

CiferTech

تبادل نظر و رفع عیب با ثبت دیدگاه

۴۱ دیدگاه

  • سلام مهندس ویندوز کامپیوتر من ۷ و ۳۲ بیت است
    من نسخه ۳۲ بیت را دانلود کردم و وقتی روی فایل دانلود شده کلیک کردم سریع صفحه ی دستورات باز شد و بسته شد چند بار هم تست کردم درست نشد
    دوباره بالای ۳۲ بیت نوشته شده بود ویندوز فقط اونم دانلود کردم و اصلأ باز نشد
    به نظر شما مشکل از کجاست ؟
    ایا باید ویندوز عوض کنم ؟

  • سلام مهندس مشکل باز نشدن فایل حل شد
    به این صورت که من داخل پوشه دانلود کامپیوتر روی فایل کلیک راست و گزینه Open with و روی گزینه Windows Explorer کلیک کردم و روی فایل که کلیک کردم یه پنجره ای باز شد و دو گزینه Cancel و Run داشت که من روی گزینه Run کلیک کردم و صفحه دستورات باز شد
    ولی مشکل بعدی که هست
    داخل صفحه دستورات نوشته C:\Windows\system32< و منم طبق گفته شما کامند ngrok authtoken به همراه توکن را بصورت زیر وارد کردم

    C:\Windows\system32< ngrok authtoken به همراه توکن وارد کردم و enter
    را فشار دادم
    اینو نوشت
    ngrok is not recognized as an internal or external command operable program or batch file.
    الان باید چکار کنم ؟

    • سلام بنظر میاد فایلی که در حال اجرا شدن هست، مربوط به پیشفرض خود ویندوز هست و هنوز فایل دانلود اجرا نشده تا کامند های پیشفرض تشخیص داده بشن. اگر امکانش رو دارین داخل یک سیستم دیگه تست کنید.

      • سلام مهندس تونستم پروژه را اجرا کنم
        ولی یه مشکل وجود دارد من تا وقتی که پای کامپیوتر هستم و کامپیوتر روشن است میتونم تصاویر زنده را ببینم
        و اینکه احتیاج به پورت فورواردینگ در مودم نیست ؟
        چون توضیحی در مورد پورت فورواردینگ ندادید

        • سلام خیر نیازی به پورت فوروارد نیست. تصاویر زنده از طریق سیستموتون و سرویس ngrok هاست میشه، میتونید از یک رزبری استفاده کنید بجای سیستم.

  • سلام مهندس
    گفتم نکات زیر را هم بگم شاید مشکل از این نکات باشه
    من مودم اینترنت دارم ولی اینترنت کامپیوتر قطع هست بخاطر همین موقع انجام دستورات با موبایلم به وای‌فای متصل و سپس با کابل موبایلم را به کامپیوتر وصل کردم و اینترنت کامپیوتر را با سیم وصل کردم
    من در سایت که گفتید ثبت نام کنید ثبت نام کردم و ایمیل تایید حساب برام اومد که یه لینک داخل پیام بود من هنوز روی اون لینک کلیک نکردم
    گفتم این دو مورد را بگم شاید مشکل از اینها باشد

  • سلام مهندس
    متاسفانه امکان است با سیستم دیگه ای را ندارم
    نمیشه این مشکل را به صورت دیگری برطرف کرد ؟
    چون واقعاً به این پروژه احتیاج دارم

  • سلام
    ۱ -این ماژول فقط عکس میگیره ، فیلم ضبط نمیکنه اگر فقط عکس میگیره ایا سنسور حرکتی داره؟
    ۲ – این ماژول اگر خریداری کنیم شما خودتون پروگرم ماژول رو انجام میدید بنده سر رشته ای ندارم به عنوان دوربین امنیتی میخوام نصب کنم

  • سلام مهندس
    آیا امکان این هست این پروژه رو ما کامل راه اندازی شما از شما خریداری کنیم ؟

  • سلام مهندس خسته نباشید. من پروژه رو اجرا میکنم ولی تا وقتی روی لوکال آیپی هستم تصاویر نمایش داده میشن. یا وقتی از ngrok خارج میشم تصاویر دیگه هاست نمیشن و باید یک باره دیگه از اول اطلاعات رو وارد کنم و لینک جدید بگیرم. خب اینجوری فایده نداره. من میخوام مثلا وقتی مسافرت هستم یا یه کشور دیگه تصاویر رو با یه لینک دریافت کنم. خیلی جستو جو کردم حدود ۸ساعته نشستم پشت سیستم دیگه خسته شدم. تنها اطلاعاتی که دستگیرم شد اینه باید پورت فورواردینگ انجام بدم که اصلا بلد نیستم. اگه میشه خواهش میکنم یه راهنمایی بکنید ممنون میشم

    • با سلام، بله درسته اگر ترمینال ngrok رو ببندید انتقال دیتا متوقف میشه، برای این منظور می‌تونید از یک رزبری به عنوان سرور استفاده کنید. درباره پورت فورواردینگ، این کار رو ngrok برای ما انجام میده تا جایی که من اطلاع دارم.

  • سلام
    من می خواستم با ترکیب ESP32CAM و سنسور HC-SR501 PIR motion sensor کد زیر رو اجرا کنم
    اما وقتی خروجی حسگر حرکتی رو به esp32cam می زنم، led شروع به چشمک زدن می کنه.
    بدون اینکه حرکتی جلوی حسگر انجام بشه.
    اشکال از کجاست؟

  • سلام من می خواستم با ترکیب ESP32CAM و سنسور HC-SR501 PIR motion sensor کد زیر رو اجرا کنم اما وقتی خروجی حسگر حرکتی رو به esp32cam می زنم، led شروع به چشمک زدن می کنه. بدون اینکه حرکتی جلوی حسگر انجام بشه. اشکال از کجاست؟
    کد نوشته شده در آدرس زیر قابل دسترس است:
    https://shrib.com/#PocketGopher6ogvKyZ

  • سلام بعد از بسته شدن فایلcmd امکان دسترسی به تصویر وجود نداره؟ باید برای دسترسی فایل cmd همیشه باز باشه؟ مثلا لب تاپ روشن بمونه تا تصویر دریافت کنیم.

  • سلام
    میشه بفرمایید چرا برای من ادرس اینترنتی نمیاد؟
    این متنی که فرستادم بعد از اضافه کردن اتوکن در برنامه ngrok میاد
    من طبق آموزش پیش میرم
    کانکت هم میشه و مینویسه آنلاین

    http://localhost:4040/ to inspect, replay, and modify your requests

    on Status online
    milad (Plan: Free)
    on 3.1.0
    n Europe (eu)
    cy 164ms
    nterface http://127.0.0.1:4040
    forwarding
    https://f4ea-2a01-5ec0-d008-131f-7d00-7ddc-7f71-63

    conections ttl opn rt1 rt5 p50 p90
    ۰ ۰ ۰٫۰۰ ۰٫۰۰ ۰٫۰۰ ۰٫۰۰

    • با سلام
      بنده در این خصوص تجربه‌ای نداشته‌ام. در صورتی که دیگر کاربران نسبت به این موضوع اطلاعی دارند به شما کمک خواهند کرد. اگر هم خودتان راهکار را یافتید، لطفا در ادامه همین کامنت بنویسید.

  • سلام مهندس خسته نباشید
    این کد در برنامه ی آردوینو صحیح نشان داده میشود اما هنگام آپلود روی برد چنین خطایی رو میده

    Upload error : Failed uploading : uploading error . exit status 2

    خطای آپلود: آپلود ناموفق: خطای آپلود. وضعیت خروج ۲

  • سلام مهندس خسته نباشید
    کد آردوینو برای من کامپایل میشه اما آپلود نمیشه
    اون کدی رو که فرمودید رو هم عوض کردم اما در هنگام آپلود چنین خطایی میده:
    Upload error : Failed uploading : uploading error . exit status 2

  • سلام من همه کار ها رو انجام دادم
    ولی آی پی نداد
    میکرو سوئیچ رو دستگاه رو هم زدم
    ولی بازم نشد باید چیکار کنم؟

  • سلام موقع وارد کردن لینک در مرورگر این ارور نشان داده می شود
    Header fields are too long for server to interpret
    مشکل از کجاست لطفا راهنمایی فرمایید

  • بعد از انجام همه این کارا لازمه برای استریم شدن تصویر لبتاب یا کامپیوتر روشن باشن ؟
    یا بعد تموم شدن فقط لازمه esp32 به اینترنت وصل باشه و ما تصویر رو از هرجایی و از هر اینترنتی بگیریم ؟