38 lines
1.3 KiB
Markdown
38 lines
1.3 KiB
Markdown
# GPIO Control
|
|
|
|
Control and monitor GPIO pins on the ESP32-S3 for digital I/O.
|
|
|
|
## When to use
|
|
When the user asks to:
|
|
- Turn on/off LEDs, relays, or other outputs
|
|
- Check switch states, button presses, or sensor readings
|
|
- Confirm digital I/O status (switch confirmation)
|
|
- Get an overview of all GPIO pin states
|
|
|
|
## How to use
|
|
1. To **read a switch/sensor**: use gpio_read with the pin number
|
|
- Returns HIGH (1) or LOW (0)
|
|
- HIGH typically means switch is ON / circuit closed
|
|
- LOW typically means switch is OFF / circuit open
|
|
2. To **set an output**: use gpio_write with pin and state (1=HIGH, 0=LOW)
|
|
3. To **scan all pins**: use gpio_read_all for a full status overview
|
|
4. For **switch confirmation**: read the pin, report state, optionally toggle and re-read to verify
|
|
|
|
## Pin safety
|
|
- Only pins within the allowed range can be accessed
|
|
- ESP32 flash pins (6-11) are always blocked
|
|
- If a pin is rejected, suggest an alternative within the allowed range
|
|
|
|
## Example
|
|
User: "Check if the switch on pin 4 is on"
|
|
→ gpio_read {"pin": 4}
|
|
→ "Pin 4 = HIGH"
|
|
→ "The switch on pin 4 is currently ON (HIGH)."
|
|
|
|
User: "Turn on the relay on pin 5"
|
|
→ gpio_write {"pin": 5, "state": 1}
|
|
→ "Pin 5 set to HIGH"
|
|
→ gpio_read {"pin": 5}
|
|
→ "Pin 5 = HIGH"
|
|
→ "Relay on pin 5 is now ON. Confirmed HIGH."
|