Todo's first things first:
- Make consumption lower. Camera and any display should go to deep sleep after A data from Arducam fifo is read and B after any display shows fore some seconds the thumbnail or the message that the upload is done. UPDATE: Some steps on this direction taken. New versions will use the camera only for the moment to take the picture and then it will be disconnected (VCC off, connected to 3.3v through a P-channel mosfet) I tried to use VEXT on Heltec ESP32 but it does not support 200mA and voltage goes lower than 3v.
On FS32 esp-32 version of the repository this is already implemented, just set gpioCameraVcc to the gate to your mosfet.
- Finish the ESP32 case design and find a good to way to connect power. I'm not satisfied with current Heltec ESP32 Wifi board in terms of battery charging since it drops voltage to a point that after some minutes the Espressif chip resets in a loop.
UPDATE: Got feedback from the nice people from Heltec automation, the version V2 has this improved, now it's not optimal but it charges battery. Anyways without point 1 is pointless, since there is no battery that can resist 200+ mA of continuous power.
EXTRA: Make a chunk-uploader to reduce the amount of failed uploads. Not sure if this idea will maturate but sounds challenging and doable. More about this idea here. Working on this next weekend.
LoRa: There is a design with a Lora Antenna holder in the front. I though that it can be an interesting idea to make a "spy" camera that you can place somewhere as a security measure and will detect movement, take pictures and send a LoRa message. It can be placed remotely and if has no WiFi, can save the images on SPIFFs. Anyone interested ? Sending a 4Kb JPEG via LoRa should be also possible but don't think makes too much sense at the beginning.
This project started somewhere around middle Sept, 2018. I was fiddling around with the Wemos D1 and I found out that I could create something to push pictures to the cloud without effort trying a SPI camera. So I just remixed an 3D design I found on Thingiverse and created a very simple WiFI camera. This first version was very raw, it had HTML mixed between C++ lines of code and it did little more than being a point and shoot camera with a one button web UX. This is how it looked after a few design iterations and about 300 grams of PLA wasted:
But it kick started the feeling that it could be much more.
The pictures where raw like a digital Polaroid, no camera software deciding that I need more light or focus here and multiple shoots. No. Just a raw JPEG delivered as a "best try" to your preferred upload endpoint. That was the beauty I've seen. Simplicity.
But of course not all where Roses and Guns, one of each 10 or 20 pictures, come out like this pictures you can see in the Album broken-uploads.
Then my father, that is an electronic self taught engineer since 20, told me that he wants to take time-lapse pictures of the puzzles he is making. So I started programming this as the first feature that you can preview in this simple gallery pressing the bottom-right Slideshow button. He later helped me out to try it and kill some bugs.
As an introduction to programming I must say that I'm not a good C++ programmer since I come from a different world professionally, doing mobile API endpoints and Admin-panels for clients here in Germany mostly using PHP and frameworks like Symfony. So I had to first pick a book and digest how this new variable types and strict chars are supposed to work together. It was painful but I got to like it and this project is really my first step on this world of IoT. So please excuse me if you see some horrible coding style there. Just make your own fork and beautify it.
The features that this FS2 camera currently offers are: