{"id":16239700,"url":"https://github.com/nopnop2002/esp-idf-smtp-camera","last_synced_at":"2025-03-19T16:31:33.654Z","repository":{"id":52947006,"uuid":"317443816","full_name":"nopnop2002/esp-idf-smtp-camera","owner":"nopnop2002","description":"Take a picture and Publish it via SMTP.","archived":false,"fork":false,"pushed_at":"2025-02-27T23:12:52.000Z","size":175,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-28T07:31:19.858Z","etag":null,"topics":["esp-idf","esp32","esp32-cam","gmail","mail","smtp"],"latest_commit_sha":null,"homepage":"","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/nopnop2002.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":"2020-12-01T06:17:02.000Z","updated_at":"2025-02-27T23:12:56.000Z","dependencies_parsed_at":"2024-02-11T02:29:53.179Z","dependency_job_id":"9924be7f-7933-4320-b87e-2ade8f9ffe5d","html_url":"https://github.com/nopnop2002/esp-idf-smtp-camera","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nopnop2002%2Fesp-idf-smtp-camera","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nopnop2002%2Fesp-idf-smtp-camera/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nopnop2002%2Fesp-idf-smtp-camera/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nopnop2002%2Fesp-idf-smtp-camera/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nopnop2002","download_url":"https://codeload.github.com/nopnop2002/esp-idf-smtp-camera/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244006260,"owners_count":20382441,"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","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":["esp-idf","esp32","esp32-cam","gmail","mail","smtp"],"created_at":"2024-10-10T13:44:44.473Z","updated_at":"2025-03-19T16:31:33.640Z","avatar_url":"https://github.com/nopnop2002.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# esp-idf-smtp-camera\nTake a picture and Publish it via SMTP.   \nThis project use [this](https://components.espressif.com/components/espressif/esp32-camera) Camera Driver.   \n\n![slide0001](https://user-images.githubusercontent.com/6020549/122657146-caf32300-d19b-11eb-95c0-d053b77599c7.jpg)\n![slide0002](https://user-images.githubusercontent.com/6020549/122657145-c9c1f600-d19b-11eb-9049-17dc2d71acdc.jpg)\n\n# Hardware requirements\nESP32 development board with OV2640 camera.   \nIf you use other camera, edit sdkconfig.default.   \nFrom the left:   \n- Aithinker ESP32-CAM   \n- Freenove ESP32-WROVER CAM   \n- UICPAL ESPS3 CAM   \n- Freenove ESP32S3-WROVER CAM (Clone)   \n\n![es32-camera](https://github.com/nopnop2002/esp-idf-websocket-camera/assets/6020549/38dbef9a-ed85-4df2-8d22-499b2b497278)\n\n# Software requirements\nESP-IDF V5.0 or later.   \nESP-IDF V4.4 release branch reached EOL in July 2024.   \n\n# Installation\nFor AiThinker ESP32-CAM, you need to use a USB-TTL converter and connect GPIO0 to GND.   \n\n|ESP-32|USB-TTL|\n|:-:|:-:|\n|U0TXD|RXD|\n|U0RXD|TXD|\n|GPIO0|GND|\n|5V|5V|\n|GND|GND|\n\n\n```\ngit clone https://github.com/nopnop2002/esp-idf-smtp-camera\ncd esp-idf-smtp-camera\nchmod 777 getpem.sh\n./getpem.sh\nidf.py set-target {esp32/esp32s3}\nidf.py menuconfig\nidf.py flash monitor\n```\n\n# Start firmware\nFor AiThinker ESP32-CAM, Change GPIO0 to open and press the RESET button.\n\n# Configuration\nSet the following items using menuconfig.\n\n![config-main](https://user-images.githubusercontent.com/6020549/121621472-30ae2380-caa7-11eb-8428-1dd5273bd668.jpg)\n![config-app](https://user-images.githubusercontent.com/6020549/200573965-a92fad77-7bb7-4519-b123-dd7fad9c7312.jpg)\n\n## Wifi Setting\n\n![config-wifi-1](https://user-images.githubusercontent.com/6020549/121621478-31df5080-caa7-11eb-9ec4-90fc8375cbdb.jpg)\n\nYou can connect using the mDNS hostname instead of the IP address.   \n![config-wifi-2](https://user-images.githubusercontent.com/6020549/121621479-3277e700-caa7-11eb-9afe-27f1a5091c4d.jpg)\n\nYou can use static IP.   \n![config-wifi-3](https://user-images.githubusercontent.com/6020549/121621480-3277e700-caa7-11eb-9280-bd66214bf6a7.jpg)\n\n\n## SMTP Server Setting\n\n![config-smtp](https://user-images.githubusercontent.com/6020549/98746220-64817780-23f8-11eb-99c1-f5a4dde2e1e8.jpg)\n\n__I've only tested with a Gmail account.__   \nIf you want to use a non-gmail account, you need to change gmail_root_cert.pem according to [this](https://github.com/espressif/esp-idf/issues/7250) instruction.   \n\n__Note about Gmail:__   \nTo help keep your account secure, from May 30, 2022, Google no longer supports the use of third-party apps or devices which ask you to sign in to your Google Account using only your username and password.   \nDue to this change, you can no longer log in to Google from ESP-IDF using only your username and password.   \n__You will need to generate a special app password as described [here](https://support.google.com/mail/answer/185833).__   \nAn app password is a 16-character code generated by your device.   \nUse this code as your password.   \n\n## Attached File Name Setting\n\nYou can select the file name to write to the shared folder from the following.   \n- Always the same file name   \n\t![config-filename-1](https://user-images.githubusercontent.com/6020549/200576375-b0b56def-3a56-4635-90d1-f13dacbec858.jpg)\n\n- File name based on date and time   \n\tWhen you choose date and time file name, you will need an NTP server.   \n\tThe file name will be YYYYMMDD-hhmmss.jpg.   \n\t![config-filename-2](https://user-images.githubusercontent.com/6020549/200576396-b82ce9b0-e21f-4b52-9339-ce97044d52a5.jpg)\n\n- Add FrameSize to Remote file Name   \n\tWhen this is enabled, FrameSize is added to remote file name like this.   \n\t`20210520-165740_800x600.jpg`   \n\t![config-filename-3](https://user-images.githubusercontent.com/6020549/200576466-02a70de9-d3ed-4609-93c6-e0dbcac3c29b.jpg)\n\n\n## Select Board\n![config-board](https://github.com/nopnop2002/esp-idf-smtp-camera/assets/6020549/3b16559b-e8a0-43c7-914f-679cccee3339)\n\n\n## Select Frame Size\nLarge frame sizes take longer to take a picture.   \n\n![config-framesize-1](https://user-images.githubusercontent.com/6020549/122479721-7ff3d700-d006-11eb-9910-8fd132f7479b.jpg)\n![config-framesize-2](https://user-images.githubusercontent.com/6020549/122479725-81bd9a80-d006-11eb-847b-0748bfba75df.jpg)\n\n## Select Shutter\n\nYou can choose one of the following shutter methods\n\n- Shutter is the Enter key on the keyboard   \n\tFor operation check\n\t![config-shutter-1](https://user-images.githubusercontent.com/6020549/100706728-d132d500-33ec-11eb-96e2-22d30b2131f5.jpg)\n\n- Shutter is a GPIO toggle\n\n\t- Initial Sate is PULLDOWN   \n\t\tThe shutter is prepared when it is turned from OFF to ON, and a picture is taken when it is turned from ON to OFF.   \n\n\t- Initial Sate is PULLUP   \n\t\tThe shutter is prepared when it is turned from ON to OFF, and a picture is taken when it is turned from OFF to ON.   \n\n\tI confirmed that the following GPIO can be used.   \n\n\t|GPIO|PullDown|PullUp|\n\t|:-:|:-:|:-:|\n\t|GPIO12|OK|NG|\n\t|GPIO13|OK|OK|\n\t|GPIO14|OK|OK|\n\t|GPIO15|OK|OK|\n\t|GPIO16|NG|NG|\n\n\t![config-shutter-2](https://user-images.githubusercontent.com/6020549/100706729-d2640200-33ec-11eb-8ac5-68abad4d1a0b.jpg)\n\n- Shutter is TCP Socket   \n\tESP32 acts as a TCP server and listens for requests from TCP clients.   \n\tYou can use tcp_send.py as shutter.   \n\t`python3 ./tcp_send.py`\n\t![Image](https://github.com/user-attachments/assets/4c301018-2f8c-4644-be3f-417222fb1842)\n\n- Shutter is UDP Socket   \n\tESP32 acts as a UDP listener and listens for requests from UDP clients.   \n\tYou can use this command as shutter.   \n\t`echo -n \"take\" | socat - UDP-DATAGRAM:255.255.255.255:49876,broadcast`   \n\tYou can use udp_send.py as shutter.   \n\tRequires netifaces.   \n\t`python3 ./udp_send.py`   \n\t![Image](https://github.com/user-attachments/assets/3dcd72be-d0ef-4bd9-9273-f420ca88f11b)   \n\tYou can use these devices as shutters.   \n\t![Image](https://github.com/user-attachments/assets/cc97da4e-6c06-4604-8362-f81c6fb6eb58)   \n\tClick [here](https://github.com/nopnop2002/esp-idf-selfie-trigger) for details.   \n\n- Shutter is a MQTT Publish   \n\tESP32 acts as an MQTT subscriber and listens to requests from MQTT publishes.   \n\tYou can use mosquitto_pub as shutter.   \n\t`mosquitto_pub -h broker.emqx.io -t \"/take/picture\" -m \"hello world\"`   \n\n\tMQTT broker is specified by one of the following.\n\t- IP address   \n\t```192.168.10.20```   \n\t- mDNS host name   \n\t```mqtt-broker.local```   \n\t- Fully Qualified Domain Name   \n\t```broker.emqx.io```\n\n\t![config-shutter-51](https://github.com/nopnop2002/esp-idf-mqtt-camera/assets/6020549/7173762e-dfd4-4f19-a7ce-63a85c69edb4)\n\n\tSpecifies the username and password if the server requires a password when connecting.   \n\t![config-shutter-52](https://github.com/nopnop2002/esp-idf-mqtt-camera/assets/6020549/c3cca004-1c19-4d5b-8623-06327ff17ee7)\n\n\n## Flash Light   \nESP32-CAM by AI-Thinker have flash light on GPIO4.   \n\n![config-flash](https://user-images.githubusercontent.com/6020549/122479750-8f732000-d006-11eb-9e50-16c91cff1bb3.jpg)\n\n## PSRAM   \nWhen using ESP32S3, you need to set the PSRAM type according to the hardware.   \nESP32S3-WROVER CAM has Octal Mode PSRAM.   \nUICPAL ESPS3 CAM  has Quad Mode PSRAM.   \n![config-psram](https://github.com/nopnop2002/esp-idf-websocket-camera/assets/6020549/ba04f088-c628-46ac-bc5b-2968032753e0)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnopnop2002%2Fesp-idf-smtp-camera","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnopnop2002%2Fesp-idf-smtp-camera","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnopnop2002%2Fesp-idf-smtp-camera/lists"}