{"id":94759,"date":"2020-03-10T15:33:12","date_gmt":"2020-03-10T15:33:12","guid":{"rendered":"https:\/\/randomnerdtutorials.com\/?p=94759"},"modified":"2025-04-12T16:33:42","modified_gmt":"2025-04-12T16:33:42","slug":"esp32-cam-ai-thinker-pinout","status":"publish","type":"post","link":"https:\/\/randomnerdtutorials.com\/esp32-cam-ai-thinker-pinout\/","title":{"rendered":"ESP32-CAM AI-Thinker Pinout Guide: GPIOs Usage Explained"},"content":{"rendered":"\n<p>The ESP32-CAM is a development board with an ESP32-S chip, an OV2640 camera, a microSD card slot, and several GPIOs to connect peripherals. In this guide, we&#8217;ll take a look at the ESP32-CAM GPIOs and how to use them.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pinout Diagram<\/h2>\n\n\n\n<p>The following image shows the pinout diagram for the <a href=\"https:\/\/makeradvisor.com\/tools\/esp32-cam-external-antenna\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">ESP32-CAM AI-Thinker<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-pinout-new.png?quality=100&#038;strip=all&#038;ssl=1\"><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" width=\"1000\" height=\"445\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-pinout-new.png?resize=1000%2C445&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32-CAM AI Thinker module board Pinout diagram GPIOs name\" class=\"wp-image-94760\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-pinout-new.png?w=1000&amp;quality=100&amp;strip=all&amp;ssl=1 1000w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-pinout-new.png?resize=300%2C134&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-pinout-new.png?resize=768%2C342&amp;quality=100&amp;strip=all&amp;ssl=1 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">Schematic Diagram<\/h2>\n\n\n\n<p>The following figure shows the schematic diagram for the ESP32-CAM.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-AI-Thinker-schematic-diagram.png?quality=100&#038;strip=all&#038;ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1200\" height=\"795\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-AI-Thinker-schematic-diagram.png?resize=1200%2C795&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" class=\"wp-image-94763\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-AI-Thinker-schematic-diagram.png?w=1222&amp;quality=100&amp;strip=all&amp;ssl=1 1222w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-AI-Thinker-schematic-diagram.png?resize=300%2C199&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-AI-Thinker-schematic-diagram.png?resize=1024%2C679&amp;quality=100&amp;strip=all&amp;ssl=1 1024w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-AI-Thinker-schematic-diagram.png?resize=768%2C509&amp;quality=100&amp;strip=all&amp;ssl=1 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/a><center><figcaption><a href=\"https:\/\/github.com\/SeeedDocument\/forum_doc\/blob\/master\/reg\/ESP32_CAM_V1.6.pdf\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Image Source (opens in a new tab)\">Image Source<\/a><\/figcaption><\/center><\/figure>\n\n\n\n<p>You can download a PDF file with better resolution on <a rel=\"noreferrer noopener\" aria-label=\"this GitHub repository (opens in a new tab)\" href=\"https:\/\/github.com\/SeeedDocument\/forum_doc\/blob\/master\/reg\/ESP32_CAM_V1.6.pdf\" target=\"_blank\">this GitHub repository<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Power Pins<\/h2>\n\n\n\n<p>The ESP32-CAM comes with three <span class=\"rnthl rntcblack\">GND<\/span> pins (colored in black color) and two power pins (colored with red color): <span class=\"rnthl rntcred\">3.3V<\/span> and <span class=\"rnthl rntcred\">5V<\/span>.<\/p>\n\n\n\n<p>You can power the ESP32-CAM through the <span class=\"rnthl rntcred\">3.3V<\/span> or <span class=\"rnthl rntcred\">5V<\/span> pins. However, many people reported errors when powering the ESP32-CAM with 3.3V, so we always advise to <strong>power the ESP32-CAM through the 5V pin<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Power output pin<\/h3>\n\n\n\n<p>There&#8217;s also the pin labeled on the silkscreen as <strong><span class=\"rnthl rntcyellow\">VCC<\/span><\/strong> (colored with a yellow rectangle). You should not use that pin to power the ESP32-CAM. That is an output power pin. It can either output 5V or 3.3V. <\/p>\n\n\n\n<p>In our case, the ESP32-CAM outputs 3.3V whether it is powered with 5V or 3.3V. Next to the VCC pin, there are two pads. One labeled as 3.3V and other as 5V. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"750\" height=\"422\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-Camera-AI-Think-Module-VCC-Power-Pins.jpg?resize=750%2C422&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32-CAM Camera AI Think Module VCC Power Pins\" class=\"wp-image-94819\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-Camera-AI-Think-Module-VCC-Power-Pins.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-Camera-AI-Think-Module-VCC-Power-Pins.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>If you look closely, you should have a jumper on the 3.3V pads. If you want to have an output of 5V on the VCC pin, you need to unsolder that connection and solder the 5V pads.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Serial Pins<\/h2>\n\n\n\n<p><span class=\"rnthl rntclblue\">GPIO 1<\/span> and <span class=\"rnthl rntclblue\">GPIO 3<\/span> are the serial pins (TX and RX, respectively). Because the ESP32-CAM doesn&#8217;t have a built-in programmer, you need to use these pins to communicate with the board and upload code. <\/p>\n\n\n\n<p>The best way to upload code to the ESP32-CAM is using an <a href=\"https:\/\/makeradvisor.com\/tools\/ftdi-programmer-board\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">FTDI programmer<\/a>.<\/p>\n\n\n\n<p><a href=\"https:\/\/randomnerdtutorials.com\/program-upload-code-esp32-cam\/\">Learn how to upload code to the ESP32-CAM AI-Thinker.<\/a><\/p>\n\n\n\n<p>You can use <span class=\"rnthl rntclblue\">GPIO 1<\/span> and <span class=\"rnthl rntclblue\">GPIO 3<\/span> to connect other peripherals like outputs or sensors after uploading the code. However, you won&#8217;t be able to open the Serial Monitor to check if everything is going well with your setup.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">GPIO 0<\/h2>\n\n\n\n<p><span class=\"rnthl rntclblue\">GPIO 0<\/span> determines whether the ESP32 is in flashing mode or not. This GPIO is internally connected to a pull-up 10k Ohm resistor.<\/p>\n\n\n\n<p>When GPIO 0 is connected to GND, the ESP32 goes into flashing mode and you can upload code to the board.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span class=\"rnthl rntclblue\">GPIO 0<\/span> connected to <span class=\"rnthl rntcblack\">GND<\/span> \u00bb ESP32-CAM in flashing mode<\/li>\n<\/ul>\n\n\n\n<p>To make the ESP32 run &#8220;normally&#8221;, you just need to disconnect GPIO 0 from GND.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">GPIO 16<\/h2>\n\n\n\n<p>GPIO 16 is connected to the internal PSRAM in many ESP32-CAM boards. If you want to use that pin to connect to peripherals while using the camera, make sure to disable PSRAM in your code.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">MicroSD Card Connections<\/h2>\n\n\n\n<p>The following pins are used to interface with the microSD card when it is in operation.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>MicroSD card<\/strong><\/td><td><strong>ESP32<\/strong><\/td><\/tr><tr><td>CLK<\/td><td>GPIO 14<\/td><\/tr><tr><td>CMD<\/td><td>GPIO 15<\/td><\/tr><tr><td>DATA0<\/td><td>GPIO 2<\/td><\/tr><tr><td>DATA1 \/ flashlight<\/td><td>GPIO 4<\/td><\/tr><tr><td>DATA2<\/td><td>GPIO 12<\/td><\/tr><tr><td>DATA3<\/td><td>GPIO 13<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>If you&#8217;re not using the microSD card, you can use these pins as regular inputs\/outputs. You can take a look at the <a href=\"https:\/\/randomnerdtutorials.com\/esp32-pinout-reference-gpios\/\">ESP32 pinout guide<\/a> to see the features of these pins.<\/p>\n\n\n\n<p>To free up some GPIOs, you can set the microSD card to run in 1-bit mode. In that case, you&#8217;ll free up GPIOs 12 and 13.<\/p>\n\n\n\n<p>All these GPIOs are RTC and support ADC: GPIOs 2, 4, 12, 13, 14, and 15.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Flashlight (GPIO 4)<\/h2>\n\n\n\n<p>The ESP32-CAM has a bright built-in LED that can work as a flash when taking photos. That LED is internally connected to <span class=\"rnthl rntclblue\">GPIO 4<\/span>.<\/p>\n\n\n\n<p>That GPIO is also connected to the microSD card slot, so you may have trouble when trying to use both at the same time. The flashlight will light up when using the microSD card.<\/p>\n\n\n\n<p><strong>Note:<\/strong> one of our readers shared that if you initialize the microSD card as follows, you won&#8217;t have this problem because the microSD card won&#8217;t use that data line.*<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>SD_MMC.begin(\"\/sdcard\", true)<\/code><\/pre>\n\n\n\n<p>* we found that this works and that the LED won&#8217;t make that flash effect. However, the LED remains on with low brightness &#8211; we&#8217;re not sure if we are missing something.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">GPIO 33 &#8211; Built-in Red LED<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"422\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-AI-Thinker-Module-Red-LED-built-in.jpg?resize=750%2C422&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" class=\"wp-image-94872\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-AI-Thinker-Module-Red-LED-built-in.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-AI-Thinker-Module-Red-LED-built-in.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure>\n\n\n\n<p>Next to the RST button, there&#8217;s an on-board red LED. That LED is internally connected to <span class=\"rnthl rntclgray\">GPIO 33<\/span>. You can use this LED to indicate that something is happening. For example, turn on that red LED when the Wi-Fi is connected.<\/p>\n\n\n\n<p>That LED works with inverted logic, so you send a <span class=\"rnthl rntliteral\">LOW<\/span> signal to turn it on and a <span class=\"rnthl rntliteral\">HIGH<\/span> signal to turn it off.<\/p>\n\n\n\n<p>You can experiment by uploading the following snippet and see if you get that LED glowing.<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>void setup() {\n  pinMode(33, OUTPUT);\n}\n\nvoid loop() {\n  digitalWrite(33, LOW);\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Camera Connections<\/h2>\n\n\n\n<p>The connections between the camera and the ESP32-CAM AI-Thinker are shown in the following table.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>OV2640 CAMERA<\/strong><\/td><td><strong>ESP32<\/strong><\/td><td><strong>Variable name in code<\/strong><\/td><\/tr><tr><td>D0<\/td><td>GPIO 5<\/td><td>Y2_GPIO_NUM<\/td><\/tr><tr><td>D1<\/td><td>GPIO 18<\/td><td>Y3_GPIO_NUM<\/td><\/tr><tr><td>D2<\/td><td>GPIO 19<\/td><td>Y4_GPIO_NUM<\/td><\/tr><tr><td>D3<\/td><td>GPIO 21<\/td><td>Y5_GPIO_NUM<\/td><\/tr><tr><td>D4<\/td><td>GPIO 36<\/td><td>Y6_GPIO_NUM<\/td><\/tr><tr><td>D5<\/td><td>GPIO 39<\/td><td>Y7_GPIO_NUM<\/td><\/tr><tr><td>D6<\/td><td>GPIO 34<\/td><td>Y8_GPIO_NUM<\/td><\/tr><tr><td>D7<\/td><td>GPIO 35<\/td><td>Y9_GPIO_NUM<\/td><\/tr><tr><td>XCLK<\/td><td>GPIO 0<\/td><td>XCLK_GPIO_NUM<\/td><\/tr><tr><td>PCLK<\/td><td>GPIO 22<\/td><td>PCLK_GPIO_NUM<\/td><\/tr><tr><td>VSYNC<\/td><td>GPIO 25<\/td><td>VSYNC_GPIO_NUM<\/td><\/tr><tr><td>HREF<\/td><td>GPIO 23<\/td><td>HREF_GPIO_NUM<\/td><\/tr><tr><td>SDA<\/td><td>GPIO 26<\/td><td>SIOD_GPIO_NUM<\/td><\/tr><tr><td>SCL<\/td><td>GPIO 27<\/td><td>SIOC_GPIO_NUM<\/td><\/tr><tr><td>POWER PIN<\/td><td>GPIO 32<\/td><td>PWDN_GPIO_NUM<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>So, the pin definition for the ESP32-CAM AI-Thinker on the Arduino IDE should be as follows:<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>#define PWDN_GPIO_NUM  32\n#define RESET_GPIO_NUM -1\n#define XCLK_GPIO_NUM  0\n#define SIOD_GPIO_NUM  26\n#define SIOC_GPIO_NUM  27\n#define Y9_GPIO_NUM    35\n#define Y8_GPIO_NUM    34\n#define Y7_GPIO_NUM    39\n#define Y6_GPIO_NUM    36\n#define Y5_GPIO_NUM    21\n#define Y4_GPIO_NUM    19\n#define Y3_GPIO_NUM    18\n#define Y2_GPIO_NUM    5\n#define VSYNC_GPIO_NUM 25\n#define HREF_GPIO_NUM  23\n#define PCLK_GPIO_NUM  22<\/code><\/pre>\n\n\n\t\t<div data-elementor-type=\"section\" data-elementor-id=\"94673\" class=\"elementor elementor-94673\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2689e44b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2689e44b\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7490d123\" data-id=\"7490d123\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-35934f78 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"35934f78\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-3de108d9\" data-id=\"3de108d9\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5aca63ab elementor-widget elementor-widget-image\" data-id=\"5aca63ab\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/randomnerdtutorials.com\/esp32-cam-projects-ebook\/\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"334\" height=\"334\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-eBook-334.jpg?fit=334%2C334&amp;quality=100&amp;strip=all&amp;ssl=1\" class=\"attachment-full size-full wp-image-94555\" alt=\"\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-eBook-334.jpg?w=334&amp;quality=100&amp;strip=all&amp;ssl=1 334w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-eBook-334.jpg?resize=300%2C300&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-eBook-334.jpg?resize=150%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 150w\" sizes=\"(max-width: 334px) 100vw, 334px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-4bd084e0\" data-id=\"4bd084e0\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-517cf0fa elementor-widget elementor-widget-heading\" data-id=\"517cf0fa\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/randomnerdtutorials.com\/esp32-cam-projects-ebook\/\">[eBook] Build ESP32-CAM Projects using Arduino IDE<\/a><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3438ea70 elementor-hidden-phone elementor-widget elementor-widget-text-editor\" data-id=\"3438ea70\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Learn how to program and build 17 projects with the ESP32-CAM using Arduino IDE\u00a0<strong><a href=\"https:\/\/randomnerdtutorials.com\/esp32-cam-projects-ebook\/\" rel=\"noopener\">DOWNLOAD \u00bb<\/a><\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<div class=\"elementor-element elementor-element-674524a5 elementor-hidden-desktop elementor-hidden-tablet elementor-widget elementor-widget-text-editor\" data-id=\"674524a5\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Learn how to program and build 17 projects with the ESP32-CAM using Arduino IDE <strong><a href=\"https:\/\/randomnerdtutorials.com\/esp32-cam-projects-ebook\/\" rel=\"noopener\">DOWNLOAD \u00bb<\/a><\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\n\n\n\n<h2 class=\"wp-block-heading\">Wrapping Up<\/h2>\n\n\n\n<p>We hope you&#8217;ve found this guide for the ESP32-CAM GPIOs useful. If you have any tips or more info about the ESP32-CAM GPIOs, write a comment below.<\/p>\n\n\n\n<p>We have several projects with the ESP32-CAM that you may like:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-cam-video-streaming-face-recognition-arduino-ide\/\" target=\"_blank\" rel=\"noreferrer noopener\">Video Streaming, Face Detection and Face Recognition<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-cam-video-streaming-web-server-camera-home-assistant\/\" target=\"_blank\" rel=\"noreferrer noopener\">ESP32 IP CAM \u2013 Video Streaming (Home Assistant and Node-RED)<\/a><\/li>\n\n\n\n<li><a style=\"font-size: inherit; background-color: initial;\" href=\"https:\/\/randomnerdtutorials.com\/esp32-cam-pir-motion-detector-photo-capture\/\" target=\"_blank\" rel=\"noreferrer noopener\">PIR Motion Detector with Photo Capture<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-cam-take-photo-display-web-server\/\" target=\"_blank\" rel=\"noreferrer noopener\">Take Photo, Save to SPIFFS and Display in Web Server<\/a><\/li>\n\n\n\n<li><a aria-label=\" (opens in a new tab)\" href=\"https:\/\/makeradvisor.com\/esp32-camera-cam-boards-review-comparison\/\" target=\"_blank\" rel=\"noreferrer noopener\">Best ESP32 Camera Development Board<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-cam-projects-ebook\/\"><strong>Build ESP32-CAM Projects (eBook)<\/strong><\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/projects-esp32-cam\/\"><strong>Read all our ESP32-CAM Projects, Tutorials and Guides<\/strong><\/a><\/li>\n<\/ul>\n\n\n\n<p>Thanks for reading.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The ESP32-CAM is a development board with an ESP32-S chip, an OV2640 camera, a microSD card slot, and several GPIOs to connect peripherals. In this guide, we&#8217;ll take a look &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"ESP32-CAM AI-Thinker Pinout Guide: GPIOs Usage Explained\" class=\"read-more button\" href=\"https:\/\/randomnerdtutorials.com\/esp32-cam-ai-thinker-pinout\/#more-94759\" aria-label=\"Read more about ESP32-CAM AI-Thinker Pinout Guide: GPIOs Usage Explained\">CONTINUE READING \u00bb<\/a><\/p>\n","protected":false},"author":5,"featured_media":94817,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[281,276,277,319,264],"tags":[],"class_list":["post-94759","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-esp32-project","category-esp32","category-esp32-arduino-ide","category-esp32-cam","category-project"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-CAM-pinout-guide-gpios-pins-explained.jpg?fit=1280%2C720&quality=100&strip=all&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/94759","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/comments?post=94759"}],"version-history":[{"count":2,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/94759\/revisions"}],"predecessor-version":[{"id":168877,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/94759\/revisions\/168877"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media\/94817"}],"wp:attachment":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media?parent=94759"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/categories?post=94759"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/tags?post=94759"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}