ESP32 Cam

ESP32 Cam by Espressif

Connection Type
Wi-Fi
Number of servos
10
Audio Support
No
Camera Support
Yes

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.


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.


ARC Pro

Upgrade to ARC Pro

Get access to the latest features and updates before they're released. You'll have everything that's needed to unleash your robot's potential!

#17  

DJ, So how should this call be changed to correct the following error?  So I can get this to compile correctly?

/Users/shawn/Documents/Arduino/EZ_ESP32_CAM/EZ_ESP32_CAM.ino: In function 'void doEZProtocol()':
/Users/shawn/Documents/Arduino/EZ_ESP32_CAM/EZ_ESP32_CAM.ino:755:49: error: call of overloaded 'analogWrite(byte&, long int)' is ambiguous
       analogWrite(port, map(pos, 0, 100, 0, 255));
                                                 ^
PRO
Synthiam
#18  

Answered above. Cast port to a byte. Or map to a byte. One of the two needs to be a byte with your compiler.

#19   — Edited

So I changed it to this and it compiled...:D

analogWrite(port, byte(map(pos, 0, 100, 0, 255)));
PRO
Synthiam
#20  

Haha man arduino is so weird. So byte() is also a function? That’s hilarious

I would have expected traditional C to be


analogWrite(port, (byte)map(pos, 0, 100, 0, 255));

but they have a byte() and probably an int() and such ha too funny

Unknown Country
#21  

DJ Sures PRO your solution has compiled for me, thanks

United Kingdom
#22   — Edited

Hi.

Is it works with Freenove ESP32-WROVER CAM Board

https://www.amazon.co.uk/dp/B0CJJHXD1W

UPDATED.

OK, sorted, maybe will be helpful for somebody.

Uncomment: CAMERA_MODEL_WROVER_KIT

Thanks, Tomas