{"id":19144958,"url":"https://github.com/ldab/esp32-cam-picture-sharing","last_synced_at":"2026-04-01T16:57:38.788Z","repository":{"id":109150281,"uuid":"196342992","full_name":"ldab/ESP32-CAM-Picture-Sharing","owner":"ldab","description":"ESP32-CAM remote image access via FTP. Take pictures with ESP32 and upload it via FTP making it accessible for the outisde network.","archived":false,"fork":false,"pushed_at":"2019-07-19T11:50:33.000Z","size":1501,"stargazers_count":57,"open_issues_count":0,"forks_count":14,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-03-27T13:47:55.973Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ldab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-11T07:30:45.000Z","updated_at":"2025-04-17T13:01:29.000Z","dependencies_parsed_at":"2023-04-09T14:48:22.394Z","dependency_job_id":null,"html_url":"https://github.com/ldab/ESP32-CAM-Picture-Sharing","commit_stats":null,"previous_names":[],"tags_count":2,"template":true,"template_full_name":null,"purl":"pkg:github/ldab/ESP32-CAM-Picture-Sharing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldab%2FESP32-CAM-Picture-Sharing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldab%2FESP32-CAM-Picture-Sharing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldab%2FESP32-CAM-Picture-Sharing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldab%2FESP32-CAM-Picture-Sharing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ldab","download_url":"https://codeload.github.com/ldab/ESP32-CAM-Picture-Sharing/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldab%2FESP32-CAM-Picture-Sharing/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31047095,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T09:35:52.079Z","status":"ssl_error","status_checked_at":"2026-03-27T09:35:20.916Z","response_time":164,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T07:37:09.925Z","updated_at":"2026-04-01T16:57:38.312Z","avatar_url":"https://github.com/ldab.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESP32-CAM-Picture-Sharing\nESP32-CAM remote image access via FTP. Take pictures with ESP32 and upload it via FTP making it accessible for the outisde network.\n\n[![GitHub version](https://img.shields.io/github/release/ldab/ESP32-CAM-Picture-Sharing.svg)](https://github.com/ldab/ESP32-CAM-Picture-Sharing/releases/latest)\n[![Build Status](https://travis-ci.org/ldab/ESP32-CAM-Picture-Sharing.svg?branch=master)](https://travis-ci.org/ldab/ESP32-CAM-Picture-Sharing)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/ldab/ESP32-CAM-Picture-Sharing/blob/master/LICENSE)\n\n[![GitHub last commit](https://img.shields.io/github/last-commit/ldab/ESP32-CAM-Picture-Sharing.svg?style=social)](https://github.com/ldab/ESP32-CAM-Picture-Sharing)\n\n[![ESP32-CAM](./pics/esp32cam.jpg)](https://www.aliexpress.com/item/32963016501.html?spm=a2g0s.9042311.0.0.4acb4c4dqzOcdx)\n\n## Sumary\n\n1. [PlatformIO](/README.md#PlatformIO)\n2. [Flashing](/README.md#Flashing)\n3. [Hardware](/README.md#Hardware)\n4. [Free Website Hosting](/README.md#Free-Website-Hosting)\n5. [Blynk](/README.md#Blynk)\n6. [Node-RED](/README.md#Node-RED)\n7. [Credits](/README.md#Credits)\n\n## PlatformIO\n\n* More information can be found on their comprehensive [Docs](https://docs.platformio.org/en/latest/ide/vscode.html). But Basically:\n\n  0. Download and install official Microsoft Visual Studio Code. PlatformIO IDE is built on top of it\n  1. **Open** VSCode Package Manager\n  2. **Search** for official `platformio-ide` [extension](https://marketplace.visualstudio.com/items?itemName=platformio.platformio-ide)\n  3. **Install** PlatformIO IDE.\n\n![PlatformIO installation](https://docs.platformio.org/en/latest/_images/platformio-ide-vscode-pkg-installer.png)\n\n## Flashing\n\n* ESP32-CAM does not have a built-in UART/USB converter, therefore you will need one.\n\n  1. TX goes to RX;\n  2. RX goes to TX;\n  3. Power the board while keeping `GIPO0` low;\n  4. You can now release it and upload your code;\n\n[![ESP32-CAM](https://i2.wp.com/randomnerdtutorials.com/wp-content/uploads/2019/03/ESP32-CAM-wiring-FTDI1.png?w=750\u0026ssl=1)](https://randomnerdtutorials.com/esp32-cam-troubleshooting-guide/)\n * image from [https://randomnerdtutorials.com/esp32-cam-troubleshooting-guide/](https://randomnerdtutorials.com/esp32-cam-troubleshooting-guide/)\n\n## Hardware\n\n### Board Pinout\n\n![ESP32-CAM Pinout](./pics/esp32cam_pinout.png)\n\n### LDO\n\n* This board has an [AMS1117](./extras/ds1117.pdf) voltage regulator which \"sleep\" current is around `6mA`, this is quite a lot if you plan to have your board running on batteries.\n* **TODO!** find an alternative with the same package.\n\n## Free Website Hosting\n\n* 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.\n\n* 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`\n\n* This way you don't need to overload the ESP32, your network remains secure, not open to the world, no port forwarding.\n\n* For this example I uploaded the GitHub Octocat to my [000Webhost](https://www.000webhost.com/) hosted webiste, the file is avalable under: `https://my_user.000webhostapp.com/gallery_gen/XxXxXxXx.jpg`\n\n```\n  ftp.OpenConnection();\n\n  // Create the new file and send the image\n  ftp.InitFile(\"Type I\");\n  ftp.ChangeWorkDir(\"/public_html/zyro/gallery_gen/\");\n  ftp.NewFile(\"octocat.jpg\");\n  ftp.WriteData( octocat_pic, sizeof(octocat_pic) );\n  ftp.CloseFile();\n\n  ftp.CloseConnection();\n```\n\n### FTP information\n\n* Your FTP details can be found on the 000webhost control panel once logged on click your site then details.\n\n![000webhost](https://www.000webhost.com/forum/uploads/default/original/2X/0/026a3c78b11ca4864452140237eab946a3f2c267.png)\n\n## Blynk App\n\n* 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.\n\n```\n// Take a picture and add a time tag to it;\ntake_picture( \"my_picture_201906170521\" );\nupload_FTPpicture();\n\n// And by changing it on Blynk from the hardware will reflect on the App\nBlynk.setProperty(VX, \"url\", 1, \"https://mywebsite/something/my_picture_201906170521.jpg\");\n```\n\n\u003cimg src=\"./pics/screenshot_blynk.jpg\" width=\"30%\"\u003e \u003cimg src=\"./pics/QR.jpg\" width=\"30%\"\u003e \n\n## Node-RED\n\n* Another alternative is to send the image via MQTT(???) using cloud brokers as [CloudMQTT](https://www.cloudmqtt.com/) and have the Node-RED subscribed to that topic and saving it to the database and serving the file locally.\n\n* This is a topic for another project, but can be seen briefly [here](https://github.com/ldab/Node-RED-Energy-Harvesting-dashboard)\n\n## Credits\n\nGitHub Shields and Badges created with [Shields.io](https://github.com/badges/shields/)\n\nGitHub ESP32 camera [example](https://github.com/espressif/arduino-esp32/tree/master/libraries/ESP32/examples/Camera/CameraWebServer)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fldab%2Fesp32-cam-picture-sharing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fldab%2Fesp32-cam-picture-sharing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fldab%2Fesp32-cam-picture-sharing/lists"}