ESP32-CAM remote image access via FTP. Take pictures with ESP32 and upload it via FTP making it accessible for the outisde network.
More information can be found on their comprehensive Docs. But Basically:
platformio-ide
extensionESP32-CAM does not have a built-in UART/USB converter, therefore you will need one.
GIPO0
low;6mA
, this is quite a lot if you plan to have your board running on batteries.There're plenty of tutorials and examples on how to run the video streming or pictures on your local network while the ESP32 acts as a webserver.
The idea behind this project is to upload
the picture via FTP making it available on an URL something like: www.mysite.com/my_picture.jpg
This way you don't need to overload the ESP32, your network remains secure, not open to the world, no port forwarding.
For this example I uploaded the GitHub Octocat to my 000Webhost hosted webiste, the file is avalable under: https://my_user.000webhostapp.com/gallery_gen/XxXxXxXx.jpg
ftp.OpenConnection();
// Create the new file and send the image
ftp.InitFile("Type I");
ftp.ChangeWorkDir("/public_html/zyro/gallery_gen/");
ftp.NewFile("octocat.jpg");
ftp.WriteData( octocat_pic, sizeof(octocat_pic) );
ftp.CloseFile();
ftp.CloseConnection();
Blynk Image Gallery Widget
and just supply it with the URL used by ESP32 from the hardware.// Take a picture and add a time tag to it;
take_picture( "my_picture_201906170521" );
upload_FTPpicture();
// And by changing it on Blynk from the hardware will reflect on the App
Blynk.setProperty(VX, "url", 1, "https://mywebsite/something/my_picture_201906170521.jpg");
Another alternative is to send the image via MQTT(???) using cloud brokers as CloudMQTT and have the Node-RED subscribed to that topic and saving it to the database and serving the file locally.
This is a topic for another project, but can be seen briefly here
GitHub Shields and Badges created with Shields.io
GitHub ESP32 camera example