{"id":15319491,"url":"https://github.com/potat-dev/silly-cam","last_synced_at":"2025-09-19T20:47:13.543Z","repository":{"id":252702126,"uuid":"817135414","full_name":"potat-dev/silly-cam","owner":"potat-dev","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-11T21:52:42.000Z","size":12,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-17T06:44:46.519Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/potat-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-06-19T05:17:03.000Z","updated_at":"2024-08-11T21:52:46.000Z","dependencies_parsed_at":"2024-08-11T22:57:16.461Z","dependency_job_id":null,"html_url":"https://github.com/potat-dev/silly-cam","commit_stats":null,"previous_names":["potat-dev/silly-cam"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/potat-dev/silly-cam","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/potat-dev%2Fsilly-cam","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/potat-dev%2Fsilly-cam/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/potat-dev%2Fsilly-cam/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/potat-dev%2Fsilly-cam/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/potat-dev","download_url":"https://codeload.github.com/potat-dev/silly-cam/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/potat-dev%2Fsilly-cam/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275998868,"owners_count":25567391,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-19T02:00:09.700Z","response_time":108,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-10-01T09:04:56.987Z","updated_at":"2025-09-19T20:47:13.524Z","avatar_url":"https://github.com/potat-dev.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# *silly* camera \n\n— ESP32-CAM *No Preview* Camera Project\n\nThis project demonstrates how to use an ESP32-CAM module to create a Wi-Fi-enabled camera that can be controlled remotely via a Telegram bot or a physical button. The project allows you to take photos with the ESP32-CAM and send them directly to a Telegram chat. The LED strip attached to the ESP32-CAM also plays visual effects, enhancing user interaction.\n\n## Introduction\n\nThe main goal of this project is to create a super simple camera that intentionally lacks a preview screen. By omitting the preview, users are encouraged to focus on the moment rather than perfecting a selfie or framing the shot. This minimalist approach is ideal for capturing spontaneous and genuine moments.\n\nThe *silly* camera project allows you to remotely capture images using the ESP32-CAM module and interact with it through a Telegram bot or a physical button. The project utilizes the [FastLED](https://github.com/FastLED/FastLED) library for LED effects and integrates it with the ESP32-CAM’s camera module to create a visually appealing and functional IoT device.\n\n## Features\n\n- **Remote Photo Capture**: Capture photos with the ESP32-CAM via Telegram commands.\n- **Manual Photo Capture**: Take photos by pressing a physical button connected to the ESP32-CAM, providing an alternative way to interact with the camera.\n- **LED Visual Effects**: The project includes LED visual effects using the [FastLED](https://github.com/FastLED/FastLED) library, providing feedback during photo capture.\n- **Wi-Fi Connectivity**: The ESP32-CAM connects to your local Wi-Fi network, allowing for remote operations.\n- **Telegram Bot Integration**: Interact with the ESP32-CAM through a Telegram bot interface.\n\n## Hardware Requirements\n\n- **ESP32-CAM Module**: A microcontroller with a built-in camera.\n- **LED Strip**: [WS2811](https://www.aliexpress.com/w/wholesale-ws2811-led-strip.html) or compatible, with at least 8 LEDs.\n- **Button**: For manual photo capture.\n- **Power Supply**: 5V power supply for the ESP32-CAM and LED strip.\n\n## Software Requirements\n\n- **[PlatformIO](https://platformio.org/)**: A development environment for IoT projects.\n- **[Arduino Framework](https://www.arduino.cc/en/Guide/ArduinoIDE)**: The ESP32-CAM is programmed using the Arduino framework.\n- **Telegram Bot API**: Used to communicate with the ESP32-CAM through Telegram.\n\n## Installation\n\n### Step 1: Clone the Repository\n\n```sh\ngit clone https://github.com/potat-dev/silly-cam\n```\n\n### Step 2: Set Up PlatformIO\n\nEnsure you have [PlatformIO](https://platformio.org/install/ide?install=vscode) installed in your IDE (e.g., VSCode). Open the project folder in your IDE.\n\n### Step 3: Configure Wi-Fi and Telegram Bot\n\nEdit the `config.hpp` file to set your Wi-Fi credentials and Telegram bot token.\n\n```cpp\n#define WIFI_SSID \"YOUR_WIFI_SSID\"\n#define WIFI_PASS \"YOUR_WIFI_PASS\"\n\n#define BOT_TOKEN \"YOUR_BOT_TOKEN\"\n#define CLIENT_ID \"YOUR_CLIENT_ID\"\n```\n\n### Step 4: Build and Upload\n\nConnect your ESP32-CAM module to your computer, and upload the code using PlatformIO:\n\n```sh\nplatformio run --target upload\n```\n\n## Usage\n\n### Connecting to Wi-Fi\n\nWhen powered on, the ESP32-CAM will attempt to connect to the configured Wi-Fi network. If the connection is successful, it will notify you via the serial monitor.\n\n### Using the Telegram Bot\n\nAfter setting up the bot, you can send the command `take a photo` to capture an image with the ESP32-CAM. The image will be sent back to the Telegram chat as a JPEG file.\n\n### Manual Photo Capture\n\nYou can also manually capture a photo by pressing the button connected to the ESP32-CAM. This provides an easy and straightforward way to take pictures without needing to use the Telegram interface.\n\n## Configuration\n\n- **LED Effects**: Customize the LED effects in `indicator.cpp` to suit your needs.\n- **Camera Settings**: Adjust the camera configuration in `camera.cpp` if you need different image quality or camera behavior.\n\n### Example Configuration\n\nThe following example shows how to configure the Wi-Fi and Telegram bot credentials:\n\n```cpp\n#define WIFI_SSID \"HomeNetwork\"\n#define WIFI_PASS \"SecurePassword123\"\n\n#define BOT_TOKEN \"123456789:ABCDEFGHIJKLMNOP\"\n#define CLIENT_ID \"987654321\"\n```\n\n## Code Structure\n\n- **`platformio.ini`**: Configuration file for PlatformIO.\n- **`camera.hpp` / `camera.cpp`**: Handles camera initialization and configuration.\n- **`config.hpp`**: Stores configuration parameters such as Wi-Fi credentials and bot tokens.\n- **`indicator.hpp` / `indicator.cpp`**: Manages LED effects using the [FastLED](https://github.com/FastLED/FastLED) library.\n- **`main.cpp`**: The main entry point of the project, handling setup and loop functions.\n\n## Acknowledgements\n\n- **[GyverLibs](https://github.com/GyverLibs)**: Libraries for [FastBot](https://github.com/GyverLibs/FastBot) and [EncButton](https://github.com/GyverLibs/EncButton) used for Telegram bot integration and button handling.\n- **[FastLED](https://github.com/FastLED/FastLED)**: Library used for controlling the LED strip.\n- **[PlatformIO](https://platformio.org/)**: A powerful development environment that simplifies the development and deployment of embedded systems.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpotat-dev%2Fsilly-cam","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpotat-dev%2Fsilly-cam","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpotat-dev%2Fsilly-cam/lists"}