Today we will Stream HD video throughout our entire local network with a module pretty much the size of my thumb. We can even run AI Face Detection, operating completely on the edge, with our ESP32-CAM module. At this form factor it feels like Science Fiction ????????????.


This tiny board can stream HD video over your Wi-Fi, accessible from any locally connected browser. Hey gang, Tim here at Core Electronics and this is the ESP32 CAM Development Board by DFRobot. Today I'm going to demonstrate how to set one up and I'm even going to run a face recognition with it as well. At this size, it almost feels like science fiction!

ESP32 boards are the current IoT gold standard for getting Wi-Fi connectivity onto your projects. The ESP32 CAM Dev Board that I have in front of me sports an inbuilt 2 megapixel camera, a microSD card holder for recording video, a microSD indicator LED, an inbuilt antenna, a socket for a beefier external antenna, and a reset button.

On the table before me is everything needed to get our video stream up and running. Naturally, we will need an ESP32 CAM Development Board. We will also need a USB to UART programmer to connect the programmer to the module. We will utilize some male to male jumper cables and a breadboard. Finally, we're going to need a power supply for the module which needs to be at least 2 amp output at 5 volts a DC Barrel jack adapter with screw terminals.

We will need to get our ESP32 board set up so that it can receive our data. The ESP32 CAM Board also comes pre-soldered with these headers so we can mount it to a breadboard like so. When arranging your ESP32 CAM onto the breadboard, make sure that you can access and press the RST reset button on the bottom of it. We will need access to this button later.

Start by plugging in the red 5 volt wire connection from the converter into the 5 volt pin as written on the ESP32 CAM PCB. Next, plug the black ground wire to a ground pin on the ESP32 CAM Board. Next, grab the white RX wire and connect it to the TX pin labelled as UOT as written on the PCB. Then, place the green TX wire to the RX pin labelled as UIN on the PCB.

With that completed and double checked, feel free to plug in the USB side to your desktop computer. Now let's set up our computer so we can quickly program our ESP32 CAM exactly how we want. Use the link found in the description to jump to this official software download location. With it installed and running on your desktop computer, it's going to look like this.

First, we will need to add the ESP32 board library to our fresh Arduino IDE installation. To do this, focus on the top toolbar and click on File, then go down to Preferences and click on it. In this setting menu, you're going to find the Additional Boards section. We're going to copy and paste the following into this section. I'm copying and pasting it from the main article and I'm going to have this exact URL down in the description to make it easier for you. Having done that, press OK. If you already have something written here, separate each URL with a comma.

Then, focus back to the top toolbar, click on Tools, hover down to Board and click on Board Manager. Then, in the search bar, type ESP32. When the library of the same name pops up, click on the Install button. Having done this, we have all the functionality required to make our ESP32 CAM board work with the Arduino IDE.

With that complete, let's focus back to the top toolbar and click on Tools. We have some settings here to adjust and we want these settings to match exactly what I have over here. To start, we're going to change to the ESP32 Rover module. Having done that, our speed is correct, our flash frequency is correct, our flash mode is correct. I'll default the pin labelled as UOR on the PCB. Finally, to force our ESP32 CAM into bootloader mode, we will add one more wire. In this case, I've chosen a blue jumper wire. This must go between a ground pin and the IO zero pin on the ESP32 CAM board.

Four megabytes with spliffs is correct. Hold on guys, there's one thing here to fix that I forgot. We got to select 'Huge App' as the partition scheme. This will accommodate for our large image. With that done, you'll be sorted. Everything seems great. The one thing here to note is the only setting that may be slightly different is the port number. Just be sure to select the one the ESP32 can board is connected to.

With our programming environment setup and complete, we now just need those programming scripts to tell our microcontroller what to do. You can find these scripts at the bottom of the written up article or from Expressive's Main GitHub repository. So here I am back at the main writer download section. It tells me this is at the bottom, so that's where I'm gonna go (link down below).

Once you have the scripts downloaded and unzipped to your computer, open up the code in Arduino IDE by clicking on the file button at the top toolbar and then hovering down and clicking on open. Using the newly opened window, jump to where you unzip that file and then jump deeper into the directories like so: ESP32 Examples > Camera > then select Camera Web Server > and Camera Web Server.ino.

We will need to customize the camera web server script by adding your particular Wi-Fi and Wi-Fi password credentials. This section can be found in the main code from line 33 onwards. Make sure to enclose those details with quotation marks and save the script after doing so.

So if you got into this stage, it is time to flash. We're going to click the upload button found on the top left of the interface. This will then start compiling your code and sending it through your USB to UART converter which sends that message directly into your ESP32 Cam microcontroller. As soon as you see a loading bar which is represented by these orange dots slowly.

Traveling along in the bottom terminal of the Arduino IDE, you must press the reset button on the bottom of the ESP32 CAM board to force it into bootloader mode. You're going to know that the button is being pressed as the LED indicator is going to illuminate. UART is literally ones and zeros, which means it is machine code with a little prefix and addendum to confirm the start and end of transmission. This process will take less than five minutes and it's going to display this message once it's complete. If you're not fast enough at clicking that button, this is the message you're going to receive.

Before progressing any further, let's now figure out exactly what IP address our ESP32 CAM is going to be provided by our router. Focus once more to the top toolbar and click on tools and then hover down and click on serial monitor. Make sure that the board rate is set to 115200. Now focusing back to the hardware, we're going to remove that blue jumper wire that connects ground pin to the IO zero pin from the ESP32 CAM board and press the restart button on the ESP32 for approximately one second. And here is our website to connect to. So if we type into the URL of any locally connected device, we will be able to see what the camera is saying.

Now with the software flashed our ESP32 CAM, it's time to play. We're going to hook up this ESP32 CAM board to a 5 volt 4 amp power supply by utilizing a female power jack. The red 5 volt wire connects to the positive screw down terminal and the 5 volt pin on the ESP32 CAM board. Then the ground wire connects to the negative screw down terminal and any ground pin on the ESP32. Then we're just going to plug in our power supply. I'm going to take this side and switch it on. Now on any locally connected device, let's open up a web browser. Chrome, Safari or Edge are perfect candidates.

Straight away, when you type in the IP address you figured out from before into the browser, you're going to be welcomed by the graphical user interface that the ESP32 CAM automatically creates on boot. Scroll down and select start stream, and as soon as you do, your ESP32 CAM development board is going to start a live stream of a video feed of exactly what the camera sees all through your Wi-Fi.

There's heaps of fantastic options here, every dial that you could want to toggle with a camera module is here and ready to go. You can also lower the resolution and use different forms of video stream encoding to increase the frame rate. There is also a simple face recognition AI system built into this software too. You will notice a big dip in the frames per second when doing this, even when using a lower pixel density. However, it is remarkable that this will work on hardware this stripped back.

Here it is running on my mobile phone as well. You can see I've typed in the same IP address and if we scroll down to the bottom and press start stream, there I am. This has to be the easiest way to get eyes on the ground for your projects. To have a complete video streaming package that starts as soon as 5 volts is provided is just phenomenal.

Allow me to demonstrate with this tracked Zumo 32u4 robot. I added 5 volt and ground to the ESP32 CAM from the battery powered pinouts on the top of the Zumo robot. Now when I drive it around using this little IR remote, I can see exactly what the Sumo robot sees. I have also 3D printed several ESP32 CAM cases to figure out which one was the best.

The application that these cameras will usually be used for is for security cameras, so the one that I settled on was a simple clean design, something understated but will provide enough protection from everyday indoor life.

Want to 3D print the same case? Check the links down below and that's it! You now have a HD Wi-Fi streaming camera in a minuscule form factor with a very small powered drawer that feels like it comes from a cyberpunk feature. Be safe and be respectful with this power. We are full-time makers and we are always happy to help, so until next time, Snakehouse Foreign.



Please continue if you would like to leave feedback for any of these topics:

  • Website features/issues
  • Content errors/improvements
  • Missing products/categories
  • Product assignments to categories
  • Search results relevance

For all other inquiries (orders status, stock levels, etc), please contact our support team for quick assistance.

Note: click continue and a draft email will be opened to edit. If you don't have an email client on your device, then send a message via the chat icon on the bottom left of our website.

Makers love reviews as much as you do, please follow this link to review the products you have purchased.