Nota

Ciao, benvenuto nella Community di Appassionati di SunFounder Raspberry Pi, Arduino e ESP32 su Facebook! Approfondisci Raspberry Pi, Arduino e ESP32 con altri appassionati.

Perché unirsi?

  • Supporto esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.

  • Impara e condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.

  • Anteprime esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e anteprime.

  • Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni festive e omaggi: Partecipa a concorsi e promozioni festive.

👉 Pronto a esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!

Sistema di Sicurezza via IFTTT

Con questo progetto, creiamo un dispositivo di sicurezza che utilizza un sensore PIR per rilevare intrusi o animali randagi che entrano nella tua casa. In caso di violazione, riceverai un avviso via email.

Utilizzeremo Webhooks come servizio fondamentale. Una richiesta POST viene inviata al servizio di IFTTT dall’UNO R4.

Componenti necessari

In questo progetto, abbiamo bisogno dei seguenti componenti.

È sicuramente conveniente acquistare un intero kit, ecco il link:

Nome

ARTICOLI IN QUESTO KIT

LINK

Elite Explorer Kit

300+

Elite Explorer Kit

Puoi anche acquistarli separatamente dai link sottostanti.

INTRODUZIONE COMPONENTI

LINK ACQUISTO

Arduino Uno R4 WiFi

-

Cavi Jumper

ACQUISTA

Modulo Sensore di Movimento PIR

ACQUISTA

Collegamenti

../_images/03-ifttt_pir_bb.png

Schema

../_images/03-ifttt_pir_schematic.png

Configurazione di IFTTT

IFTTT è un servizio gratuito che offre vari metodi per collegare diversi servizi dati tra loro.

Creiamo un Applet che risponde a un webhook (URL personalizzato) inviando dati a IFTTT, che poi ti invierà un’email.

Segui i passaggi seguenti su IFTTT.

  1. Visita IFTTT per accedere o creare un account.

    ../_images/03_ifttt_1.png
  2. Clicca su Create.

    ../_images/03_ifttt_2.png
  3. Aggiungi un evento If This.

    ../_images/03_ifttt_3.png
  4. Cerca Webhooks.

    ../_images/03_ifttt_4.png
  5. Seleziona Receive a web request.

    ../_images/03_ifttt_5.png
  6. Compila il nome dell’evento (es. SecurityWarning) e clicca su Create trigger.

    ../_images/03_ifttt_6.png
  7. Aggiungi un evento Then That.

    ../_images/03_ifttt_7.png
  8. Cerca Email.

    ../_images/03_ifttt_8.png
  9. Scegli Send me an email.

    ../_images/03_ifttt_9.png
  10. Inserisci l”Oggetto e il Corpo, quindi clicca su Create action.

  1. Clicca su Continue per terminare la configurazione.

  1. Regola il nome del titolo se necessario.

  1. Verrai reindirizzato automaticamente alla pagina dei dettagli dell’Applet, dove puoi vedere che l’Applet è attualmente connesso e puoi attivare/disattivare l’interruttore per abilitarlo/disabilitarlo.

  1. Ora che abbiamo creato l’Applet IFTTT, abbiamo anche bisogno della chiave webhooks, che può essere ottenuta da Webhooks Impostazioni per permettere al tuo dispositivo di accedere a IFTTT.

../_images/03_ifttt_14.png
  1. Copia la chiave webhooks in «arduino_secrets.h» e inserisci il tuo SSID e password.

    #define SECRET_SSID "your_ssid"        // your network SSID (name)
    #define SECRET_PASS "your_password"        // your network password (used for WPA, or as a key for WEP)
    #define WEBHOOKS_KEY "your_key"
    

Esegui il codice

Nota

  • Puoi aprire il file 03_ifttt_pir.ino nel percorso elite-explorer-kit-main\iot_project\03_ifttt_pir direttamente.

  • Oppure copia questo codice nell’IDE Arduino.

Nota

Nel codice, SSID e password sono memorizzati in arduino_secrets.h. Prima di caricare questo esempio, devi modificarli con le tue credenziali WiFi. Inoltre, per motivi di sicurezza, assicurati che queste informazioni siano mantenute riservate quando condividi o memorizzi il codice.

Avvertimento

Per evitare che la tua casella di posta venga inondata, ti preghiamo di testare in anticipo il Modulo Sensore di Movimento PIR prima di eseguire il codice per questo progetto.

Come funziona?

  1. Includi le librerie necessarie e i file header:

    • "WiFiS3.h": Utilizzata per gestire le connessioni Wi-Fi.

    • "arduino_secrets.h": Contiene il nome della rete Wi-Fi e la password per proteggere le informazioni sensibili.

  2. Definisci alcune variabili globali e costanti:

    • ssid: Nome della rete Wi-Fi.

    • pass: Password della rete Wi-Fi.

    • status: Stato della connessione Wi-Fi.

    • client: Client utilizzato per comunicare con il server Wi-Fi.

    • server: Indirizzo del server Webhook di IFTTT.

    • event: Nome dell’evento Webhook di IFTTT.

    • webRequestURL: URL costruito per l’invio delle richieste HTTP, incluso il nome dell’evento Webhook e la chiave.

    • pirPin: Pin digitale a cui è collegato il sensore PIR.

    • motionDetected: Variabile flag per monitorare la rilevazione di movimento.

  3. Funzione setup():

    • Inizializza la comunicazione seriale.

    • Verifica la presenza del modulo Wi-Fi e stampa la sua versione firmware.

    • Tenta di connettersi alla rete Wi-Fi, con ritenti in caso di fallimento.

    • Imposta il pin collegato al sensore PIR come input.

  4. Funzione readResponse():

    • Legge i dati di risposta HTTP dal server IFTTT e li stampa sulla console seriale.

  5. Funzione loop():

    • Chiama la funzione readResponse() per leggere i dati di risposta HTTP.

    • Controlla il movimento utilizzando il sensore PIR. Se viene rilevato movimento e non era stato rilevato in precedenza:
      • Stampa «Movimento rilevato!» sulla console.

      • Chiama la funzione triggerIFTTTEvent() per inviare una richiesta HTTP al server IFTTT, attivando l’evento Webhook.

      • Imposta il flag motionDetected su true per indicare che è stato rilevato un movimento.

    • Se non viene rilevato alcun movimento, imposta il flag motionDetected su false.

  6. Funzione triggerIFTTTEvent():

    • Stabilisce una connessione con il server IFTTT.

    • Invia una richiesta HTTP GET, includendo l’URL dell’evento Webhook e altre intestazioni HTTP.

  7. Funzione printWifiStatus():

    • Mostra informazioni sulla rete Wi-Fi connessa, inclusi SSID, indirizzo IP e intensità del segnale (RSSI) sulla console seriale.