{"id":24480573,"url":"https://github.com/epeios-q37/ucuq-python","last_synced_at":"2025-10-06T02:56:51.799Z","repository":{"id":261624315,"uuid":"884844557","full_name":"epeios-q37/ucuq-python","owner":"epeios-q37","description":"A very light Python library with no dependencies for easy prototyping of projects based on Wi-Fi-equipped microcontrollers (RPi Pico (2) W, ESP32, ESP8266...)","archived":false,"fork":false,"pushed_at":"2025-09-09T06:13:28.000Z","size":249,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-24T23:45:42.742Z","etag":null,"topics":["esp32","esp8266","iot","microcontroller","micropython","prototyping","python","raspberry-pi-pico","remote-control","wifi"],"latest_commit_sha":null,"homepage":"","language":"Python","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/epeios-q37.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},"funding":{"github":["epeios-q37"]}},"created_at":"2024-11-07T13:47:05.000Z","updated_at":"2025-09-09T06:13:31.000Z","dependencies_parsed_at":"2024-11-07T15:34:30.585Z","dependency_job_id":"b4ae6e9e-bed8-4d47-9526-4449686bea5e","html_url":"https://github.com/epeios-q37/ucuq-python","commit_stats":null,"previous_names":["epeios-q37/ucuq","epeios-q37/ucuq-python"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/epeios-q37/ucuq-python","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epeios-q37%2Fucuq-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epeios-q37%2Fucuq-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epeios-q37%2Fucuq-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epeios-q37%2Fucuq-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/epeios-q37","download_url":"https://codeload.github.com/epeios-q37/ucuq-python/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epeios-q37%2Fucuq-python/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278551483,"owners_count":26005389,"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-10-06T02:00:05.630Z","response_time":65,"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":["esp32","esp8266","iot","microcontroller","micropython","prototyping","python","raspberry-pi-pico","remote-control","wifi"],"created_at":"2025-01-21T11:16:27.995Z","updated_at":"2025-10-06T02:56:51.793Z","avatar_url":"https://github.com/epeios-q37.png","language":"Python","readme":"# Microcontrollers unleashed\n\nPython library for easy prototyping of assemblies based on microcontrollers such as *ESP32*, *ESP8266*, *Raspberry Pico (2) W*…\n\n\u003e Online demonstrations: \u003chttps://zelbinium.q37.info/en/ucuq/\u003e.\n\n## How to use it\n\n\u003e Above link gives access to an *ESP32* simulation with *UCUq* installed on it and can be very helpful understanding how to do this on your own microcontroller.\n\n### On the microcontroller\n\n1. Install [*Micropython*](https://micropython.org/) on the microcontroller;\n2. put *main.py*, *ucuq.py* and *settings.py* on the microcontroller;\n3. create an *ucuq.json* file with below content and put it on the microcontroller;\n4. restart the microcontroller.\n\nContent of the *ucuq.json* file to put on the microcontroller:\n\n```json\n{\n  \"Identification\": [\"\u003cdevice_token\u003e\",\"\u003cdevice_id\u003e\"],\n  \"WLAN\": {\n    \"\u003cwlan_name\u003e\": [\"\u003cwlan_ssid\u003e\", \"\u003cwlan_key\u003e\"]\n  },\n  \"OnBoardLed\": [\u003cled_pin\u003e, \u003cled_logic\u003e],\n  \"version\": {\n    \"format\": \"2025-09-19\"\n  }\n}\n```\n\n- *\u0026lt;device_token\u003e*: token of the device ; choose one which can not be easily guessed; a token can be shared between several devices;\n- *\u0026lt;device_id\u003e*: id of the device, must be unique among devices with same token;\n- *\u0026lt;wlan_name\u003e*: name of the wlan (whatever value you want);\n- *\u0026lt;wlan_ssid\u003e*: SSID of the wlan;\n- *\u0026lt;wlan_key\u003e*: secret key of the wlan;\n- *\u0026lt;led_pin\u003e*: the pin of the onboard led from the microcontroller (usually an integer, but can be a string, as with the *RPI Pico (2) W*);\n- *\u0026lt;led_logic\u003e*: `true` when the led lights up when the pin level is high, `false` otherwise.\n\nThe `OnBoardLed` entry is optional.\n\nYou can put more then one entry under the `WLAN` entry; the microcontroller will automatically connect to the first available one. For example, one can be your smartphone's access point, the second your home's Wi-Fi.\n\n### On you computer\n\n1. Retrieve this repository;\n2. launch the *Config* app (`python3 Config/` from the *demos* folder);\n3. fill the fields accordingly to the content of the *usuq.json* file described above (`Identification`/`device_token` and `Identification`/`device_id`);\n4. click on *Save* and quit the app.\n\nAs an example, try following code which blinks an LED connected to your microcontroller:\n\n```python\nimport ucuq, time\n\nfor i in range(20):\n  ucuq.GPIO(\u003cled_pin\u003e).high(i \u0026 1)\n  time.sleep(0.5)\n```\n\nReplace *\u003cled_pin\u003e* with the number corresponding of the onboard led pin number or string (or of whichever LED connected to your microcontroller). Launch this program with *python3*.\n\nSee the above online demonstrations link for the *API* and examples of use.\n\n## The daemon\n\nBoth the microcontroller and the local computer connects to a free public server.\n\nYou can use your own server by running the daemon available at \u003chttps://github.com/epeios-q37/ucuq\u003e. In this case, add also following entry to the *ucuq.json* file of the microcontroller:\n\n```json\n{\n  …\n  \"Proxy\": {\n    \"Host\": \"\u003caddress-of-the-server-hosting-the-deamon\u003e\",\n    \"Port\": \"\u003cport-the-deamon-listens-to\u003e\"\n  }\n  …\n}\n```\n\nThe *Port* entry can be omitted if you use the default port.\n\nYou have also to modify the *Proxy* settings in the *Config* app launched on the local computer.\n","funding_links":["https://github.com/sponsors/epeios-q37"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepeios-q37%2Fucuq-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fepeios-q37%2Fucuq-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepeios-q37%2Fucuq-python/lists"}