Ricevere una notifica al rilevamento di un movimento

Ciao! 

in questo post vedremo come ricevere una notifica sul nostro smartphone nel momento in cui un sensore PIR rileverà un movimento.
Tutto questo verrà realizzato in modo molto semplice grazie ad Arduino, alla scheda Wemos (link eBay) e all'app Blynk.

Per prima cosa assembla il circuito come da schema:








Ora, se non l'hai già fatto, scarica l'app Blynk dallo store,
poi con lo smartphone inquadra il QrCode che trovi qui sotto.
Il progetto da me creato si aggiungerà automaticamente alla tua app.



Ora, sempre dall'app Blynk, clicca sul simbolo del dado, poi su Device, infine su WemosD1mini, qui troverai il codice Auth Token che dovrai copiare ed incollare nello sketch che trovi qui sotto.


Oltre al codice Auth dovrai inserire ssid e password della tua rete wifi.


Prima di poter utilizzare lo sketch è necessario scaricare ed installare la libreria che trovi a questo link.
Infine carica il codice nella tua scheda, selezionando come scheda (menu di Arduino, strumenti, scheda) Wemos D1 R2 & mini (se non è presente nel tuo IDE guarda questo articolo)


  1. #define BLYNK_PRINT Serial
  2. #include <ESP8266WiFi.h>
  3. #include <BlynkSimpleEsp8266.h>
  4. // Inserisci il codice Auth Token che trovi nell'App Blynk
  5. // in impostazioni progetto (simbolo dado)
  6. char auth[] = "xxxxxx";
  7. // Inserisci le credenziali della tua rete wifi
  8. // Imposta la password come "" per reti aperte
  9. char ssid[] = "xxxxxx";
  10. char pass[] = "xxxxxx";
  11. // Pin in cui entra il segnale proveniente dal PIR
  12. int PinPir = D5;
  13. bool StatoPir, StatoPirPrec;
  14. void setup()
  15. {
  16.   pinMode (PinPir, INPUT);
  17.   delay(5000);
  18.   Serial.begin(9600);
  19.   Blynk.begin(auth, ssid, pass);
  20. }
  21. void loop()
  22. {
  23.   Blynk.run();
  24.   StatoPirPrec = StatoPir;
  25.   StatoPir = digitalRead (PinPir);
  26.   if ((StatoPirPrec != StatoPir) && (StatoPir == 1))
  27.   {
  28.     Serial.println ("Attivato!");
  29.     Blynk.notify("Attivato!");
  30.   }
  31.   if (StatoPir)
  32.   {
  33.     Serial.println ("1");
  34.   }
  35.   else
  36.   {
  37.     Serial.println ("0");
  38.   }
  39. }

Ora quando la Wemos rileverà un movimento riceverai una notifica sul tuo smartphone.
Solitamente i sensori PIR per Arduino permettono 2 regolazioni, la distanza massima entro la quale rilevano il movimento e il tempo per cui il segnale di movimento rilevato resta alto.
Se hai bisogno di modificare questi 2 parametri ruota i 2 potenziometri presenti sotto al sensore.




Questo è tutto!
Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!

11 commenti:

  1. Complimenti :D continua con i tuoi progetti, ho la tua stessa passione però non sono al tuo livello .

    RispondiElimina
    Risposte
    1. Grazie! Facendo un passo alla volta farai bellissime cose!

      Elimina
  2. Questo commento è stato eliminato dall'autore.

    RispondiElimina
  3. Ciao daniele, ho copiato lo sketch peró quando vado a verificare, mi segnala quasi tutte le righe come errore.
    Come posso risolvere questo problema?grazie in anticipo.

    RispondiElimina
  4. Si certo, adesso l'errore è solo sulla righa 3 BlynkSimpleEsp8266

    RispondiElimina
    Risposte
    1. E' necessario installare, in Arduino, la libreria di Blynk, ho aggiornato il post con il link alla libreria.
      Grazie per la segnalazione.
      Daniele

      Elimina
  5. Daniele, volevo chiederti se è possibile utilizzare questo codice per utilizzarlo con un contatto al posto del sensore pir e se sì con quali modifiche. Poi volevo chiedere come eliminare da Blynk progetti vuoti, ho provato in tutti i modi ma non riesco a cancellarli ne ho da cancellare una decina.Grazie per la tua cortese attenzione e per il lavoro che fai. Buon anno.

    RispondiElimina
  6. ciao mi puoi mandare lo sketch non riesco a copiarlo grazie mille

    RispondiElimina
  7. ciao mi puoi mandare lo sketch non riesco a copiarlo grazie mille

    RispondiElimina
  8. ciao Daniele sono alle prime, ho visto questo sketch interessante ed ho provato a fare qualche esperimento
    per una mia esigenza ho aggiunto al tuo sketch questo modificandolo

    Serial.println ("Allarme Inserito!");
    Blynk.notify("Allarme Inserito!");
    }
    else
    if ((StatoAllarmeInseritoPrec != StatoAllarmeInserito) && (StatoAllarmeInserito == 1))
    {
    Serial.println ("Allarme Spento!");
    Blynk.notify("Allarme Spento!");

    ora chiudendo il pin e riaprendolo dopo meno di 5-6 secondi non arriva la notifica di spento viceversa aprendo il pin
    come posso fare? sto provando ma inutilmente
    la mia idea era quella di prendere in considerazione l'invio notifica solo se il contatto rimaneva aperto o chiuso per almeno 10 secondi altrimenti non inviavo la nuova notifica. Mi aiuteresti

    RispondiElimina

Lascia un commento qui sotto, ti risponderò il prima possibile!

Altri Post