Sommario:

Sensore di presenza: 12 passaggi
Sensore di presenza: 12 passaggi

Video: Sensore di presenza: 12 passaggi

Video: Sensore di presenza: 12 passaggi
Video: Riparazione e funzionamento di un sensore presenza PIR infrarossi per comando luci con modifica 12v 2024, Dicembre
Anonim
Sensore di presenza
Sensore di presenza

I dispositivi indossabili sono generalmente dispositivi abilitati BLE. È comune per loro pubblicizzare periodicamente alcuni dati lungo il suo indirizzo MAC. Usiamo un ESP per scansionare questi dati e attivare un evento tramite Internet quando trova un indirizzo MAC specifico. Questa particolare implementazione è per un singolo utente su una presa intelligente collegata a una lampada. Ma può anche essere utilizzato con un set di dispositivi registrati con qualsiasi tipo di dispositivo abilitato per IOT.

Forniture

  1. ESP32
  2. (opzionale) Spina a muro WiFi TECKIN S10
  3. Dispositivo abilitato BLE di qualsiasi tipo

Passaggio 1: definisci il tuo scenario

Definisci il tuo scenario
Definisci il tuo scenario

Per il grilletto, potresti usare la maggior parte dei dispositivi indossabili moderni. Questo può essere un Apple Watch, un mi fit band, un telefono o anche il tuo dispositivo indossabile fai-da-te basato su un ESP32.

Probabilmente uno dei passaggi più importanti. Devi pensare in anticipo a 3 cose:

1. Quale dispositivo indossabile o dispositivo sarà l'innesco del sensore di prossimità.

2. Cosa attiverà il sensore (questo viene fatto tramite IFTTT).

3. Quando il sensore sta per attivarsi

Per questo esempio, utilizzerò il mio Apple Watch per attivare una presa intelligente per accendere una lampada quando mi siedo alla scrivania.

In questo tutorial vedremo una presa intelligente di TECKIN. Lo trovi su amazon ad un buon prezzo. È anche compatibile con Alexa e Google Home. Grande valore!

Passaggio 2: (Introduzione) Imposta trigger - Utenti multipli

Se vuoi configurare in modo che funzioni con qualsiasi persona con un dispositivo abilitato BLE abbastanza vicino al tuo sensore, salta il passaggio successivo. Questo è abbastanza utile, è l'impostazione che uso personalmente. Tieni presente che questo sensore può essere facilmente hackerato o sfruttato per innescare, quindi non mi fiderei molto di una pinta di supporto di sicurezza; solo per uno pratico (cioè, non voglio che venga attivato dal mio PC poiché sarà sempre vicino al sensore).

Passaggio 3: (Introduzione) Imposta trigger - Utenti limitati

Questo passaggio varia notevolmente in base alla configurazione. Per limitare quali dispositivi possono attivare il sensore hai molti percorsi da limitare:

- Indirizzo MAC BLE (equivalente all'indirizzo IP su una rete wifi. Il motivo non garantisce la sicurezza poiché non è il vero indirizzo MAC del modulo. Sui dispositivi iOS cambia ogni volta che riavvii il bluetooth, non è così divertente)

- Codice produttore (opzione migliore, ma nessun modo per limitare dispositivi specifici dello stesso produttore/modello)

- Nome, Servizio UIDD (raro ma l'opzione migliore, principalmente dispositivi indossabili fai-da-te o forse un'app Android)

Alcune note:

1. Se si tratta di un dispositivo iOS:

- Hai dei pro e dei contro importanti. Pro, trasmettono il livello di potenza a cui pubblicizzano i dati. Ciò è utile nella fase di calibrazione, scoprirai che l'utilizzo di un Apple Watch è utile poiché trasmette a 24 dB, gli iPhone e la maggior parte dei dispositivi trasmettono a 12 dB.

CON, dovrai trovare soluzioni alternative. L'indirizzo MAC pubblicizzato (il principale metodo di identificazione) cambia ogni volta che il segnale bluetooth viene riavviato, il che significa che dovrai caricare il codice ogni volta… non è divertente. È possibile utilizzare i dati del produttore che possono variare tra i modelli. Ciò significa che puoi limitare in modo che rilevi "tutti gli iPhone 8".

2. Se si tratta di un dispositivo Android:

- Personalmente non ho un dispositivo Android. Ma probabilmente ci sono molte applicazioni che possono correggere l'indirizzo MAC o persino aggiungere un nome personalizzato (se è così che vuoi). Sui dispositivi iOS c'è un'app "nrf connect" che può farlo. Ma non è persistente, il che significa che se si blocca lo schermo o si cambia app… la configurazione si disattiva in un paio di secondi.

3. Un altro ESP32. (la tua migliore scommessa)

- Un semplice codice come questo può essere implementato in un dispositivo come questo; una smart band alimentata da esp32. Il codice è in realtà un esempio della libreria ESP BLE BLE_IBeacon.ino. Non l'ho testato molto dal momento che la mia smart band è in spedizione, probabilmente pubblicherò presto gli aggiornamenti.

Passaggio 4: (Impostazione) - IFTTT

(Impostazione) - IFTTT
(Impostazione) - IFTTT

Ok, quindi in questa fase dovresti probabilmente prendere tutte le decisioni del tuo flusso di lavoro. Hai il tuo dispositivo di attivazione, hai un posto dove mettere l'ESP con una connessione wireless a Internet e hai in mente un'azione che IFTTT può automatizzare.

IFTTT è potente; che si tratti solo di inviare una semplice notifica al tuo dispositivo, che tu voglia inviare un tweet o accendere una lampadina con una presa intelligente. In questo tutorial implementeremo l'ultimo con smart plug TECKIN compatibili con IFTTT. Ad ogni modo, scarica l'app IFTTT o vai sul web IFTTT.com e crea un account.

Questo è tutto per ora!

Se vuoi solo inviare una notifica o qualcos'altro oltre alla presa Smart Life, puoi saltare il passaggio successivo.

Passaggio 5: (Impostazione) Dispositivo IOT *opzionale*

Scarica l'app "Smart Life" dal PlayStore (android) o dall'AppStore (iOS). Le istruzioni sono praticamente semplici, anche se il processo è un po' complicato. Ho scoperto che nella fase di scansione (quando il pulsante blu lampeggiava) si è fermato a un certo punto, quindi l'ho premuto manualmente per accenderlo e spegnerlo un paio di volte. Questo mi ha aiutato. Comunque; la configurazione di questa presa non è diversa dalla nostra applicazione, quindi se ne possiedi già una e l'hai collegata alla tua app dovresti essere pronto per partire.

PRENDERE NOTA: è necessario essere in grado di attivare e disattivare l'interruttore dall'app prima di procedere con questo passaggio. Ciò significa che hai configurato correttamente la presa intelligente.

L'app IFTTT dovrebbe sincronizzarsi perfettamente con l'app "Smart Life", probabilmente richiedendo un'autenticazione durante la creazione di un evento al passaggio successivo.

Passaggio 6: (Impostazione) API Webhook IFTTT *Utenti esperti*

(Impostazione) API Webhook IFTTT *Utenti esperti*
(Impostazione) API Webhook IFTTT *Utenti esperti*

Se non hai utilizzato prima l'app IFTTT e non ti senti a tuo agio con alcuni termini tecnici, salta questo passaggio per la Guida dettagliata (con foto) al passaggio successivo.

1. Crea un nuovo evento.

2. Imposta "this" come API del webhook. Annota il nome che hai impostato per l'evento.

3. Imposta "quello" sul comportamento desiderato. Per la smart plug, cerca smart life e seleziona 'accendi'.

4. Seleziona la tua presa intelligente e premi Fine.

5. Nella schermata iniziale, cerca la scheda "webhook". Dopo averlo premuto, premi "ottieni altro" in basso.

6. Documentazione stampa. Questo ti mostrerà la tua chiave API insieme a un generatore e tester di URL.

7. Usa il generatore di URL con il nome che hai scritto in #2. Copialo e scrivi.

8. Ripetere se si desidera che venga attivato un comportamento quando il sensore di presenza non è più attivo. Nel nostro caso ripeti #3 ma seleziona 'spegni'. Inoltre, al n. 2 il nome dovrebbe essere diverso anche questa volta.

Se hai finito, salta il passaggio successivo.

Passaggio 7: (Impostazione) API Webhook IFTTT *Per principianti con foto*

(Impostazione) API Webhook IFTTT *Per principianti con foto*
(Impostazione) API Webhook IFTTT *Per principianti con foto*
(Impostazione) API Webhook IFTTT *Per principianti con foto*
(Impostazione) API Webhook IFTTT *Per principianti con foto*
(Impostazione) API Webhook IFTTT *Per principianti con foto*
(Impostazione) API Webhook IFTTT *Per principianti con foto*

Guida dettagliata *la guida fotografica dovrebbe essere simile con Android e sul web*

IFTTT è un flusso di lavoro semplice, se "questo accade" allora "questo accade". Devi crearne uno nuovo, 1. sull'app premere "ottieni di più" e verrà visualizzato un elenco.

2. Proprio sotto la barra di ricerca una dice "crea le tue applet da zero", premi il segno più.

3. Premi "questo" segno più

Nel nostro caso "questo" sarà una chiamata API tramite Internet. Una chiamata API è un consulto per un URL, un po' come quando digiti una ricerca su Google e l'URL è google.com/ (una lunga stringa di caratteri). Per creare l'API: (dopo aver premuto "this")

4. Cerca "webhook"

5. Seleziona l'unica opzione

6. Assegna un nome al tuo evento (in questo esempio useremo "Sit"). Scrivi questo nome, molto importante.

7. Premi Crea trigger

Ok! siamo più vicini, ora alla parte "quella". Per questo tutorial imposteremo "quello" per accendere la presa Smart. Ma puoi scegliere qualsiasi cosa da IFTTT. Un buon modo per testare la configurazione è selezionare "notifiche" che invieranno una notifica al telefono ogni volta che il sensore si attiva (o viene chiamata l'API, anche da un browser web: utile per i test!)

8. Premi "quel" segno più

9. Cerca "Smart Life" (o "notifiche")

10. Premi "Accendi" (dovrai ripetere questi passaggi per creare un altro evento da disattivare quando esci)

11. Se entrambe le app e la presa sono configurate correttamente, dovresti vedere la presa nel menu a discesa Quale dispositivo/gruppo.

12. Selezionare Crea azione e quindi finire.

Ora dovresti vedere che l'evento è connesso. Ora dobbiamo ottenere l'URL dell'API. Per questo:

13. Vai alla schermata iniziale di IFTTT

14. Trova la scheda Webhook

15. Seleziona "Ottieni di più"

16. Toccare il pulsante Documentazione. Dovresti vedere una pagina web con la tua chiave.

17. Nei segnaposto "{event}" inserisci il nome del tuo evento (ricorda il punto 6)

18. Vai in fondo alla pagina e tocca "Test It"

Quello che probabilmente dovresti vedere è un banner verde "l'evento è stato attivato" e dovresti vedere se ha funzionato o meno. Nel nostro caso la spina dovrebbe accendersi. Oppure dovresti vedere una notifica se hai deciso di seguire quella strada. Potrebbe volerci un po' di tempo, ma non più di un minuto per vedere se ce l'hai fatta. Ricorda che probabilmente fa distinzione tra maiuscole e minuscole.

19. Infine. Copia l'URL in cui hai sostituito il nome del tuo evento (alle 17) e salvalo in un posto sicuro. Ti servirà presto.

20. Ripeti 1-12. Alle 6 useremo "Stand" questa volta. Alle 10 seleziona invece 'spegni'.

21. Ripeti 13-18 se vuoi, ma puoi farla franca con l'url che hai copiato alle 19, ma ora cambia il luogo in cui hai scritto "Sit" e sostituisci con "Stand". Puoi testarlo su un browser web. Dovrebbe dire "Congratulazioni! Hai attivato l'evento Stand'. Quindi la spina dovrebbe essere spenta.

Passaggio 8: (Codice) Programmazione di ESP32

(Codice) Programmazione di ESP32
(Codice) Programmazione di ESP32

Puoi saltare questo passaggio se ti senti a tuo agio nel caricare gli schizzi dall'IDE di Arduino sulla tua scheda ESP32. Ricorda solo di impostare almeno una partizione di 2 MB per l'app poiché lo schizzo pesa poco più del limite normale di 1,2 MB.

Ci sono molti ottimi tutorial là fuori, eccone alcuni che consiglio:

circuitdigest.com/microcontroller-projects…

Ma comunque, così non sei così perso, analizzerò alcuni punti chiave importanti.

- ESP32 non è una scheda Arduino, ma può ancora essere programmato dall'IDE Arduino. Con un semplice codice Arduino. Tuttavia, dovrai comunque configurare l'IDE per funzionare con ESP32.

- Dovrai installare alcune librerie tramite il 'Gestione schede aggiuntive' nelle preferenze. Questo è l'URL che dovresti incollare:

- (opzionale, può essere d'aiuto) In Strumenti-> Gestisci librerie… -> (trova la libreria esp BLE)

- in Strumenti, ora dovresti avere un lungo elenco di dispositivi ESP, consiglio il modulo di sviluppo ESP32

- (IMPORTANTE) Seleziona (nessuna app Ota 2mb/2mb spifs) nel gestore delle partizioni. Questo passaggio è importante poiché l'app diventa piuttosto pesante come prodotto dell'utilizzo di entrambe le connessioni wifi/http e di uno scanner BLE.

Se hai fatto tutto bene dovresti essere in grado di programmare ESP32. Ora il processo per farlo è simile all'arduino in alcune schede. Collegalo, seleziona la scheda corrispondente, la porta USB e il gioco è fatto. Ma, in molti altri casi dovrai procedere con

Passaggio 9: (Codice) Carica il codice su ESP32

(Codice) Carica il codice su ESP32
(Codice) Carica il codice su ESP32

Ok, se sei qui, significa che hai caricato con successo uno sketch sulla scheda ESP32, preferibilmente lo sketch di blink.ino.

Ora, ecco il codice principale allegato, puoi trovarlo anche nel repository GitHub. Devi sostituire quanto segue:

SSID - Il tuo nome wifi

PSK - La tua password wifi

sit - L'URL con "Sit" dall'API IFTTT che hai scritto in precedenza

stand - L'URL con "Stand" dall'API IFTTT che hai scritto in precedenza

Ora avvicina il tuo dispositivo di attivazione alla scheda e quindi carica il codice. Quindi aprire il monitor seriale (baud 115200) dopo aver caricato correttamente il codice.

Se prevedi di utilizzarlo con qualsiasi tipo di dispositivo abilitato BLE, salta il passaggio successivo.

NOTA: se ricevi messaggi di errore di memoria è perché le impostazioni predefinite lasciano solo 1 mB di memoria (dei 4 mB presenti) per il codice grezzo ESP. Lascia una parte per un paio di cose come opzione da programmare via etere. Di solito faccio quanto segue:

- in Strumenti, ora dovresti avere un lungo elenco di dispositivi ESP, consiglio ESP32 dev module-Seleziona "no Ota 2mb app/2mb spifs" in partition manager.

Questo mi dà il doppio dello spazio di memoria, necessario per questa applicazione.

Passaggio 10: (Codice) Carica il codice su ESP32 *opzionale*

(Codice) Carica il codice su ESP32 *opzionale*
(Codice) Carica il codice su ESP32 *opzionale*

Ecco la parte difficile menzionata nel passaggio "Imposta il trigger". Il monitor emetterà l'indirizzo MAC (dovrebbe essere simile a ##:##:##:##:## dove # è un numero o una lettera da a ad f), il codice del produttore e l'RSSI (un numero negativo). Qui devi giocare un po' per scoprire qual è il tuo dispositivo. Di solito lo metto vicino alla lavagna così posso vedere chiaramente qual è il numero più piccolo. Deseleziona la casella "scorrimento automatico" in modo da poter copiare i valori.

  • Se è l'indirizzo Mac, riempilo con "myDevice". Quindi decommenta la riga #96 e commenta la riga #95
  • Se è il nome, riempilo con 'myDevice'. Quindi decommenta la riga #97 e commenta la riga #95
  • Se è il MaufactureData che sei sfortunato per ora, sto ancora sviluppando quella parte.

Per aggiungere il supporto per molti dispositivi dovresti essere in grado di copiare l'istruzione condizionale al #96 o al #97 e posizionarli uno accanto all'altro in questa sintassi:

if((condizione1) || (condizione2) || (condizione3)){

Aggiungi più variabili (myDevice1, myDevice2, myDevice3) di conseguenza.

Passaggio 11: posizionare l'ESP e calibrare

Posiziona l'ESP e calibra
Posiziona l'ESP e calibra

Questa è la parte più importante della configurazione. Attraversare attentamente questo processo farà la differenza nel fatto che funzioni come per magia o semplicemente ti provochi forti mal di testa.

A questo punto il codice che hai caricato funziona con i parametri che ho testato personalmente e che uso quotidianamente con il telefono sulla scrivania; non significa che funzionerà anche per te. Quindi devi fare la calibrazione da solo.

1. Posiziona la scheda ESP32 nella sua posizione FISSA finale. Se sposti per qualche motivo la posizione del tuo ESP32, probabilmente dovresti farlo di nuovo. Questo ti garantirà una buona esperienza nel complesso.

1. (extra) tieni presente che dovrai essere in grado di connetterti al tuo PC mentre lo fai. Se non puoi perché sei su un desktop, dovrai fare prove ed errori tenendo presente che ogni prova deve essere quasi identica nel posizionamento, nel dispositivo di attivazione e in altri fattori che possono entrare in gioco.

2. Aprire Serial Monitor con il codice in esecuzione.

Il codice per impostazione predefinita invierà attraverso il monitor seriale l'RSSI (indicazione della potenza del segnale ricevuto) di ciascun dispositivo bluetooth trovato (o solo dei dispositivi che corrispondono ai tuoi parametri). Gioca un po' con il tuo dispositivo principale di azione (dispositivo di attivazione). Devi determinare quali sono le soglie che desideri utilizzare. La regolazione attenta di questa configurazione sarà

3. Quando si determinano le soglie, sostituirle qui:

  • near_thrsh
  • far_thrsh

4. Ricarica il codice, prova e ripeti finché non trovi le prestazioni ottimali.

Poche cose da considerare:

1. Vuoi circa 20 dB di differenza tra le soglie. Se near_thrsh è impostato su 50, allora si desidera che far_thrsh sia 70 o più. Se la differenza è troppo breve, potresti trovare alcune distanze o punti in cui la scheda si attiva e si spegne senza sosta. Aumentare questa differenza ti assicurerà di evitare questo comportamento indesiderato. Personalmente ho scoperto che 20 dB di margine sono sufficienti.

2. In caso di test di calibrazione in scenari di vita reale, per quanto possibile, questo aiuterà a determinare le migliori prestazioni.

3. Studia la classe alla riga 82 del codice; qui è dove tutta la logica è fatta. Il codice è comunque ben commentato. Sentiti libero di chiedere a GitHub!

Passaggio 12: congratulazioni! Hai fatto

Fatemi sapere nei commenti di eventuali suggerimenti o se si verificano problemi. Ricordati di controllare GitHub se il tuo problema è già stato risolto!

Consigliato: