Skip to content

Latest commit

 

History

History
110 lines (70 loc) · 4.9 KB

README.md

File metadata and controls

110 lines (70 loc) · 4.9 KB

ESP32-CAM-Picture-Sharing

ESP32-CAM remote image access via FTP. Take pictures with ESP32 and upload it via FTP making it accessible for the outisde network.

GitHub version Build Status License: MIT

GitHub last commit

ESP32-CAM

Sumary

  1. PlatformIO
  2. Flashing
  3. Hardware
  4. Free Website Hosting
  5. Blynk
  6. Node-RED
  7. Credits

PlatformIO

  • More information can be found on their comprehensive Docs. But Basically:

    1. Download and install official Microsoft Visual Studio Code. PlatformIO IDE is built on top of it
    2. Open VSCode Package Manager
    3. Search for official platformio-ide extension
    4. Install PlatformIO IDE.

PlatformIO installation

Flashing

  • ESP32-CAM does not have a built-in UART/USB converter, therefore you will need one.

    1. TX goes to RX;
    2. RX goes to TX;
    3. Power the board while keeping GIPO0 low;
    4. You can now release it and upload your code;

ESP32-CAM

Hardware

Board Pinout

ESP32-CAM Pinout

LDO

  • This board has an AMS1117 voltage regulator which "sleep" current is around 6mA, this is quite a lot if you plan to have your board running on batteries.
  • TODO! find an alternative with the same package.

Free Website Hosting

  • 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();

FTP information

  • Your FTP details can be found on the 000webhost control panel once logged on click your site then details.

000webhost

Blynk App

  • This is a Bonus, as you may want to add it to your altomation project, you can use 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");

Node-RED

  • 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

Credits

GitHub Shields and Badges created with Shields.io

GitHub ESP32 camera example