Mission
Build this
Build a movable shade creature that measures local temperature and light while its parasol changes position.
Borrowed parts are labelled below and have a fallback. The registered device ID is fixed; sensing and behaviour decisions remain yours.
Bill of materials
Parts
| Source | Part | Fallback |
|---|---|---|
| ● kit | Thermistor and 10 kΩ resistor | — |
| ● kit | Photoresistor and 10 kΩ resistor | — |
| ○ fablab | SG90 servo and lightweight parasol | Use a hand-positioned card shade for the investigation |
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.
Backup assignment · your invitation
Carry a tiny patch of shade and ask what it truly changes
Shade feels simple: block the sun and things become cooler. The Parasol Bug turns that familiar idea into an experiment where light changes immediately, temperature takes its time, and the measuring creature can accidentally warm itself.
You will build a light and temperature witness beneath a small movable parasol. Its purpose is not to automate a greenhouse. It is to compare carefully controlled shaded and unshaded intervals, while the creature opens only after bright evidence persists.
Change one planned thing at a time. Keep position, sensor spacing, interval length, and measurement method fixed so the shade receives only the credit it earned.
Meet the idea
Light arrives quickly; temperature carries memory
A photoresistor changes as soon as the shade crosses it. A thermistor responds more slowly because the sensor body and nearby air must gain or lose heat. The two plots should not be expected to turn together.
Temperature near a small object is influenced by sunlight, air movement, surface colour, the warm ESP32, and the servo. Sensor placement is therefore part of the instrument, not decoration added afterward.
Alternating states—shade, sun, shade, sun—helps separate a repeatable effect from a general weather trend during the afternoon.
Response time
How long a sensor takes to approach a new reading after the condition changes.
Controlled variable
The one planned change: whether the parasol shades the sensing point.
Confounder
Another change, such as wind or device heat, that could explain part of the result.
- in the worldSun, shade, wind, and airThe parasol changes radiation while weather continues around it.
- the partPhotoresistor + thermistorOne responds to light; one responds to its own temperature.
- electricalTwo divider voltagesSeparate analog inputs preserve the two witnesses.
- in the codeLight % + temperatureCalibration and timing give each raw signal meaning.
- on the spineTwo measurementsThe garden receives both series with their proper units.
Light and temperature share the scene but travel through different sensors and timescales.
The lovely trick
A fair comparison needs repeated turns
If you measure sun at noon and shade an hour later, the outside weather has also changed. That difference cannot belong entirely to the parasol.
Use equal, alternating intervals and wait long enough for the thermistor to respond. Repeat the pair several times. The immediate light drop proves the parasol moved over the sensor; the slower temperature curve is the result you must interpret carefully.
- 01Parasol closedCollect ordinary light evidence without shade.then, bright for ___ readings,
- 02Bright candidateLight crossed the opening threshold; wait through brief flicker.then, evidence persists,
- 03Parasol openHold one stable shade position and keep sampling.then, dim for ___ readings,
- 04Dim recoveryClose only after light stays below a separate boundary.
Back to the start: Return to closed and require fresh bright evidence before opening again.
This control rule animates the creature. The investigation still uses planned fixed intervals rather than allowing the automation to choose every condition.
A thermistor reports the temperature of its bead, not the abstract air. Direct sun may heat the bead above the air; shade and wind change that error. Describe the measurement as local sensor temperature unless you establish a better reference.
Wiring
Build two quiet witnesses before adding the moving roof
Read each voltage divider separately. Cover the photoresistor and gently warm the thermistor to verify which value belongs to which input. Then mount them together, measure the baseline, and connect the servo last.
The power rule: Both sensor dividers use 3V3 and separate analog inputs. Power the servo from a separate 5 V supply. Join grounds and keep the servo wiring away from the sensitive analog junctions.
Bench referenceOpen the exact wiring map
| ESP32 pin | Part | Part marking | Carries |
|---|---|---|---|
3V3 | Thermistor | one leg | 3V3 power |
GPIO 34 | Thermistor | other leg | Analog voltage — temperature-divider junction |
GPIO 34 | 10 kΩ resistor | one leg | Analog voltage — same temperature-divider junction |
GND | 10 kΩ resistor | other leg | Ground |
3V3 | Photoresistor | one leg | 3V3 power |
GPIO 35 | Photoresistor | other leg | Analog voltage — light-divider junction |
GPIO 35 | 10 kΩ resistor | one leg | Analog voltage — same light-divider junction |
GND | 10 kΩ resistor | other leg | Ground |
GPIO 18 | SG90 servo | signal (orange) | PWM to actuator — parasol position |
external 5 V | SG90 servo | power (red) | 5V power — separate supply |
GND | SG90 servo | ground (brown) | Ground — join servo and ESP32 grounds |
Never power the servo from ESP32 3V3. Make the parasol lightweight, limit its travel mechanically, and keep fingers, leaves, and loose wires outside the moving linkage.
- 3V3 power
- Analog voltage
- Ground
- PWM to actuator
- 5V power
Divider direction determines whether raw values rise or fall with light and warmth. Observe the direction and name it correctly instead of copying an assumed formula.
Give it character
Decide whether the bug demonstrates shade or seeks it
A demonstrator alternates planned states for a clear experiment. A responsive creature opens after bright evidence and closes after recovery. You may build both modes, but keep their purposes distinct.
Your team decides:
- What parasol size and height shade the sensors without enclosing them?
- Where do both sensors sit relative to the ESP32, servo, and shaded patch?
- Which separate opening and closing thresholds keep the movement calm?
- How can a person tell whether the device is in experiment mode, responsive mode, or missing trusted data?
Write these decisions in plain language before turning them into code. A clear rule is easier to test, explain, and change.
Your field adventure
How much change belongs to the shade?
Begin by co-locating the sensors without moving the parasol. Then run a fixed alternating schedule and record weather details that could compete with your explanation.
- Measure the baseline.
Fix both sensor positions and record their ordinary variation plus any warming from the nearby ESP32 and servo.
- Alternate equal intervals.
Run unshaded, shaded, unshaded, shaded intervals of the same duration and servo position sequence.
- Measure two timescales.
Record the immediate light change, the slower temperature response, and the time each takes to settle.
- Challenge the explanation.
Repeat under a different breeze or orientation and report which effects remain and which become ambiguous.
| Interval | Shade state | Light start → end | Temperature start → end | Settle time | Wind / confounder |
|---|---|---|---|---|---|
| 1 | unshaded | ___ → ___ % | ___ → ___ °C | ___ min | ___ |
| 2 | shaded | ___ → ___ % | ___ → ___ °C | ___ min | ___ |
| 3 | unshaded | ___ → ___ % | ___ → ___ °C | ___ min | ___ |
When it gets dramatic
An unruly parasol makes an excellent teacher
Light changes but temperature does not
That may be a real result, a short interval, strong airflow, or poor sensor placement. Extend the controlled interval before declaring failure.
Temperature rises when the parasol opens
The servo or ESP32 may heat the thermistor, or the shade may block airflow. Separate components and inspect the mounting geometry.
The parasol opens and closes repeatedly
The thresholds are too close or lack persistence. Use separate open and close boundaries and require several confirming readings.
The servo changes both analog readings
Power noise or physical vibration is reaching the dividers. Use a separate supply, shared ground, short signal wiring, and sample after movement settles.
Two sunny trials disagree
Sun angle, cloud, wind, surface temperature, or starting conditions changed. Record them and make a smaller claim supported by repeated pairs.
Choose your direction
What kind of shade researcher will you become?
The lag hunters
Focus on the different response times of light and temperature and make both curves easy to compare.
The geometry makers
Test parasol size, height, colour, and sensor position while changing one dimension at a time.
The self-heat detectives
Move the thermistor relative to the ESP32 and servo to measure how the device disturbs its own microclimate.
Each direction is real engineering. Pick the question that keeps your team curious.
A calm way through the build
Collect four small wins
- pb-01 says hello without the servo.
Join the garden before building the parasol.
- Light and warmth change the correct raw inputs.
Prove both dividers separately in Serial Monitor.
- Both calibrated readings reach the garden.
Hold position fixed and check units before motion.
- One slow parasol movement creates a repeatable shaded interval.
Add separate thresholds, persistence, and the alternating experiment.
When a new step fails, return to the last small win. The fault is now somewhere in the few wires or lines you just added.
The garden handshake
Share what you found
These names are the rigid part of the project. They let another team find your work without knowing what you called the variables in your code.
Local sensor temperature
garden/outdoor-1/parasol-node/pb-01/temperatureUnit: celsius
Relative light level
garden/outdoor-1/parasol-node/pb-01/light-levelUnit: percent
Listen beyond your own device.
garden/outdoor-1/frost-node/fs-01/temperatureFrost Sentinel offers a nearby outdoor reference. Compare aligned intervals and placement, but keep your local sensor independent and remain honest about differences between instruments.
Finish line
Ready to introduce to the garden
pb-01 stays online and publishes both registered measurements at their declared intervals.
The reject feed stays clear after the final code starts.
The device reads Frost Sentinel without depending on it for safe local control.
The parasol uses separate persistent thresholds and moves without blocking measurements or messages.
The build log contains baseline, repeated alternating intervals, light response, temperature lag, self-heating checks, wind, and limitations.
The lightweight linkage has safe travel, the servo has separate power, outdoor wiring is protected, and the label can be scanned.
The Parasol Bug succeeds when a familiar patch of shade becomes a fair experiment—and when the team can say exactly which part of the cooling story remains uncertain.