I decided to give a shot to making a small camera after seeing a little tiny company, whose name starts with K and ends in odak, sell these sh*tty cameras for quite a lot of money and basically zero features, oh and if that isn't horrible enough already they sell them in this "WOOOOOOW YOU DON'T KNOW WHAT CAMERA YOU ARE GONNA GET!!! ALSO TRANSPARENT CASE SUPER DUPER RARE ONE!!!!!" way, peak consumerism...
So yeah, here I am, trying to make something that is actually cool. I want this camera to be able to send the pictures to Discord and Telegram, also I'll try to implement a static HTTP page when you connect to the ESP's WiFi with a carousel of the taken images.
I'm gonna use a PCB but you can get away by using flying wires and whatnot.
## What can it do?
- Takes photos with the OV2640 sensor of the ESP32-CAM (up to UXGA, 1600x1200, so roughly 2 megapixels) and saves them as JPG on a microSD card.
- Beeps to tell you what's going on (ready, photo taken, error, going to sleep...). No screen needed!
- Creates its own WiFi network. Connect your phone, open a web page and swipe through your photos in a little carousel. No app, no cloud, no account.
- Can optionally send every photo to a Telegram chat or a Discord channel as soon as you take it.
- Can be updated over WiFi (OTA), so you don't need to unscrew it and plug cables every time there's a new firmware.
- Goes to sleep by itself when you're not using it to save battery.
## Using it
1. Put the microSD card in the ESP32-CAM.
2. Press the power button (the one on the K pin of the charging module). The module has no on/off switch, that's the button that turns the 5V on.
3. Wait for 2 short beeps. That's the "I'm ready let's go" signal.
4. Press the big red button to take a photo. You'll hear 2 rising beeps when it's saved.
5. Done! The photos are on the SD card as 'photo_00001.jpg', 'photo_00002.jpg', and so on. The counter keeps going even after a reboot, so old photos never get overwritten.
The small flash LED on the ESP32-CAM stays dimly lit while the camera is on, it's on purpose: it's the "yes, I'm awake" light (it shares a pin with the shutter button).
### What do the beeps mean?
| Sound | Meaning |
| 2 short beeps | Ready to shoot |
| 1 short high beep (after a photo) | Photo uploaded to Telegram / Discord |
| 2 rising beeps | Photo saved |
| 1 long low beep (after a photo) | Upload failed (the photo is still safe on the SD card) |
| 2 low beeps | Error: the camera or the SD card didn't start, or the photo couldn't be saved |
| 3 falling beeps | Going to sleep |
### Sleeping and waking up
After 60 seconds without doing anything the camera goes into deep sleep. About 30 seconds later the charging module notices that almost no current is being used and cuts the 5V completely (that's its default behaviour, very nice for the battery life).
- Press the big red button to wake it up (works while it's still in deep sleep, so in the first ~30 seconds, or when it's plugged into USB-C).
- If the power was cut, press the power button on the charging module to turn it on again.
If your phone is connected to the camera's WiFi the sleep timer is 5 minutes instead of 1, so you have time to browse your photos or update the firmware.
(but you can totally change this and give yourself more time)
### Seeing your photos on your phone
1. Connect to the WiFi network called 'ESP32-CAM'. The default password is '12345678'. Please change it, it's in the firmware ('ap_ssid' and 'ap_password')!
2. Open http://192.168.4.1 in your browser.
3. You'll see the carousel: newest photo first, ◀ goes to the older one and ▶ to the newer one. You can also use the arrow keys on a computer or swipe on a phone. The Download button saves the current photo.
The ESP32 is a tiny chip, so photos take around 1 to 3 seconds to load. Be patient with it, it's doing its best!
Emanuele Carlino
Glenn
Cameron
mircemk