I started to dig a bit more into the Iot development network from Espressif with the intention to slowly learn something new. All the official examples of Mesh lights, ESP32-Camera and ESP-WHO that presents a preliminary version of face recognition are built on the top of the IDF.
So sooner or later, I think will be the official way to do “internet of the things” devices with these Boards. But I’m still not ready for it, I need to do simple examples and experimenting before taking over and do something for real.
So the first things I tackled on is to take this libraries “as is” and use them in existing Arduino framework projects. And it’s fully possible, below is a small example about this using the TTGO Camera with Pir sensor
So far it features:
- camera_index.html template loaded from the SPIFFS so you can modify it for your project (No Gziped non-editable file)
- Added V-Flip setting that was not existing in the original example
- Libraries loaded using platform.io file
This is my humble try to make a hackeable and modificable esp32 Camera example using ARDUINO as a framework but with the official Espressif Camera Libraries.
One important step is that without using the IDF, just adding the libraries in plataform.io project configuration file:
platform = espressif32
framework = arduino
It won’t compile. The reason is that it tries to find the C header files but they do not have the needed mapping out of the box if you use framework: arduino. It will complain that:
.piolibdeps/esp32-camera/conversions/jpge.cpp:11:18: fatal error: jpge.h: No such file or directory
And the file is there but in another directory. So my workaround was to add this directory in the build_flags configuration:
After this it compiles without errors.
Some notes and references for this post
Think about C header files as your interfaces, your function prototypes! Code organization is very important.
3D-models for the TTGO Cameras available in Thingiverse, my own prototype design (be aware!)
New ESP-Mesh RGB+White Light soldered. You can do your own for about 10€ materials and 2 hours soldiering ;)
The development + testing is happening in this repository:
If you want to use this as a component in your existing project: github.com/martinberlin/CalEPD