> ## Documentation Index
> Fetch the complete documentation index at: https://support.customtypeone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Referencia: ejemplos USB DIY

Puedes crear tus propios activadores externos con Arduino, ESP32, Raspberry Pi u otro hardware DIY similar. La configuración debe hacerse según los siguientes detalles:

Tu hardware DIY debe cumplir una de estas opciones:

1. Tener su propia fuente de alimentación, independiente del Sidekick, para estar encendido y funcionando todo el tiempo y así monitorear la alimentación entrante.
   1. El puerto USB A del Sidekick debe estar conectado a tu hardware para monitorear la alimentación de 5 V.
   2. Cuando tu placa DIY detecte alimentación desde el puerto USB A, puedes ejecutar cualquier función que elijas.
   3. Cuando tu placa DIY detecte que la alimentación del puerto USB A se ha detenido (alerta pospuesta/detenida), puedes ejecutar otra función.
2. Funcionar con USB A, 5 V, 1 A o menos, y ejecutar automáticamente tus funciones al encenderse.
   1. Conecta tu hardware externo al puerto USB A del Sidekick.
   2. Si tu hardware se conecta a WiFi o Bluetooth, o tiene otras funciones de arranque con retraso, usa solo la primera opción DIY anterior para asegurar que la función de alerta que programaste se ejecute de inmediato.

<div className="cc card-bluebell">
  <Accordion title="Ejemplo: configuración de ESP32 a 3.3 V" icon="microchip" description="Cableado del divisor de voltaje y código de ejemplo para placas ESP32">
    ### <Icon icon="toolbox" /> Lo que necesitas:

    * Placa ESP32 (como una DevKitC o NodeMCU-ESP32)
    * Cable USB-A con los cables de 5 V (rojo) y GND (negro) expuestos
    * Dos resistencias para el divisor de voltaje (p. ej., 10 kΩ + 20 kΩ → reduce 5 V a \~3.3 V)
    * Protoboard y cables puente

    ### <Icon icon="plug" /> Cableado

    Cable USB | Conectar a

    Rojo (5V) | Divisor de voltaje → GPIO del ESP32 (p. ej., GPIO 18)

    Negro (GND) | GND del ESP32

    ### Configuración del divisor de voltaje:

    ```
    USB 5V → [20kΩ] → GPIO 18
               ↓
            [10kΩ] → GND
    ```

    Esto reduce los 5 V a \~3.3 V de forma segura.

    ### <Icon icon="circle-check" /> Código de ejemplo (ESP32, lectura digital)

    ```
    const int usbPowerPin = 18;  // GPIO18 gets the divided signal
    bool lastState = LOW;

    void setup() {
      pinMode(usbPowerPin, INPUT);
      Serial.begin(115200);
    }

    void loop() {
      bool currentState = digitalRead(usbPowerPin);
      if (currentState != lastState) {
        if (currentState == HIGH) {
          Serial.println("USB Power ON");
          // YOUR ALERT START CODE GOES HERE
        } else {
          Serial.println("USB Power OFF");
          // YOUR ALERT STOP CODE GOES HERE
        }
        lastState = currentState;
      }
      delay(100); // debounce / polling delay
    }
    ```

    <Icon icon="triangle-exclamation" /> **Importante**:

    * **NO** conectes 5 V directamente a los pines del ESP32: reduce siempre el voltaje a ≤3.3 V.
    * Los pines del ESP32 suelen estar marcados como **GPIO** en tu placa; puedes elegir la mayoría, pero evita los pines de arranque (strapping), como GPIO0, GPIO2 y GPIO15.
    * Usa `Serial.begin(115200)`: el ESP32 suele usar velocidades serie (baud rate) más altas que el Arduino Uno.
  </Accordion>
</div>

<div className="cc card-lavender">
  <Accordion title="Ejemplo: configuración de Arduino a 5 V" icon="microchip" description="Cableado de entrada directa de 5 V y código de ejemplo para placas Arduino">
    ### <Icon icon="toolbox" /> Lo que necesitas:

    * Arduino Uno (o similar)
    * Cable USB-A con los cables de 5 V (rojo) y GND (negro) expuestos
    * Conecta el cable de 5 V a un pin digital del Arduino (o analógico para medir el voltaje)
    * Opcionalmente, usa un divisor de resistencias si es necesario

    ### <Icon icon="circle-check" /> Código de ejemplo sencillo

    Esta versión monitorea la línea USB de 5 V conectada al pin digital 2:

    ```
    const int usbPowerPin = 2;  // USB 5V line connected here
    bool lastState = LOW;

    void setup() {
      pinMode(usbPowerPin, INPUT);
      Serial.begin(9600);
    }

    void loop() {
      bool currentState = digitalRead(usbPowerPin);
      if (currentState != lastState) {
        if (currentState == HIGH) {
          Serial.println("USB Power ON");
          // YOUR ALERT START CODE GOES HERE
        } else {
          Serial.println("USB Power OFF");
          // YOUR ALERT STOP CODE GOES HERE
        }
        lastState = currentState;
      }
      delay(100); // debounce / polling delay
    }
    ```

    ### Cableado

    * **USB 5V (normalmente rojo)** → **Pin 2**
    * **USB GND (normalmente negro)** → **GND del Arduino**

    <Icon icon="triangle-exclamation" /> **Importante**: Asegúrate de que la alimentación USB no supere los 5 V. Si no estás seguro, usa un divisor de voltaje (p. ej., 10 kΩ y 10 kΩ) para reducir el voltaje a la mitad y mídelo con un pin analógico.
  </Accordion>
</div>

## Ejemplos de integraciones DIY

Esta es una lista de ejemplos encontrados en internet para integrar varios dispositivos con Arduino, ESP32, etc. No hemos probado ninguno de estos ejemplos.

<Columns cols={1}>
  <Card title="Integración con Apple HomeKit" icon="apple" color="#E11D48" href="/es/external-alert-devices/diy-integrations/homekit">
    HomeKit nativo en ESP32 o ESP8266
  </Card>

  <Card title="Integración con Google Home" icon="google" color="#EA580C" href="/es/external-alert-devices/diy-integrations/google-home">
    Conexión con Google Home mediante IFTTT, Firebase o MQTT
  </Card>

  <Card title="Integración con Home Assistant" icon="house-signal" color="#16A34A" href="/es/external-alert-devices/diy-integrations/home-assistant">
    Conexión mediante MQTT, HTTP o ESPHome
  </Card>

  <Card title="Relés" icon="toggle-on" color="#059669" href="/es/external-alert-devices/diy-integrations/relays">
    Activa dispositivos de alto voltaje como lámparas, ventiladores o electrodomésticos
  </Card>

  <Card title="Motores" icon="gears" color="#0891B2" href="/es/external-alert-devices/diy-integrations/motors">
    Motores de CC, servomotores y motores paso a paso para robótica y automatización
  </Card>

  <Card title="Solenoides" icon="lock" color="#3B82F6" href="/es/external-alert-devices/diy-integrations/solenoids">
    Cerraduras electromagnéticas o mecanismos de empuje/tracción
  </Card>

  <Card title="Servicios de internet" icon="globe" color="#4F46E5" href="/es/external-alert-devices/diy-integrations/internet-services">
    Activa una solicitud web, IFTTT o una automatización en la nube
  </Card>

  <Card title="Mecanismos controlados por servo" icon="robot" color="#9333EA" href="/es/external-alert-devices/diy-integrations/servo-mechanisms">
    Cajas con cerradura, brazos robóticos, cerraduras de puertas
  </Card>

  <Card title="Domótica (IR, RF)" icon="tower-broadcast" color="#C026D3" href="/es/external-alert-devices/diy-integrations/home-automation-ir-rf">
    Controla el televisor, las luces u otros dispositivos RF/IR
  </Card>

  <Card title="Pantallas LCD/OLED" icon="display" color="#DB2777" href="/es/external-alert-devices/diy-integrations/lcd-oled-displays">
    Muestra texto o gráficos
  </Card>

  <Card title="Sirenas" icon="siren-on" color="#E11D48" href="/es/external-alert-devices/diy-integrations/sirens">
    Activa una sirena para alertas o sistemas de seguridad
  </Card>

  <Card title="Cámaras" icon="camera" color="#EA580C" href="/es/external-alert-devices/diy-integrations/cameras">
    Activa la captura o transmisión de imágenes
  </Card>

  <Card title="Llamadas/mensajes de texto" icon="phone" color="#16A34A" href="/es/external-alert-devices/diy-integrations/phone-calls-texts">
    Envía alertas por SMS con ESP32 y Twilio
  </Card>
</Columns>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.