Skip to main content
Programming
- Set Up Temperature Logger
- Log Temperature Data
- Compute Average Temperature
- Graph Temperature Logs
- Clean and graph your temperature logs
- Compute Median Temperature
- Compute Moving Average Temperature
- Plot Temperature Data via CLI
- Compute Temperature Standard Deviation
- Calibrate a Thermistor
- Serve a Web Page
- Serve JSON Data
- Serve JSON Data
- Accept POST Data
- Serve Temperature as JSON
- Serve a live temperature graph
- Set Temperature Alert
- Email Temperature Alert
- Quest link: /quests/programming/hello-sensor
- Unlock prerequisite:
requiresQuests:electronics/arduino-blink
- Dialogue
requiresItemsgates:bench→ "Parts are placed and powered" - Arduino Uno ×1, solderless breadboard ×1, Jumper Wires ×3, Thermistor (10k NTC) ×1, 10k Ohm Resistor ×1, USB Type-A to Type-B cable ×1, Laptop Computer ×1bench-fix→ "Bench is safe and stable now" - Arduino Uno ×1, Thermistor (10k NTC) ×1, 10k Ohm Resistor ×1rig→ "Logger is wired and blinking" - thermistor logging rig ×1rig-recover→ "Signal is stable; retry the rig step" - thermistor logging rig ×1log→ "CSV archived for reuse" - temperature log CSV ×1verify-log→ "Log passes QA checks" - temperature log CSV ×1, thermistor logging rig ×1log-retry→ "Re-test the replacement CSV" - temperature log CSV ×1
- Grants:
- Dialogue options/steps grantsItems: None
- Quest-level
grantsItems: None
- Rewards:
- Servo Motor ×1
- Processes used:
- arduino-thermistor-read
- Requires: Arduino Uno ×1, solderless breadboard ×1, Jumper Wires ×3, USB Cable ×1, Thermistor (10k NTC) ×1, 10k Ohm Resistor ×1
- Consumes: none
- Creates: none
- assemble-thermistor-logger
- Requires: Arduino Uno ×1, solderless breadboard ×1, Jumper Wires ×4, Thermistor (10k NTC) ×1, 10k Ohm Resistor ×1, USB Type-A to Type-B cable ×1, Laptop Computer ×1
- Consumes: none
- Creates: thermistor logging rig ×1
- capture-hourly-temperature-log
- Requires: thermistor logging rig ×1, Laptop Computer ×1
- Consumes: none
- Creates: temperature log CSV ×1
- arduino-thermistor-read
- Quest link: /quests/programming/temp-logger
- Unlock prerequisite:
requiresQuests:electronics/thermistor-reading
- Dialogue
requiresItemsgates:wire→ "Rig is wired and sketch uploaded" - thermistor logging rig ×1log→ "CSV captured for review" - temperature log CSV ×1interpret→ "Range and cadence pass review" - temperature log CSV ×1, thermistor logging rig ×1recover→ "New CSV ready for re-test" - temperature log CSV ×2
- Grants:
- Dialogue options/steps grantsItems: None
- Quest-level
grantsItems: None
- Rewards:
- Motor Award ×1
- Processes used:
- assemble-thermistor-logger
- Requires: Arduino Uno ×1, solderless breadboard ×1, Jumper Wires ×4, Thermistor (10k NTC) ×1, 10k Ohm Resistor ×1, USB Type-A to Type-B cable ×1, Laptop Computer ×1
- Consumes: none
- Creates: thermistor logging rig ×1
- capture-hourly-temperature-log
- Requires: thermistor logging rig ×1, Laptop Computer ×1
- Consumes: none
- Creates: temperature log CSV ×1
- assemble-thermistor-logger
- Quest link: /quests/programming/avg-temp
- Unlock prerequisite:
requiresQuests:programming/temp-logger
- Dialogue
requiresItemsgates:start→ "Load the CSV" - temperature log CSV ×1prep→ "Data looks clean" - temperature line chart ×1compute→ "Averages plotted and saved" - annotated temperature graph ×1interpret→ "Average is within expected range and documented" - temperature line chart ×1, annotated temperature graph ×1retest→ "Re-test with fresh log + rebuilt graph artifacts" - temperature log CSV ×2, annotated temperature graph ×2
- Grants:
- Dialogue options/steps grantsItems: None
- Quest-level
grantsItems: None
- Rewards:
- basic shell operator badge ×1
- Processes used:
- plot-temperature-data
- Requires: Laptop Computer ×1
- Consumes: none
- Creates: temperature line chart ×1
- refine-temperature-graph
- Requires: temperature line chart ×1, Laptop Computer ×1
- Consumes: none
- Creates: annotated temperature graph ×1
- capture-hourly-temperature-log
- Requires: thermistor logging rig ×1, Laptop Computer ×1
- Consumes: none
- Creates: temperature log CSV ×1
- plot-temperature-data
- Quest link: /quests/programming/graph-temp
- Unlock prerequisite:
requiresQuests:programming/temp-logger
- Dialogue
requiresItemsgates:start→ "Let's create a graph." - temperature log CSV ×1prep→ "Chart exported for review" - temperature line chart ×1interpret→ "Trend and bounds look healthy" - temperature line chart ×1triage→ "I corrected wiring and re-ran the graph" - annotated temperature graph ×1
- Grants:
- Dialogue options/steps grantsItems: None
- Quest-level
grantsItems: None
- Rewards:
- basic shell operator badge ×1
- Processes used:
- plot-temperature-data
- Requires: Laptop Computer ×1
- Consumes: none
- Creates: temperature line chart ×1
- refine-temperature-graph
- Requires: temperature line chart ×1, Laptop Computer ×1
- Consumes: none
- Creates: annotated temperature graph ×1
- plot-temperature-data
- Quest link: /quests/programming/graph-temp-data
- Unlock prerequisite:
requiresQuests:programming/graph-temp
- Dialogue
requiresItemsgates:start→ "I'll stage the cleanup run." - temperature line chart ×1, temperature log CSV ×1prep→ "Annotated graph exported" - annotated temperature graph ×1interpret→ "Graph is in-range and cadence is stable" - annotated temperature graph ×1, temperature line chart ×1triage→ "Wiring corrected; rerun annotated graph" - temperature line chart ×2
- Grants:
- Dialogue options/steps grantsItems: None
- Quest-level
grantsItems: None
- Rewards:
- live temperature JSON endpoint ×1
- Processes used:
- refine-temperature-graph
- Requires: temperature line chart ×1, Laptop Computer ×1
- Consumes: none
- Creates: annotated temperature graph ×1
- plot-temperature-data
- Requires: Laptop Computer ×1
- Consumes: none
- Creates: temperature line chart ×1
- refine-temperature-graph
- Quest link: /quests/programming/median-temp
- Unlock prerequisite:
requiresQuests:programming/avg-temp
- Dialogue
requiresItemsgates:start→ "Use my latest logger export" - temperature log CSV ×1collect→ "Dataset passes sanity checks" - Raspberry Pi 5 board ×1, temperature log CSV ×1repair→ "Cleaned file is ready for re-check" - temperature log CSV ×1compute→ "Median report generated" - Raspberry Pi 5 board ×1verify→ "Median is within expected range" - Raspberry Pi 5 board ×1, temperature log CSV ×1
- Grants:
- Dialogue options/steps grantsItems: None
- Quest-level
grantsItems: None
- Rewards:
- basic shell operator badge ×1
- Processes used:
- None
- Quest link: /quests/programming/moving-avg-temp
- Unlock prerequisite:
requiresQuests:programming/avg-temp
- Dialogue
requiresItemsgates:start→ "Use the latest logger export." - temperature log CSV ×1prep→ "Baseline plot ready" - temperature line chart ×1interpret→ "Trend is smooth and in-bounds" - aquarium thermometer (0-50°C) ×1, temperature line chart ×1retest→ "Re-test corrected output" - annotated temperature graph ×1
- Grants:
- Dialogue options/steps grantsItems: None
- Quest-level
grantsItems: None
- Rewards:
- basic shell operator badge ×1
- Processes used:
- plot-temperature-data
- Requires: Laptop Computer ×1
- Consumes: none
- Creates: temperature line chart ×1
- refine-temperature-graph
- Requires: temperature line chart ×1, Laptop Computer ×1
- Consumes: none
- Creates: annotated temperature graph ×1
- plot-temperature-data
- Quest link: /quests/programming/plot-temp-cli
- Unlock prerequisite:
requiresQuests:programming/temp-logger
- Dialogue
requiresItemsgates:start→ "Stage the CLI run" - temperature log CSV ×1prep→ "Baseline chart exported" - temperature line chart ×1interpret→ "Plot is stable and in expected range" - temperature line chart ×1retest→ "Re-check regenerated chart" - temperature log CSV ×2, temperature line chart ×2
- Grants:
- Dialogue options/steps grantsItems: None
- Quest-level
grantsItems: None
- Rewards:
- basic shell operator badge ×1
- Processes used:
- plot-temperature-data
- Requires: Laptop Computer ×1
- Consumes: none
- Creates: temperature line chart ×1
- capture-hourly-temperature-log
- Requires: thermistor logging rig ×1, Laptop Computer ×1
- Consumes: none
- Creates: temperature log CSV ×1
- plot-temperature-data
- Quest link: /quests/programming/stddev-temp
- Unlock prerequisite:
requiresQuests:programming/median-temp
- Dialogue
requiresItemsgates:start→ "Load the latest dataset" - temperature log CSV ×1prep→ "Deviation report generated" - temperature line chart ×1interpret→ "Deviation is in expected band and documented" - temperature line chart ×1retest→ "Re-test with the new log" - temperature log CSV ×2, temperature line chart ×2
- Grants:
- Dialogue options/steps grantsItems: None
- Quest-level
grantsItems: None
- Rewards:
- shell transcript ×1
- Processes used:
- plot-temperature-data
- Requires: Laptop Computer ×1
- Consumes: none
- Creates: temperature line chart ×1
- capture-hourly-temperature-log
- Requires: thermistor logging rig ×1, Laptop Computer ×1
- Consumes: none
- Creates: temperature log CSV ×1
- plot-temperature-data
- Quest link: /quests/programming/thermistor-calibration
- Unlock prerequisite:
requiresQuests:programming/hello-sensor
- Dialogue
requiresItemsgates:wire→ "Hardware ready" - Thermistor (10k NTC) ×1, 10k Ohm Resistor ×1, Arduino Uno ×1rewire→ "Wiring corrected, retry calibration setup" - Thermistor (10k NTC) ×1, 10k Ohm Resistor ×1baseline→ "Baseline noted and reference stable" - Thermistor (10k NTC) ×1, 10k Ohm Resistor ×1adjust→ "Adjusted values look consistent" - Arduino Uno ×1, Thermistor (10k NTC) ×1drift→ "Retry coefficient adjustment" - Arduino Uno ×1verify→ "Calibration passes repeated verification" - Arduino Uno ×1, Thermistor (10k NTC) ×1, 10k Ohm Resistor ×1
- Grants:
- Dialogue options/steps grantsItems: None
- Quest-level
grantsItems: None
- Rewards:
- basic shell operator badge ×1
- Processes used:
- arduino-thermistor-read
- Requires: Arduino Uno ×1, solderless breadboard ×1, Jumper Wires ×3, USB Cable ×1, Thermistor (10k NTC) ×1, 10k Ohm Resistor ×1
- Consumes: none
- Creates: none
- arduino-thermistor-read
- Quest link: /quests/programming/web-server
- Unlock prerequisite:
requiresQuests:programming/hello-sensor
- Dialogue
requiresItemsgates:start→ "I'll prep static assets and dependencies." - temperature log CSV ×1, Laptop Computer ×1prep→ "Assets ready for server launch" - temperature line chart ×1deploy→ "Service passes remote checks" - temperature line chart ×1, Raspberry Pi 5 board ×1recover→ "Patched config; re-run remote checks" - annotated temperature graph ×1
- Grants:
- Dialogue options/steps grantsItems: None
- Quest-level
grantsItems: None
- Rewards:
- basic shell operator badge ×1
- Processes used:
- plot-temperature-data
- Requires: Laptop Computer ×1
- Consumes: none
- Creates: temperature line chart ×1
- refine-temperature-graph
- Requires: temperature line chart ×1, Laptop Computer ×1
- Consumes: none
- Creates: annotated temperature graph ×1
- plot-temperature-data
- Quest link: /quests/programming/json-endpoint
- Unlock prerequisite:
requiresQuests:programming/web-server
- Dialogue
requiresItemsgates:start→ "Plan endpoint hardening" - temperature log CSV ×1, thermistor logging rig ×1, Raspberry Pi 5 board ×1wire→ "Three clean reads captured; proceed to endpoint deploy" - thermistor logging rig ×1, Raspberry Pi 5 board ×1, temperature log CSV ×1recover-serial→ "Serial stream is stable again" - temperature log CSV ×2publish→ "Endpoint deployed; run contract checks" - live temperature JSON endpoint ×1verify→ "Both healthy and failure-mode checks pass" - live temperature JSON endpoint ×1, temperature log CSV ×1
- Grants:
- Dialogue options/steps grantsItems: None
- Quest-level
grantsItems: None
- Rewards:
- live temperature JSON endpoint ×1
- Processes used:
- pyserial-install
- Requires: Raspberry Pi 5 board ×1
- Consumes: none
- Creates: none
- raspberry-pi-serial-log
- Requires: Arduino Uno ×1, Raspberry Pi 5 board ×1, USB Cable ×1
- Consumes: none
- Creates: none
- deploy-temperature-json-endpoint
- Requires: thermistor logging rig ×1, temperature log CSV ×1, Raspberry Pi 5 board ×1
- Consumes: none
- Creates: live temperature JSON endpoint ×1
- pyserial-install
- Quest link: /quests/programming/json-api
- Unlock prerequisite:
requiresQuests:programming/web-server,programming/json-endpoint,programming/avg-temp
- Dialogue
requiresItemsgates:start→ "Design payload contracts" - live temperature JSON endpoint ×1, temperature log CSV ×1stats→ "Stats payload passes contract review" - annotated temperature graph ×1, temperature log CSV ×1schema-recovery→ "Schema is repaired; re-run stats validation" - temperature log CSV ×2publish→ "Dashboard and docs published" - live temperature dashboard ×1, live temperature JSON endpoint ×1verify→ "Both happy-path and stale-data checks pass" - live temperature dashboard ×1, annotated temperature graph ×1
- Grants:
- Dialogue options/steps grantsItems: None
- Quest-level
grantsItems: None
- Rewards:
- basic shell operator badge ×1
- Processes used:
- refine-temperature-graph
- Requires: temperature line chart ×1, Laptop Computer ×1
- Consumes: none
- Creates: annotated temperature graph ×1
- publish-live-temperature-graph
- Requires: live temperature JSON endpoint ×1, annotated temperature graph ×1, Laptop Computer ×1
- Consumes: none
- Creates: live temperature dashboard ×1
- refine-temperature-graph
- Quest link: /quests/programming/http-post
- Unlock prerequisite:
requiresQuests:programming/json-api
- Dialogue
requiresItemsgates:start→ "I'm ready" - live temperature JSON endpoint ×1, Raspberry Pi 5 board ×1schema→ "Server returns 201 for valid payloads" - live temperature JSON endpoint ×1recover→ "Hardening patch applied; retest" - Raspberry Pi 5 board ×1verify→ "Both tests behave as expected" - live temperature JSON endpoint ×1, Raspberry Pi 5 board ×1
- Grants:
- Dialogue options/steps grantsItems: None
- Quest-level
grantsItems: None
- Rewards:
- live temperature JSON endpoint ×1
- Processes used:
- deploy-temperature-json-endpoint
- Requires: thermistor logging rig ×1, temperature log CSV ×1, Raspberry Pi 5 board ×1
- Consumes: none
- Creates: live temperature JSON endpoint ×1
- deploy-temperature-json-endpoint
- Quest link: /quests/programming/temp-json-api
- Unlock prerequisite:
requiresQuests:programming/json-api
- Dialogue
requiresItemsgates:start→ "Sounds great." - temperature log CSV ×1, thermistor logging rig ×1, Raspberry Pi 5 board ×1code→ "Endpoint is live. Let's validate sample readings." - live temperature JSON endpoint ×1pass-window→ "Validation logged." - live temperature JSON endpoint ×1
- Troubleshooting/safety branches:
sampleadds an explicit pass/fail range gate (18-30C) before completion.out-of-rangepauses automation, routes through endpoint patching, and requires a re-test loop.
- Grants:
- Dialogue options/steps grantsItems: None
- Quest-level
grantsItems: None
- Rewards:
- live temperature JSON endpoint ×1
- Processes used:
- deploy-temperature-json-endpoint
- Requires: thermistor logging rig ×1, temperature log CSV ×1, Raspberry Pi 5 board ×1
- Consumes: none
- Creates: live temperature JSON endpoint ×1
- deploy-temperature-json-endpoint
- Quest link: /quests/programming/temp-graph
- Unlock prerequisite:
requiresQuests:programming/graph-temp-data,programming/temp-json-api
- Dialogue
requiresItemsgates:start→ "Show me how." - live temperature JSON endpoint ×1, annotated temperature graph ×1, Laptop Computer ×1code→ "Dashboard is up. Let's verify the graph behavior." - live temperature dashboard ×1stable→ "Evidence captured." - live temperature dashboard ×1
- Troubleshooting/safety branches:
reviewadds cadence plus value-window acceptance checks before finish can unlock.driftenforces stale-data/cache troubleshooting with a required recheck loop.
- Grants:
- Dialogue options/steps grantsItems: None
- Quest-level
grantsItems: None
- Rewards:
- live temperature JSON endpoint ×1
- Processes used:
- publish-live-temperature-graph
- Requires: live temperature JSON endpoint ×1, annotated temperature graph ×1, Laptop Computer ×1
- Consumes: none
- Creates: live temperature dashboard ×1
- publish-live-temperature-graph
- Quest link: /quests/programming/temp-alert
- Unlock prerequisite:
requiresQuests:programming/temp-graph
- Dialogue
requiresItemsgates:start→ "I'll define the alert thresholds." - temperature log CSV ×1prep→ "Validation log captured" - temperature log CSV ×2interpret→ "Alert behavior matches policy" - aquarium thermometer (0-50°C) ×1, temperature log CSV ×1tune→ "Policy tuned; rerun alert validation" - temperature line chart ×1
- Grants:
- Dialogue options/steps grantsItems: None
- Quest-level
grantsItems: None
- Rewards:
- shell transcript ×1
- Processes used:
- capture-hourly-temperature-log
- Requires: thermistor logging rig ×1, Laptop Computer ×1
- Consumes: none
- Creates: temperature log CSV ×1
- plot-temperature-data
- Requires: Laptop Computer ×1
- Consumes: none
- Creates: temperature line chart ×1
- capture-hourly-temperature-log
- Quest link: /quests/programming/temp-email
- Unlock prerequisite:
requiresQuests:programming/temp-alert
- Dialogue
requiresItemsgates:start→ "Configure alert thresholds" - temperature log CSV ×1prep→ "Email alert arrived with timestamp" - temperature log CSV ×1interpret→ "Alert timing and threshold behavior are correct" - temperature log CSV ×1retest→ "Re-validate email behavior" - temperature log CSV ×2
- Grants:
- Dialogue options/steps grantsItems: None
- Quest-level
grantsItems: None
- Rewards:
- live temperature JSON endpoint ×1
- Processes used:
- capture-hourly-temperature-log
- Requires: thermistor logging rig ×1, Laptop Computer ×1
- Consumes: none
- Creates: temperature log CSV ×1
- capture-hourly-temperature-log
- Cross-quest dependencies: follow quest unlocks in order; each quest above lists exact
requiresQuestsand inventory gates that must be present before completion paths appear. - Progression integrity checks: verify each process-backed step can be completed either by running the process or by satisfying the documented continuation gate items.
- Known pitfalls: repeated processes may generate stackable logs or outputs; validate minimum item counts on continuation options before skipping process steps.
Programming quests build practical progression through the programming skill tree. This page is a QA-oriented map of quest dependencies, process IO, and inventory gates.
