{"id":51784720,"url":"https://github.com/hjosugi/learning-embedded-iot","last_synced_at":"2026-07-20T16:31:32.746Z","repository":{"id":366151118,"uuid":"1275229827","full_name":"hjosugi/learning-embedded-iot","owner":"hjosugi","description":"Microcontroller and embedded IoT learning repo for MicroPython, Pico, ESP32, Zephyr, sensors, and MQTT","archived":false,"fork":false,"pushed_at":"2026-07-05T12:43:30.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-05T14:14:28.580Z","etag":null,"topics":["embedded","esp32","iot","learning","micropython","mqtt","raspberry-pi-pico","zephyr"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"0bsd","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hjosugi.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":"2026-06-20T12:22:44.000Z","updated_at":"2026-07-05T12:43:34.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/hjosugi/learning-embedded-iot","commit_stats":null,"previous_names":["hjosugi/learning-embedded-iot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hjosugi/learning-embedded-iot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjosugi%2Flearning-embedded-iot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjosugi%2Flearning-embedded-iot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjosugi%2Flearning-embedded-iot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjosugi%2Flearning-embedded-iot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hjosugi","download_url":"https://codeload.github.com/hjosugi/learning-embedded-iot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjosugi%2Flearning-embedded-iot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35693381,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"ssl_error","status_checked_at":"2026-07-20T02:08:09.736Z","response_time":111,"last_error":"SSL_read: 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":["embedded","esp32","iot","learning","micropython","mqtt","raspberry-pi-pico","zephyr"],"created_at":"2026-07-20T16:31:29.704Z","updated_at":"2026-07-20T16:31:32.732Z","avatar_url":"https://github.com/hjosugi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Learning Embedded IoT\n\nMicrocontroller, embedded systems, sensors, firmware, and IoT communication experiments.\n\nLast verified: 2026-06-21\n\n## Development Environment\n\nIf MicroPython is missing locally, enter the Nix shell:\n\n```bash\nnix develop\n```\n\n## Runnable Starter Project\n\nStart without hardware by running deterministic sensor telemetry:\n\n```bash\npython3 projects/sensor-simulator/sensor_simulator.py --samples 5\npython3 projects/sensor-simulator/test_sensor_simulator.py\n```\n\n## Target Hands-On Projects\n\nElectronics basics before wiring hardware:\n\n```bash\npython3 projects/electronics-basics-lab/circuit_calc.py\npython3 projects/electronics-basics-lab/test_circuit_calc.py\n```\n\nMicroPython RP2 blink (runs on the host via a `machine` shim; same `main.py`\nlater flashes to a Pico):\n\n```bash\npython3 projects/micropython-rp2-blink/main.py\npython3 -m unittest discover -s projects/micropython-rp2-blink -p 'test_*.py'\n```\n\nThen copy `projects/micropython-rp2-blink/main.py` to a Pico/Pico 2 as `main.py`\n(do not copy `machine.py`). See that project's README for the full flash flow.\n\n## Why This Repo Exists\n\nThis repo is for the hardware-adjacent layer:\n\n- microcontroller basics\n- electronics basics: voltage, current, resistors, LEDs, buttons, ADC, level shifting\n- firmware build and flash flows\n- GPIO, I2C, SPI, UART, PWM, ADC\n- sensors and small displays\n- low-power design\n- embedded networking\n- MQTT and IoT data ingestion\n- safety notes for wiring and power\n\n## What This Repo Teaches\n\nThis repo connects software habits to physical constraints.\n\nEach example should make these constraints explicit:\n\n- board and firmware toolchain\n- flash/debug workflow\n- pin wiring and voltage assumptions\n- sensor protocol\n- power and sleep behavior\n- how secrets are configured on a device\n- how to simulate or read the lesson without hardware\n\n## Learning Path\n\n1. Microcontroller mental model\n2. Electronics foundations: Ohm's law, LEDs, buttons, voltage dividers, ADC\n3. MicroPython on RP2/ESP32\n4. Raspberry Pi Pico / Pico 2 basics\n5. ESP-IDF basics for ESP32\n6. Arduino-style quick experiments\n7. Zephyr RTOS basics\n8. Sensors and buses: I2C, SPI, UART\n9. MQTT to local data stores\n10. Power, sleep, watchdogs, and firmware update notes\n\n## Planned Structure\n\n```text\nexamples/\n  micropython-rp2-blink/\n  micropython-esp32-sensor/\n  pico-c-sdk-blink/\n  esp-idf-wifi-mqtt/\n  zephyr-blinky/\n  sensor-i2c-playground/\n  mqtt-to-duckdb/\ndocs/\n  2026-learning-items.md\n  board-selection.md\n  electronics-foundations.md\n  hardware-safety.md\n  repository-profile.md\n```\n\n## Hardware Strategy\n\nStart with boards that are common, cheap, and well documented:\n\n- Raspberry Pi Pico / Pico 2\n- ESP32 development boards\n- Arduino-compatible boards where examples are useful\n\nKeep a simulator/no-hardware path when possible:\n\n- MicroPython UNIX port for language basics\n- Zephyr native simulation for RTOS basics\n- generated sensor data for database and MQTT lessons\n\n## Study Loop\n\n1. read the safety note before wiring anything\n2. calculate the circuit before connecting power\n3. run the simulator or generated-data path when available\n4. flash the smallest blink example before adding network code\n5. add one sensor and log raw readings\n6. send readings to a local broker or data-store example\n7. document board, firmware version, wiring, and failure notes\n\n## What Belongs Elsewhere\n\n- storage comparison belongs in `learning-data-stores`\n- MQTT broker operations belong in `learning-platform-engineering`\n- protocol design beyond IoT usage belongs in `learning-platform-engineering`\n- language-only MicroPython setup notes can be mirrored in `learning-build-systems`\n\n## First Milestones\n\n1. Add MicroPython blink for RP2/Pico.\n2. Add ESP32 sensor reading with a generated-data fallback.\n3. Add ESP-IDF Wi-Fi/MQTT example with no committed secrets.\n4. Add Zephyr blinky and board-selection notes.\n5. Add MQTT-to-DuckDB or MQTT-to-InfluxDB handoff notes.\n\n## References\n\n- Zephyr documentation: https://docs.zephyrproject.org/latest/\n- ESP-IDF Programming Guide: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/\n- MicroPython documentation: https://docs.micropython.org/en/latest/\n- Raspberry Pi microcontroller documentation: https://www.raspberrypi.com/documentation/microcontrollers/\n\n## License\n\n0BSD. You can use, copy, modify, and distribute this project for almost any purpose.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhjosugi%2Flearning-embedded-iot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhjosugi%2Flearning-embedded-iot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhjosugi%2Flearning-embedded-iot/lists"}