Mission
Build this
Build a four-choice interactive OLED label that presents one reviewed fact, one carefully contextualised live reading, and one courteous bow.
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 | IR receiver and remote | Use the RC522 or membrane keypad from its verified kit example |
| ● kit | OLED | — |
| ● 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.
Your invitation
Let a plant introduce itself without making up its thoughts
A visitor chooses one of four plants. The label answers with a short fact written with garden staff, then shows one nearby live condition from the shared network and bows once.
The fact and the reading come from different kinds of knowledge. One is curated and relatively stable. The other is measured, local, and aging by the minute. Your interface must keep them distinct while making their relationship worth noticing.
“This sensor reports nearby soil moisture” is evidence. “This plant is thirsty” may be an unsupported diagnosis.
The central idea
One answer can contain two different truths
What staff and sources know
A concise statement about the selected species, reviewed before it enters the device.
What a nearby node reports
A value, unit, source, and age from a known sensing location.
What the display must not invent
The nearby reading may not describe the selected plant’s own roots or needs.
If the moisture probe is physically associated with only one plant, say so. For the other selections, label it as greenhouse context or omit it. A clear limitation is better than a personalised-looking number with no real connection.
Write four tiny introductions
Severe space can improve the facts
plant-1Common name
Fact in one or two short screens.
Source reviewed by: ___plant-2Common name
Fact in one or two short screens.
Source reviewed by: ___plant-3Common name
Fact in one or two short screens.
Source reviewed by: ___plant-4Common name
Fact in one or two short screens.
Source reviewed by: ___Publish plant-1 through plant-4. The display may show friendly names, but the garden contract stays stable if the exhibition plants change.
Wiring
Choose one input method and make it dependable
The reference route uses four labelled keys on an IR remote. A keypad or RC522 reader is valid, but begin from its working kit example and repeat the same thirty labelled selection trials.
The power rule: The OLED and verified IR receiver module use 3V3 logic. The servo uses a separate 5 V supply. Join all grounds.
Bench referenceOpen the exact wiring map
| ESP32 pin | Part | Part marking | Carries |
|---|---|---|---|
3V3 | OLED (SSD1306) | VCC | 3V3 power |
GND | OLED (SSD1306) | GND | Ground |
GPIO 21 | OLED (SSD1306) | SDA | I²C bus |
GPIO 22 | OLED (SSD1306) | SCL | I²C bus |
3V3 | IR receiver module | VCC | 3V3 power — verify module voltage and markings |
GPIO 27 | IR receiver module | OUT | Digital in/out |
GND | IR receiver module | GND | Ground |
GPIO 18 | SG90 servo | signal (orange) | PWM to actuator — one bow after valid selection |
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. Verify the IR receiver pin order; similar packages use different arrangements. The RC522, if chosen, is a 3.3 V device.
- 3V3 power
- Ground
- I²C bus
- Digital in/out
- PWM to actuator
- 5V power
This map shows the IR-remote route. A keypad or RC522 is an alternate input system, not a pin-compatible replacement.
Make one selection become one complete answer
The bow comes after the device understands the request
A recognised control maps to one registered plant ID.
Show the plant name so a mistaken key is visible.
Present the fact, then clearly labelled live context.
Move only after a valid, newly accepted selection.
Your team decides:
- How is each remote key or tag visibly connected to one plant?
- How long does each screen remain before advancing?
- When is nearby moisture relevant enough to show?
- What wording explains stale or unavailable live data without blaming the plant?
Your two-part evaluation
Test input reliability and understanding separately
- Run at least thirty labelled selection trials.
Vary distance and angle for the remote, tag, or keypad. Record wrong, missed, and duplicate selections.
- Freeze four facts and the context wording.
Have garden staff review accuracy, brevity, and whether live data is connected honestly.
- Invite at least five first-time visitors.
Ask them to select a named plant, repeat one fact, and explain what the live number describes.
- Revise the weakest layer.
Input failures and comprehension errors are different problems. Change the correct one, then repeat its test.
| Selection | Input accepted? | Correct plant? | Fact recalled? | Live context understood? | Error type |
|---|---|---|---|---|---|
| plant-1 | yes / no | yes / no | ___ | yes / no | ___ |
| plant-2 | yes / no | yes / no | ___ | yes / no | ___ |
| invalid key | no | — | — | — | ___ |
When the label whispers nonsense
Find whether the failure began in input, content, or context
One press creates several bows
The remote code repeats while held or the input bounces. Accept one selection, wait for release or a quiet interval, and bow once.
The correct fact appears for the wrong physical plant
The exhibit label and internal mapping disagree. Create one visible mapping table and test every plant from the visitor’s position.
Visitors think the moisture belongs to every selected plant
The context wording is too personal. Name the sensor location and use “nearby greenhouse soil,” or omit the number where the connection is weak.
A missing reading appears as zero
Zero is valid data, not a placeholder. Track whether a message exists and how old it is, then show no data or stale explicitly.
The screen advances before anyone finishes reading
Reading time is an interface variable. Observe visitors, lengthen the pause, shorten the fact, or let them advance manually.
Choose your interpretation problem
What kind of plant-label team will you become?
The tiny editors
Work with garden staff to turn accurate plant knowledge into memorable, sourceable writing that survives a small display.
The selection engineers
Compare remote angle, keypad errors, or RFID placement and make one deliberate request reliably become one selection.
The context guardians
Study how wording, source, location, and age change what visitors believe a live measurement says about a plant.
A calm way through the build
Collect four small wins
pw-01says hello.Join the garden before writing the exhibit.
- Four controls produce four registered IDs.
Test input mapping before adding facts.
- One reviewed fact and one live context screen are distinct.
Add source, unit, location, age, and no-data language.
- One valid selection earns one bow.
Power the servo separately, then begin the two-part evaluation.
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.
Selected exhibit plant
garden/visitor-centre/whisperer/pw-01/selectionUnit: enum
Listen beyond your own device.
garden/greenhouse-2/moisture-node/th-01/soil-moistureThirsty supplies one local soil-moisture estimate. State where its probe is and whether that location genuinely represents the selected plant before showing the value.
Finish line
Ready to introduce to the garden
pw-01 stays online and publishes only plant-1, plant-2, plant-3, or plant-4 after valid selections.
The reject feed stays clear after the final code starts.
The label reads Thirsty moisture with unit, source, location, age, and honest stale or no-data states.
Each accepted selection produces one matching answer and one non-blocking bow.
The build log contains thirty labelled input trials, wrong, missed, and duplicate requests, four reviewed facts, five visitor tasks, fact recall, context comprehension, and one targeted revision.
The chosen input hardware uses safe voltage, the servo is separately powered, content is readable, and the device label can be scanned.
The Plant Whisperer is most persuasive when it knows which voice it is using: a carefully edited fact, a nearby measurement, or an honest admission that the connection is not known.