{"id":16239782,"url":"https://github.com/nopnop2002/esp-idf-web-form","last_synced_at":"2026-03-14T05:09:05.028Z","repository":{"id":108987904,"uuid":"408716879","full_name":"nopnop2002/esp-idf-web-form","owner":"nopnop2002","description":"WEB Form example for ESP-IDF","archived":false,"fork":false,"pushed_at":"2025-07-22T22:40:01.000Z","size":443,"stargazers_count":25,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-23T00:21:24.422Z","etag":null,"topics":["esp-idf","esp32","form","http","http-server","webapp"],"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-09-21T06:52:50.000Z","updated_at":"2025-07-22T22:40:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"2e7a7358-2c23-4fde-b86d-470ca4c4b508","html_url":"https://github.com/nopnop2002/esp-idf-web-form","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nopnop2002/esp-idf-web-form","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nopnop2002%2Fesp-idf-web-form","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nopnop2002%2Fesp-idf-web-form/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nopnop2002%2Fesp-idf-web-form/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nopnop2002%2Fesp-idf-web-form/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nopnop2002","download_url":"https://codeload.github.com/nopnop2002/esp-idf-web-form/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nopnop2002%2Fesp-idf-web-form/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273213832,"owners_count":25065058,"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-01T02:00:09.058Z","response_time":120,"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":["esp-idf","esp32","form","http","http-server","webapp"],"created_at":"2024-10-10T13:45:09.927Z","updated_at":"2026-03-14T05:09:03.961Z","avatar_url":"https://github.com/nopnop2002.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# esp-idf-web-form\nWEB Form example for ESP-IDF.   \nESP-IDF contains a lot of example code, but there is no example to create FORM on the WEB and input data from FORM.   \nThis project reads value from FORM on the WEB and save in the NVS area.   \nNo library other than ESP-IDF is required to read the data from the WEB page.   \n\nI referred [here](https://github.com/espressif/esp-idf/tree/master/examples/protocols/http_server/file_serving).   \n\n![Image](https://github.com/user-attachments/assets/247123ec-1d06-40b0-b17f-1d978951fea6)\n\n# Software requirements\nESP-IDF V5.0 or later.   \nESP-IDF V4.4 release branch reached EOL in July 2024.   \nESP-IDF V5.1 is required when using ESP32-C6.   \n\n# Installation\n```\ngit clone https://github.com/nopnop2002/esp-idf-web-form\ncd esp-idf-web-form\nidf.py menuconfig\nidf.py flash monitor\n```\n\n\n# Configuration\nSet the following items using menuconfig.\n\n![config-main](https://user-images.githubusercontent.com/6020549/134126480-a1455518-e6c8-4897-a1e2-aec5dda50168.jpg)\n![config-app](https://user-images.githubusercontent.com/6020549/134126500-cc609a2c-cc74-4eca-a5ad-359abe8cbe26.jpg)\n\n## Wifi Setting\n\n![config-wifi-1](https://user-images.githubusercontent.com/6020549/134127430-e55a9a9f-e3db-4766-a806-687ba58bad9a.jpg)\n\nYou can use the mDNS hostname instead of the IP address.   \n![config-wifi-2](https://user-images.githubusercontent.com/6020549/134127158-892fac80-d123-4fd8-af16-f0b234a0efba.jpg)\n\nYou can use static IP.   \n![config-wifi-3](https://user-images.githubusercontent.com/6020549/134127193-8bffe977-b4b8-4178-9810-06c99414055f.jpg)\n\n## HTTP Server Setting\n![config-http](https://user-images.githubusercontent.com/6020549/134127228-dbcdca4c-ea3a-45c8-82d2-5dbced108fe3.jpg)\n\n\n# How to use\nOpen your brouser, and put address in address bar.   \nInput text/checkbox/radio/select and submit.   \nThe read data is saved in the NVS area.   \nYou can clear the NVS area with this command:   \n```\nidf.py erase_flash\n```\n![Image](https://github.com/user-attachments/assets/54e9928a-3501-4b78-a892-18b0e9ff293c)\n![Image](https://github.com/user-attachments/assets/247123ec-1d06-40b0-b17f-1d978951fea6)\n\nYou can use the mDNS hostname instead of the IP address.   \nDefault mDNS name is esp32-server.local.   \n![Image](https://github.com/user-attachments/assets/0d3ae388-73bb-41d6-ae46-2a52b6237017)\n\n# HTML Header\nHTML header is stored in html/head.html.   \nYou can use your favorite CSS.   \n\n# How to browse image data using built-in http server   \nEven if there are image files in SPIFFS, the esp-idf http server does not support this:   \n```\nhttpd_resp_sendstr_chunk(req, \"\u003cimg src=\\\"/spiffs/picture.png\\\"\u003e\");\n```\n\nYou need to convert the image file to base64 string.   \n```\nhttpd_resp_sendstr_chunk(req, \"\u003cimg src=\\\"data:image/png;base64,\");\nhttpd_resp_sendstr_chunk(req, (char *)BASE64_ENCODE_STRING);\nhttpd_resp_sendstr_chunk(req, \"\\\"\u003e\");\n```\n\nImages in png format are stored in the image folder.   \nImages in base64 format are stored in the html folder.   \nI converted using the base64 command.   \n```\n$ base64 image/ESP-IDF.png \u003e html/ESP-IDF.txt\n```\n\n# Reference\nhttps://github.com/nopnop2002/esp-idf-pwm-slider\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnopnop2002%2Fesp-idf-web-form","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnopnop2002%2Fesp-idf-web-form","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnopnop2002%2Fesp-idf-web-form/lists"}