
ESP32 Cam by Espressif
Download Firmware
The Esp32 Cam is an affordable WiFi module with few I/O and streaming webcam capability. Adding this firmware to an esp32 cam, the WiFi module will become an EZB that ARC can connect to stream the camera and control gpio. Check below for the ports that work and don’t interfere with the camera.
*Note: On the AI Thinker edition, servos work on D2, D12, D13, D14, and D15. However, you will need to try your edition/model to see if those pins work. If not, try ones that do
*Note: It’s important to note that while the esp32 cam has an ezb firmware, some models share the same gpio in the pinout as the camera uses. This allows the camera to work but prevents the esp32 from being used as an ezb io controller due to their short-sighted design flaws.
How to use an ESP32 Cam
- In the Arduino IDE, add this link to File->Preferences->Libraries: https://dl.espressif.com/dl/package_esp32_index.json
- In the Arduino IDE, load the Board Manager, search for "ESP32 by Espressif Systems" and select INSTALL.
- Download the firmware from this page to your computer and extract it into a folder.
- Edit the source code firmware in the Arduino IDE and view the WiFi mode settings. You can choose between AP or Client mode. The appropriate settings for each method may be configured as well. Follow the instructions in the firmware code for configuring the WiFi modes.
- Programming the ESP32 device depends on the model version. Some have USB, and others require connecting through an Arduino UNO or USB TTL UART converter. Google "how to program an ESP32 Cam" for online tutorials.
- View the status of the connection in the Arduino Serial Monitor set to 115,200 baud. Depending on your WiFi settings, you will see the WiFi connection status.
- Load ARC and connect to the ESP32 directly via WiFi if it is in AP Mode; otherwise, connect to the same network as Client Mode. The default IP Address for AP Mode will be 192.168.50.1. In Client mode, you must view the Serial Debug Monitor in Arduino IDE or check your router DHCP client list.
WiFi Modes
Two WiFi modes can be configured in the code. They are AP Mode, which turns the ESP32 Cam into a WiFi server your computer connects directly to. The other mode is Client Mode, in which the ESP32 Cam connects to your network router. Get the IP Address and connection status information by viewing the Serial Monitor set to 115,200 in Arduino IDE.
Port Configuration
The pins in ARC are labeled D0 - D23. The ESP32 has GPIO labeled pins, which are not in any ordered sequence. This translation chart below shows the mapping of the ESP GPIO to ARC Dx pins. All Dx ports are mapped to GPIOx ports. So GPIO1 is D1, and GPIO2 is D2, etc.

Related Hack Events
Related Questions

Can't Connect Esp32 Cam To Arc

Looking To Improve Face Tracking Esp32 Cam

MJPEG Stream In Camera

USB Camera Disabled
Upgrade to ARC Pro
Harnessing the power of ARC Pro, your robot can be more than just a simple automated machine.
I did get the camera working with a FTDI adapter and Arduino code I found
works great
thanks
Your question was answered here: https://synthiam.com/Firmware/ESP32-Cam-EZB-5KUNP4UTSW0
followed your instruction above
I got the ESP32 cam working on ARC also now
Used the FTDI adapter to upload, same setting as when I used the Arduino code instructions..
EzAng
d2 = gpio2
d3 = gpio3
etc
Tried D12 with GPIO 12 - just got the servo to work -
Camera works good
Tried D12 with GPIO 12 - D13, and D15 work also
Camera and servos work
https://www.amazon.com/gp/product/B07T1PG77D/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8&psc=1
Nink, what version is yours? Does it look the same?
when I click start stream on bottom, I get the camera's video, also I can put this in my Iphone's browser - I can see the camera video on the phone
If you want the code just let me know
[code][/code]
Arduino: 1.8.19 (Windows 10), Board: "AI Thinker ESP32-CAM, 240MHz (WiFi/BT), QIO, 80MHz"
C:\EZ-ESP32-CAM\EZ-ESP32-CAM.ino:119:24: warning: passing NULL to non-pointer argument 1 of 'WiFiClient::WiFiClient(int)' [-Wconversion-null]
WiFiClient _CLIENT = NULL;
^~~~
C:\EZ-ESP32-CAM\EZ-ESP32-CAM.ino:120:27: warning: passing NULL to non-pointer argument 1 of 'WiFiClient::WiFiClient(int)' [-Wconversion-null]
WiFiClient _CLIENTCAM = NULL;
^~~~
C:\EZ-ESP32-CAM\EZ-ESP32-CAM.ino: In function 'void doEZProtocol()':
EZ-ESP32-CAM:755:49: error: call of overloaded 'analogWrite(byte&, long int)' is ambiguous
analogWrite(port, map(pos, 0, 100, 0, 255));
^
In file included from C:\Users\kirop\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.2\cores\esp32/Arduino.h:36,
from sketch\EZ-ESP32-CAM.ino.cpp:1:
C:\Users\kirop\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.2\cores\esp32/esp32-hal.h:93:6: note: candidate: 'void analogWrite(uint8_t, int)'
void analogWrite(uint8_t pin, int value);
^~~~~~~~~~~
In file included from C:\EZ-ESP32-CAM\EZ-ESP32-CAM.ino:16:
C:\EZ-ESP32-CAM\analogWrite.h:9:8: note: candidate: 'void analogWrite(uint8_t, uint16_t)'
void analogWrite( uint8_t APin, uint16_t AValue );
^~~~~~~~~~~
Multiple libraries were found for "WiFi.h"
Used: C:\Users\kirop\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.2\libraries\WiFi
Not used: C:\Program Files (x86)\Arduino\libraries\WiFi
exit status 1
call of overloaded 'analogWrite(byte&, long int)' is ambiguous
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
16:26:24.857 -> Client ezb connected from 80.163.252.XXX
16:26:24.857 -> EZB Client disconnected
16:26:24.898 -> Waiting for ezb client...
16:27:43.922 -> Client ezb connected from 80.163.252.XXX
16:28:15.861 -> EZB Client disconnected
16:28:15.908 -> Waiting for ezb client...
16:28:54.883 -> Client ezb connected from 80.163.252.XXX
16:29:20.268 -> Client cam connected from 192.168.72.60
Any advice on this?
call of overloaded 'analogWrite(byte&, long int)' is ambiguous
analogWrite(port, map(pos, 0, 100, 0, 255));