Repository navigation
Media: finalize Internet of Things lesson (esp32/iot.md) #128
Description
Media shot-list for esp32/iot.md (Internet of Things). Part of the draft-lesson finalization tracked in #122. Live on main with the "in draft form" banner. Prose is complete; it needs diagrams + workbench/dashboard capture.
Note: on the
esp32-bluetoothbranch this page is re-parented under the new Wireless sub-module (L1). Media work here applies regardless of where it lands in nav.
Already present
- Hero exists ✅ — YouTube demo (
DgCFUHGSKSM): ESP32 streaming photoresistor data to an Adafruit IO dashboard. - IDE library-install screenshots; Huzzah32 Fritzing circuit (in a collapsible).
- Generic placeholders in materials table.
Shot list — desk work (drawable in software)
- Fritzing wiring diagram: ESP32-S3 Feather + photoresistor divider (A5/ADC1) + LED on GPIO13 w/ 220Ω; call out the ADC1-vs-ADC2 constraint. (iot.md:194 TODO)
- Screenshot sequence: Adafruit IO dashboard walkthrough (login → feed → dashboard → line chart → gauge).
- Screenshot: completed dashboard (line chart + gauge side by side). (iot.md:422 TODO)
- (Optional) Screenshot: toggle block config for the bidirectional
led-controlfeed.
Shot list — bench/capture (real circuit + screen recording)
- Workbench video (~15–20s): cover/uncover photoresistor, LED responds.
- Split-screen video (~30–40s): bench (shading sensor) + live Adafruit IO dashboard updating.
- Bidirectional video (~15–20s): toggle on dashboard → onboard LED on/off (note the network latency). (iot.md:491 TODO)
Suggested hero
Keep the existing YouTube demo as hero — it already shows the end-to-end system. Optional caption polish:
In this lesson, we'll build a full IoT system: the ESP32 reads ambient light, streams it to the cloud over WiFi, and displays it live on an Adafruit IO dashboard.
Placement (hero-first standard)
Put the hero block immediately after the TOC --- — before any intro prose, the draft banner, or note box (slot: TOC → hero → optional note → prose; see #123). Markup: <video autoplay loop muted playsinline aria-label="..."> for a local clip (use controls instead of autoplay if it has audio), or <div class="iframe-container"><iframe ... title="descriptive..."></iframe></div> for YouTube — followed by a **Video.**/**Figure.** caption with {: .fs-1 }.
Activity