Skip to main content
You can create your own external triggers using Arduino, ESP32, Raspberry Pi, or other similar DIY hardware. The setup needs to be made per the below details: Your DIY hardware must either:
  1. Have its own power source separate from Sidekick so that it is powered on and running all the time to monitor the incoming power.
    1. The Sidekick USB A port must be connected to your hardware to be monitored for 5V power.
    2. When your DIY board detects power coming from the USB A port, you can perform any function of your choosing.
    3. When your DIY board detects that power from the USB A port has stopped (alert snoozed/stopped), you can perform another function.
  2. Run on USB A, 5V, 1 Amp or less and automatically perform your dedicated functions when powered on.
    1. Plug your external hardware into Sidekick’s USB A port.
    2. If your hardware connects to WiFi, bluetooth, or has other delayed startup functions, you should only use the first DIY option above to ensure the alert function you have programmed runs immediately.

What you need:

  • ESP32 board (like a DevKitC or NodeMCU-ESP32)
  • USB-A cable with exposed 5V (red) and GND (black) wires
  • Two resistors for voltage divider (e.g., 10kΩ + 20kΩ → drops 5V to ~3.3V)
  • Breadboard and jumper wires

Wiring

USB Wire | Connect toRed (5V) | Voltage divider → ESP32 GPIO (e.g., GPIO 18)Black (GND) | ESP32 GND

Voltage divider setup:

This drops 5V down to ~3.3V safely.

Example Code (ESP32, digital read)

Important:
  • Do NOT connect 5V directly to ESP32 pins — always drop it to ≤3.3V.
  • ESP32 pins are usually labeled GPIO on your board — you can pick most, but avoid strapping pins (like GPIO0, GPIO2, GPIO15).
  • Use Serial.begin(115200) — ESP32 typically uses higher serial baud rates than Arduino Uno.

What you need:

  • Arduino Uno (or similar)
  • USB-A cable with the 5V (red) and GND (black) wires exposed
  • Connect the 5V wire to an Arduino digital pin (or analog for voltage measurement)
  • Optionally use a resistor divider if needed

Simple Example Code

This version monitors the 5V USB line connected to digital pin 2:

Wiring

  • USB 5V (usually red) → Pin 2
  • USB GND (usually black) → GND on Arduino
Important: Ensure the USB power doesn’t exceed 5V. If you’re unsure, use a voltage divider (e.g., 10kΩ and 10kΩ) to cut voltage in half and measure with an analog pin.

Example DIY Integrations

This is a list of examples found online for integrating various devices with Arduino, ESP32, etc. We have not tested any of these examples.

Apple HomeKit Integration

Native HomeKit on ESP32 or ESP8266

Google Home Integration

Bridge to Google Home with IFTTT, Firebase, or MQTT

Home Assistant Integration

Connect via MQTT, HTTP, or ESPHome

Relays

Trigger high-voltage devices like lamps, fans, or appliances

Motors

DC, servo, and stepper motors for robotics and automation

Solenoids

Electromagnetic lock or push/pull mechanisms

Internet Services

Trigger a web request, IFTTT, or cloud automation

Servo-controlled Mechanisms

Lockboxes, robotic arms, door locks

Home Automation (IR, RF)

Control TV, lights, or other RF/IR devices

LCD/OLED Displays

Show text or graphics

Sirens

Trigger a siren for alerts or security systems

Cameras

Trigger capture or stream images

Phone Calls/Texts

Send SMS alerts with ESP32 and Twilio