Mission
Build this
A photoresistor node that estimates light level and daily light/dark transitions.
Borrowed parts are labelled below and have a fallback. The assigned device ID is fixed; sensing and behaviour decisions remain yours.
Bill of materials
Parts
| Source | Part | Fallback |
|---|---|---|
| ● kit | Photoresistor | — |
| ● kit | 10 kΩ resistor | — |
| ● kit | SG90 servo | — |
Disconnect USB before rewiring. Motors, the relay, and the servo need appropriate power and a shared ground. Never drive an actuator from the ESP32 3V3 pin.
Assembly
Build in evidence-producing steps
- Prove the connection first. Flash the unmodified first-message example with this charter’s zone, device type, and device ID.
done when:
nw-01is alive on the developer view. - Bench-test one input. Read the sensor or control in Serial Monitor before publishing or moving an actuator.
done when: repeated physical conditions produce repeatable raw readings.
- Publish one registered measurement. Use the exact measurement and unit below.
done when: the reading appears without a reject.
- Add the physical response. Keep
spine.loop()running and avoid blocking delays.done when: repeated movement does not interrupt publishing or reset the board.
- Run the investigation. Collect the planned trials before tuning the final logic.
done when: the build log contains observations, method, and a limitation.
Contract
Your topics
| Topic | Unit | Suggested interval |
|---|---|---|
garden/greenhouse-2/night-node/nw-01/light-level | percent | 60 s |
garden/greenhouse-2/night-node/nw-01/day-length | minutes | daily |
Read another team
garden/greenhouse-1/climate-node/gm-01/temperaturePhysical behaviour
Alive
Remain still in daylight and perform a slow patrol in darkness.
Your call: Choose filtering, threshold, and transition persistence.
Engineering evidence
Compare threshold choices and quantify false dawn/dusk transitions.
- Record raw values across at least one transition.
- Evaluate three candidate thresholds.
- Require persistence and report its detection delay.
If you are fast: Compare calculated day length over multiple days.
Acceptance
Ready when all six are true
- The registered device is alive and publishing its required topics.
- The reject feed is clear after the final firmware starts.
- The device reads at least one declared cross-team topic.
- A physical output responds to real data without blocking MQTT.
- The build log contains method, evidence, uncertainty, and a known limitation.
- The enclosure exposes no unsafe wiring and the device ID can be scanned.