Files

3.2 KiB
Raw Permalink Blame History

Hardware Wiring Diagram (Seeed XIAO ESP32C3 Electricity Price Ticker)

This document depicts the wiring for the Electricity Price Ticker project based on the connection instructions in README.md.

It includes:

  • Required peripherals (LCD + button)
  • Supported optional peripherals (presence sensor + white LED + optional TTP223 touch button alternative)

Further reference (official board documentation):

Notes:

  • Always connect all grounds together (ESP32 GND, LCD GND, sensor GND, LED GND).
  • Verify your XIAO ESP32C3 pinout in the Seeed documentation link above.
  • Important: The 10 kΩ pull-down resistor on D9 is mandatory at all times (even if the presence sensor is not connected).
  • Button input is on D2. You may use either a mechanical pushbutton (default) or a TTP223 touch module (alternative), but not both in parallel unless you know what youre doing.

1) Wiring overview (diagram)

flowchart TB
  MCU["Seeed XIAO ESP32-C3"]:::mcu

  LCD["20x4 I2C LCD 2004<br/>PCF8574 backpack<br/>I2C addr 0x27"]:::lcd

  %% Button input options (XIAO D2)
  D2NODE["D2 node<br/>(buttonPin input)"]:::io
  BTN["Mechanical pushbutton<br/>default option<br/>active LOW to GND"]:::btn
  TTP["TTP223 capacitive touch<br/>optional alternative<br/>OUT is HIGH when touched"]:::touch

  %% Presence-sensor input stage (XIAO D9) - always present
  D9NODE["D9 node<br/>(presencePin input)"]:::io
  RPD["10k pull-down resistor<br/>D9 to GND<br/>MANDATORY"]:::res
  PRES["RCWL-0516 presence sensor<br/>optional"]:::pres

  %% White LED output (XIAO D3)
  LED1["White indicator LED<br/>optional"]:::led

  PSU5V["5V supply<br/>USB-C or regulated 5V"]:::pwr
  V33["3.3V rail from XIAO"]:::pwr
  GND["Common GND"]:::gnd

  %% Power
  PSU5V -->|"5V"| MCU
  PSU5V -->|"5V or 3V3 if LCD supports"| LCD
  MCU -->|"3V3"| V33
  V33 -->|"3V3"| PRES
  V33 -->|"3V3"| TTP

  %% Grounds
  MCU --- GND
  LCD --- GND
  BTN --- GND
  TTP --- GND
  D2NODE --- GND

  D9NODE --- GND
  PRES --- GND

  LED1 --- GND
  PSU5V --- GND

  %% I2C
  MCU -->|"SDA D4"| LCD
  MCU -->|"SCL D5"| LCD

  %% Button input stage (always)
  MCU -->|"D2 (buttonPin)"| D2NODE
  BTN -->|"button to GND"| D2NODE
  TTP -->|"OUT to D2 node"| D2NODE

  %% Presence input stage (always)
  MCU -->|"D9 (presencePin)"| D9NODE
  D9NODE ---|"10k"| RPD
  RPD -->|"to GND"| GND
  PRES -->|"OUT to D9 node"| D9NODE

  %% White LED (single LED, directly from pin with series resistor)
  MCU -->|"D3 (whiteLedPin)"| LED1

classDef mcu fill:#e8f0ff,stroke:#2b5fd9,stroke-width:1px,color:#000;
classDef lcd fill:#fff4e5,stroke:#cc7a00,stroke-width:1px,color:#000;
classDef btn fill:#eaffea,stroke:#2d8a2d,stroke-width:1px,color:#000;
classDef touch fill:#e6fcff,stroke:#0077b6,stroke-width:1px,color:#000;
classDef pres fill:#f3e8ff,stroke:#7b2cbf,stroke-width:1px,color:#000;
classDef led fill:#ffe8ef,stroke:#c9184a,stroke-width:1px,color:#000;
classDef res fill:#f5f5f5,stroke:#444,stroke-width:1px,color:#000;
classDef pwr fill:#fff,stroke:#444,stroke-width:1px,color:#000;
classDef gnd fill:#fff,stroke:#000,stroke-width:1.5px,color:#000;
classDef io fill:#f5f5f5,stroke:#111,stroke-width:1px,color:#000;