> ## 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.

# Riferimento: esempi USB fai-da-te

Puoi creare i tuoi trigger esterni usando Arduino, ESP32, Raspberry Pi o altro hardware fai-da-te simile. La configurazione deve rispettare i dettagli seguenti:

Il tuo hardware fai-da-te deve:

1. Avere una propria fonte di alimentazione separata da Sidekick, in modo da restare acceso e in funzione in ogni momento per monitorare l'alimentazione in ingresso.
   1. La porta USB A di Sidekick deve essere collegata al tuo hardware, che ne monitorerà l'alimentazione a 5V.
   2. Quando la tua scheda fai-da-te rileva l'alimentazione proveniente dalla porta USB A, puoi eseguire qualsiasi funzione a tua scelta.
   3. Quando la tua scheda fai-da-te rileva che l'alimentazione dalla porta USB A si è interrotta (allarme posticipato/interrotto), puoi eseguire un'altra funzione.
2. Oppure funzionare con USB A, 5V, 1 Ampere o meno, ed eseguire automaticamente le funzioni dedicate all'accensione.
   1. Collega il tuo hardware esterno alla porta USB A di Sidekick.
   2. Se il tuo hardware si connette al WiFi, al Bluetooth o ha altre funzioni di avvio ritardato, dovresti usare solo la prima opzione fai-da-te descritta sopra, per garantire che la funzione di allarme che hai programmato venga eseguita immediatamente.

<div className="cc card-bluebell">
  <Accordion title="Esempio: configurazione ESP32 a 3,3V" icon="microchip" description="Cablaggio con partitore di tensione e codice di esempio per schede ESP32">
    ### <Icon icon="toolbox" /> Cosa ti serve:

    * Scheda ESP32 (come una DevKitC o NodeMCU-ESP32)
    * Cavo USB-A con i fili 5V (rosso) e GND (nero) esposti
    * Due resistenze per il partitore di tensione (es. 10kΩ + 20kΩ → riduce 5V a \~3,3V)
    * Breadboard e cavetti jumper

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

    Filo USB | Collegare a

    Rosso (5V) | Partitore di tensione → GPIO dell'ESP32 (es. GPIO 18)

    Nero (GND) | GND dell'ESP32

    ### Configurazione del partitore di tensione:

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

    Questo riduce in sicurezza 5V a \~3,3V.

    ### <Icon icon="circle-check" /> Codice di esempio (ESP32, lettura digitale)

    ```
    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**:

    * **NON** collegare i 5V direttamente ai pin dell'ESP32: riducili sempre a ≤3,3V.
    * I pin dell'ESP32 sono di solito contrassegnati **GPIO** sulla scheda: puoi sceglierne quasi tutti, ma evita i pin di strapping (come GPIO0, GPIO2, GPIO15).
    * Usa `Serial.begin(115200)`: l'ESP32 usa in genere velocità seriali (baud rate) più alte di Arduino Uno.
  </Accordion>
</div>

<div className="cc card-lavender">
  <Accordion title="Esempio: configurazione Arduino a 5V" icon="microchip" description="Cablaggio con ingresso diretto a 5V e codice di esempio per schede Arduino">
    ### <Icon icon="toolbox" /> Cosa ti serve:

    * Arduino Uno (o simile)
    * Cavo USB-A con i fili 5V (rosso) e GND (nero) esposti
    * Collega il filo 5V a un pin digitale di Arduino (o analogico per misurare la tensione)
    * Facoltativamente, usa un partitore resistivo se necessario

    ### <Icon icon="circle-check" /> Codice di esempio semplice

    Questa versione monitora la linea USB a 5V collegata al pin digitale 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
    }
    ```

    ### Cablaggio

    * **USB 5V (di solito rosso)** → **Pin 2**
    * **USB GND (di solito nero)** → **GND su Arduino**

    <Icon icon="triangle-exclamation" /> **Importante**: assicurati che l'alimentazione USB non superi i 5V. In caso di dubbio, usa un partitore di tensione (es. 10kΩ e 10kΩ) per dimezzare la tensione e misurala con un pin analogico.
  </Accordion>
</div>

## Esempi di integrazioni fai-da-te

Questo è un elenco di esempi trovati online per integrare vari dispositivi con Arduino, ESP32, ecc. Non abbiamo testato nessuno di questi esempi.

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

  <Card title="Integrazione con Google Home" icon="google" color="#EA580C" href="/it/external-alert-devices/diy-integrations/google-home">
    Collegamento a Google Home con IFTTT, Firebase o MQTT
  </Card>

  <Card title="Integrazione con Home Assistant" icon="house-signal" color="#16A34A" href="/it/external-alert-devices/diy-integrations/home-assistant">
    Connessione tramite MQTT, HTTP o ESPHome
  </Card>

  <Card title="Relè" icon="toggle-on" color="#059669" href="/it/external-alert-devices/diy-integrations/relays">
    Attiva dispositivi ad alta tensione come lampade, ventilatori o elettrodomestici
  </Card>

  <Card title="Motori" icon="gears" color="#0891B2" href="/it/external-alert-devices/diy-integrations/motors">
    Motori DC, servomotori e motori passo-passo per robotica e automazione
  </Card>

  <Card title="Solenoidi" icon="lock" color="#3B82F6" href="/it/external-alert-devices/diy-integrations/solenoids">
    Serrature elettromagnetiche o meccanismi push/pull
  </Card>

  <Card title="Servizi Internet" icon="globe" color="#4F46E5" href="/it/external-alert-devices/diy-integrations/internet-services">
    Attiva una richiesta web, IFTTT o un'automazione cloud
  </Card>

  <Card title="Meccanismi controllati da servo" icon="robot" color="#9333EA" href="/it/external-alert-devices/diy-integrations/servo-mechanisms">
    Cassette di sicurezza, bracci robotici, serrature
  </Card>

  <Card title="Domotica (IR, RF)" icon="tower-broadcast" color="#C026D3" href="/it/external-alert-devices/diy-integrations/home-automation-ir-rf">
    Controlla TV, luci o altri dispositivi RF/IR
  </Card>

  <Card title="Display LCD/OLED" icon="display" color="#DB2777" href="/it/external-alert-devices/diy-integrations/lcd-oled-displays">
    Mostra testo o grafica
  </Card>

  <Card title="Sirene" icon="siren-on" color="#E11D48" href="/it/external-alert-devices/diy-integrations/sirens">
    Attiva una sirena per allarmi o sistemi di sicurezza
  </Card>

  <Card title="Fotocamere" icon="camera" color="#EA580C" href="/it/external-alert-devices/diy-integrations/cameras">
    Attiva l'acquisizione o lo streaming di immagini
  </Card>

  <Card title="Chiamate/SMS" icon="phone" color="#16A34A" href="/it/external-alert-devices/diy-integrations/phone-calls-texts">
    Invia allarmi via SMS con ESP32 e Twilio
  </Card>
</Columns>


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