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)
- #define BLYNK_PRINT Serial
- #include <ESP8266WiFi.h>
- #include <BlynkSimpleEsp8266.h>
- // Inserisci il codice Auth Token che trovi nell'App Blynk
- // in impostazioni progetto (simbolo dado)
- char auth[] = "xxxxxx";
- // Inserisci le credenziali della tua rete wifi
- // Imposta la password come "" per reti aperte
- char ssid[] = "xxxxxx";
- char pass[] = "xxxxxx";
- // Pin in cui entra il segnale proveniente dal PIR
- int PinPir = D5;
- bool StatoPir, StatoPirPrec;
- void setup()
- {
- pinMode (PinPir, INPUT);
- delay(5000);
- Serial.begin(9600);
- Blynk.begin(auth, ssid, pass);
- }
- void loop()
- {
- Blynk.run();
- StatoPirPrec = StatoPir;
- StatoPir = digitalRead (PinPir);
- if ((StatoPirPrec != StatoPir) && (StatoPir == 1))
- {
- Serial.println ("Attivato!");
- Blynk.notify("Attivato!");
- }
- if (StatoPir)
- {
- Serial.println ("1");
- }
- else
- {
- Serial.println ("0");
- }
- }
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!
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!
Complimenti :D continua con i tuoi progetti, ho la tua stessa passione però non sono al tuo livello .
RispondiEliminaGrazie! Facendo un passo alla volta farai bellissime cose!
EliminaQuesto commento è stato eliminato dall'autore.
RispondiEliminaCiao daniele, ho copiato lo sketch peró quando vado a verificare, mi segnala quasi tutte le righe come errore.
RispondiEliminaCome posso risolvere questo problema?grazie in anticipo.
Ciao, hai compilato selezionando la scheda esp8266?
EliminaSi certo, adesso l'errore è solo sulla righa 3 BlynkSimpleEsp8266
RispondiEliminaE' necessario installare, in Arduino, la libreria di Blynk, ho aggiornato il post con il link alla libreria.
EliminaGrazie per la segnalazione.
Daniele
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.
RispondiEliminaciao mi puoi mandare lo sketch non riesco a copiarlo grazie mille
RispondiEliminaciao mi puoi mandare lo sketch non riesco a copiarlo grazie mille
RispondiEliminaciao Daniele sono alle prime, ho visto questo sketch interessante ed ho provato a fare qualche esperimento
RispondiEliminaper 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