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

# Référence : exemples USB DIY

Vous pouvez créer vos propres déclencheurs externes à l’aide d’Arduino, d’ESP32, de Raspberry Pi ou d’un autre matériel DIY similaire. La configuration doit respecter les indications ci-dessous :

Votre matériel DIY doit :

1. Soit disposer de sa propre source d’alimentation, distincte du Sidekick, afin d’être allumé et en fonctionnement en permanence pour surveiller l’alimentation entrante.
   1. Le port USB A du Sidekick doit être connecté à votre matériel afin que la présence d’une tension de 5 V soit surveillée.
   2. Lorsque votre carte DIY détecte une alimentation provenant du port USB A, vous pouvez exécuter la fonction de votre choix.
   3. Lorsque votre carte DIY détecte que l’alimentation du port USB A s’est arrêtée (alerte mise en pause ou arrêtée), vous pouvez exécuter une autre fonction.
2. Soit fonctionner sur USB A, 5 V, 1 A ou moins, et exécuter automatiquement les fonctions prévues dès sa mise sous tension.
   1. Branchez votre matériel externe sur le port USB A du Sidekick.
   2. Si votre matériel se connecte au Wi-Fi ou au Bluetooth, ou présente d’autres fonctions de démarrage différé, utilisez uniquement la première option DIY ci-dessus afin de garantir que la fonction d’alerte que vous avez programmée s’exécute immédiatement.

<div className="cc card-bluebell">
  <Accordion title="Exemple : configuration ESP32 3,3 V" icon="microchip" description="Câblage du diviseur de tension et exemple de code pour les cartes ESP32">
    ### <Icon icon="toolbox" /> Ce dont vous avez besoin :

    * Carte ESP32 (par exemple DevKitC ou NodeMCU-ESP32)
    * Câble USB-A avec les fils 5V (rouge) et GND (noir) dénudés
    * Deux résistances pour le diviseur de tension (par ex. 10 kΩ + 20 kΩ → abaisse 5 V à environ 3,3 V)
    * Plaque d’essai et fils de connexion

    ### <Icon icon="plug" /> Câblage

    Fil USB | Connecter à

    Rouge (5V) | Diviseur de tension → GPIO de l’ESP32 (par ex. GPIO 18)

    Noir (GND) | GND de l’ESP32

    ### Montage du diviseur de tension :

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

    Cela abaisse 5 V à environ 3,3 V en toute sécurité.

    ### <Icon icon="circle-check" /> Exemple de code (ESP32, lecture numérique)

    ```
    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" /> **Important** :

    * **Ne connectez PAS** le 5 V directement aux broches de l’ESP32 — abaissez-le toujours à 3,3 V ou moins.
    * Les broches de l’ESP32 sont généralement marquées **GPIO** sur votre carte — vous pouvez choisir la plupart d’entre elles, mais évitez les broches de configuration au démarrage (strapping pins, comme GPIO0, GPIO2, GPIO15).
    * Utilisez `Serial.begin(115200)` — l’ESP32 utilise généralement des débits série plus élevés que l’Arduino Uno.
  </Accordion>
</div>

<div className="cc card-lavender">
  <Accordion title="Exemple : configuration Arduino 5 V" icon="microchip" description="Câblage d’entrée 5 V direct et exemple de code pour les cartes Arduino">
    ### <Icon icon="toolbox" /> Ce dont vous avez besoin :

    * Arduino Uno (ou similaire)
    * Câble USB-A avec les fils 5V (rouge) et GND (noir) dénudés
    * Connectez le fil 5V à une broche numérique de l’Arduino (ou analogique pour mesurer la tension)
    * Utilisez éventuellement un diviseur de tension à résistances si nécessaire

    ### <Icon icon="circle-check" /> Exemple de code simple

    Cette version surveille la ligne USB 5 V connectée à la broche numérique 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
    }
    ```

    ### Câblage

    * **USB 5V (généralement rouge)** → **Broche 2**
    * **USB GND (généralement noir)** → **GND de l’Arduino**

    <Icon icon="triangle-exclamation" /> **Important** : assurez-vous que l’alimentation USB ne dépasse pas 5 V. En cas de doute, utilisez un diviseur de tension (par ex. 10 kΩ et 10 kΩ) pour diviser la tension par deux et mesurez-la avec une broche analogique.
  </Accordion>
</div>

## Exemples d’intégrations DIY

Voici une liste d’exemples trouvés en ligne pour intégrer divers appareils avec Arduino, ESP32, etc. Nous n’avons testé aucun de ces exemples.

<Columns cols={1}>
  <Card title="Intégration Apple HomeKit" icon="apple" color="#E11D48" href="/fr/external-alert-devices/diy-integrations/homekit">
    HomeKit natif sur ESP32 ou ESP8266
  </Card>

  <Card title="Intégration Google Home" icon="google" color="#EA580C" href="/fr/external-alert-devices/diy-integrations/google-home">
    Passerelle vers Google Home avec IFTTT, Firebase ou MQTT
  </Card>

  <Card title="Intégration Home Assistant" icon="house-signal" color="#16A34A" href="/fr/external-alert-devices/diy-integrations/home-assistant">
    Connexion via MQTT, HTTP ou ESPHome
  </Card>

  <Card title="Relais" icon="toggle-on" color="#059669" href="/fr/external-alert-devices/diy-integrations/relays">
    Déclenchez des appareils haute tension comme des lampes, des ventilateurs ou de l’électroménager
  </Card>

  <Card title="Moteurs" icon="gears" color="#0891B2" href="/fr/external-alert-devices/diy-integrations/motors">
    Moteurs CC, servomoteurs et moteurs pas à pas pour la robotique et l’automatisation
  </Card>

  <Card title="Solénoïdes" icon="lock" color="#3B82F6" href="/fr/external-alert-devices/diy-integrations/solenoids">
    Serrure électromagnétique ou mécanismes de poussée/traction
  </Card>

  <Card title="Services Internet" icon="globe" color="#4F46E5" href="/fr/external-alert-devices/diy-integrations/internet-services">
    Déclenchez une requête web, IFTTT ou une automatisation cloud
  </Card>

  <Card title="Mécanismes à servomoteur" icon="robot" color="#9333EA" href="/fr/external-alert-devices/diy-integrations/servo-mechanisms">
    Coffres à serrure, bras robotisés, serrures de porte
  </Card>

  <Card title="Domotique (IR, RF)" icon="tower-broadcast" color="#C026D3" href="/fr/external-alert-devices/diy-integrations/home-automation-ir-rf">
    Contrôlez la télévision, les lumières ou d’autres appareils RF/IR
  </Card>

  <Card title="Écrans LCD/OLED" icon="display" color="#DB2777" href="/fr/external-alert-devices/diy-integrations/lcd-oled-displays">
    Affichez du texte ou des graphiques
  </Card>

  <Card title="Sirènes" icon="siren-on" color="#E11D48" href="/fr/external-alert-devices/diy-integrations/sirens">
    Déclenchez une sirène pour des alertes ou des systèmes de sécurité
  </Card>

  <Card title="Caméras" icon="camera" color="#EA580C" href="/fr/external-alert-devices/diy-integrations/cameras">
    Déclenchez une capture ou diffusez des images
  </Card>

  <Card title="Appels/SMS" icon="phone" color="#16A34A" href="/fr/external-alert-devices/diy-integrations/phone-calls-texts">
    Envoyez des alertes SMS avec un ESP32 et Twilio
  </Card>
</Columns>


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