Sommario:
- Passaggio 1: requisiti
- Passaggio 2: configurazione
- Passaggio 3: configurazione hardware
- Passaggio 4: configurazione del firmware
- Passaggio 5: sviluppo dell'applicazione Ubidots
- Passaggio 6: configurazioni del dashboard
Video: Come costruire un sistema di rilevamento del movimento con Arduino: 7 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Costruisci un contatore di produzione di movimento e presenza utilizzando un Feather HUZZAH programmato con Arduino e alimentato da Ubidots.
Il rilevamento efficace del movimento fisico e della presenza nelle Smart Home e nella Smart Manufacturing può essere molto utile in applicazioni che vanno dalle soluzioni Ambient Assisted Living (AAL) per anziani o un sistema di conteggio della produzione che alimenta un MES più ampio. Altre applicazioni per il rilevamento del movimento e della presenza includono ma non sono limitate a:
- Automazioni per porte e cancelli
- Sensori di parcheggio per designare posti liberi
- Monitoraggio remoto del livello del serbatoio
- Case e strutture intelligenti per l'illuminazione e la sicurezza
- Rilevamento e conteggio delle unità nelle linee di trasporto
- Rilevamento segni su materiali stampati
- Rilevamento di liquidi all'interno di inclinazioni di cartone, plastica e carta
- Rilevamento della distanza
- Contapersone
Mentre ci sono molte applicazioni per la presenza e il movimento, ci sono altrettanti sensori per raccogliere dati, come sensori capacitivi, induttivi, fotoelettrici e ultrasonici. A seconda dei costi, delle condizioni ambientali e dei requisiti di precisione, è necessario selezionare l'hardware più adatto a un ambiente e ai requisiti dell'applicazione.
Per questo tutorial, ci concentreremo sulla costruzione di un contatore di produzione in tempo reale; l'applicazione conterà ogni unità che passa su un nastro trasportatore. Useremo l'IDE Arduino per programmare un Feather HUZZAH ESP8266, un sensore a ultrasuoni e Ubidots per sviluppare la nostra applicazione e visualizzare il nostro dashboard IoT.
Passaggio 1: requisiti
- Piuma HUZZAH con ESP8266MB7389-100
- Sensore ultrasonico
- Arduino IDE 1.8.2 o successivo
- Account Ubidots -o-Licenza STEM
Passaggio 2: configurazione
- I Configurazione hardware
- II. Configurazione del firmware
- III. Sviluppo di applicazioni Ubidots (eventi, variabili e dashboard)
Passaggio 3: configurazione hardware
Il sensore a ultrasuoni MB7389-100 è un'opzione a basso costo per applicazioni industriali con requisiti di ampio raggio e basso consumo energetico in condizioni meteorologiche difficili grazie alla sua classificazione IPv67.
Per iniziare, rispecchia lo schema qui sotto per collegare il sensore a ultrasuoni al Feather HUZZAH ESP8266.
NOTA: la lettura del sensore può essere presa come letture analogiche o PWM; di seguito spiegheremo la configurazione per la lettura PWM, per ulteriori informazioni vedere gli esempi mostrati sopra.
[Facoltativamente] posizionare il microcontrollore e i sensori all'interno della custodia IP67 per proteggerli da polvere, acqua e altri fattori ambientali minacciosi. La custodia standard è simile a quella mostrata nelle foto sopra.
Passaggio 4: configurazione del firmware
Innanzitutto, dovresti installare Feather Huzzah nell'IDE di Arduino e compilare il codice. Ricordati di verificare questa configurazione eseguendo un semplice test di lampeggio. Per ulteriori informazioni sulla connessione del dispositivo Feather, consulta questa utile guida alla configurazione dell'hardware.
Per inviare i dati del sensore alla piattaforma di sviluppo IoT Ubidots, copia e incolla il codice seguente nell'IDE Arduino. Ricordati di assegnare il nome della rete Wi-Fi, la password e il token del tuo account Ubidots dove indicato nel codice.
/****************************** Biblioteche incluse ************* ****************/#includere /****************************** ** Costanti e oggetti *******************************//* Ubidots */const char* SSID_NAME = "xxxxxxxx"; // Metti qui il tuo SSID nameconst char* SSID_PASS = "xxxxxxxx"; // Inserisci qui la tua passwordconst char* TOKEN = "Assig_your_ubidots_token"; // Metti qui il tuo TOKENconst char* DEVICE_LABEL = "motion-control"; // Il tuo dispositivo labelconst char* VARIABLE_LABEL = "distanza"; // La tua variabile labelconst char* USER_AGENT = "ESP8266";const char* VERSION = "1.0";const char* HTTPSERVER = "industrial.api.ubidots.com";// Ubidots Business users//const char* HTTPSERVER = " cose.ubidots.com"; // Ubidots Educational usersint HTTPPORT = 80;/* Sensore a ultrasuoni */const int pwPin1 = 5; // Il pin PWM a cui è collegato il sensoreWiFiClient clientUbi;/******************************** Funzioni ausiliarie *** *************************//** Ottiene la lunghezza del corpo @arg variabile il corpo di tipo char @return dataLen il lunghezza della variabile*/int dataLen(char* variabile) { uint8_t dataLen = 0; for (int i = 0; i distanza / 25.4 */ float distanza = pulseIn(pwPin1, HIGH); sendToUbidots(DEVICE_LABEL, VARIABLE_LABEL, distanza); delay(1000);}void sendToUbidots(const char* device_label, const char* variabile_label, float valore_sensore) { char* body = (char *) malloc(sizeof(char) * 150); char* data = (char *) malloc(sizeof(char) * 300); /* Spazio per memorizzare i valori da inviare * / char str_val[10]; /*---- Trasforma i valori dei sensori in tipo char -----*/ /* 4 è la larghezza minima, 2 è la precisione; il valore float viene copiato su str_val*/ dtostrf(sensor_value, 4, 2, str_val); /* Costruisce il corpo da inviare nella richiesta*/ sprintf(body, "{"%s\":%s}", variable_label, str_val); /* Costruisce l'HTTP richiesta di essere POST */ sprintf(data, "POST /api/v1.6/devices/%s", device_label); sprintf(data, "%s HTTP/1.1\r\n", data); sprintf(data, "%sHost: things.ubidots.com\r\n", data); sprintf(data, "%sUser-Agent: %s/%s\r\n", data, USER_AGENT, VERSION); sprintf(data, "%sX-Auth-Token: %s\r\n", dati, TOKEN); sprint f(dati, "%sConnessione: chiudi\r\n", dati); sprintf(data, "%sContent-Type: application/json\r\n", data); sprintf(data, "%sContent-Length: %d\r\n\r\n", data, dataLen(body)); sprintf(dati, "%s%s\r\n\r\n", dati, corpo); /* Connessione iniziale */ clientUbi.connect(HTTPSERVER, HTTPPORT); /* Verifica la connessione del client */ if (clientUbi.connect(HTTPSERVER, HTTPPORT)) { Serial.println(F("Invio delle variabili: ")); Serial.println(dati); /* Invia la richiesta HTTP */ clientUbi.print(data); } /* Mentre il client è disponibile legge la risposta del server */ while (clientUbi.available()) { char c = clientUbi.read(); Serial.write(c); } /* Memoria libera */ free(data); libero (corpo); /* Ferma il client */ clientUbi.stop();}
ProTip: puoi verificare se il tuo dispositivo è collegato correttamente aprendo il monitor seriale nell'IDE di Arduino.
Puoi verificare che un dispositivo sia stato creato nel tuo backend Ubidots visualizzandolo nel tuo account Gestione dispositivi -> Dispositivi.
Cliccando sul tuo dispositivo, troverai una variabile chiamata "distanza" dove sono memorizzate le letture del sensore. Questo nome è stato assegnato nel codice che hai appena incollato nell'IDE di Arduino. Se desideri regolare le tue variabili automatiche, fallo modificando la scheda del dispositivo o lampeggiando un codice aggiornato con la nomenclatura delle variabili corretta per la tua applicazione.
Con Feather HUZZAH ESP8266 connesso e che riporta i dati a Ubidots, è ora il momento di creare l'applicazione utilizzando la configurazione dell'applicazione senza codice accuratamente progettata da Ubidots.
Passaggio 5: sviluppo dell'applicazione Ubidots
Configurazione dell'evento Ubidots
Le letture attuali che stiamo inviando a Ubidots sono input di distanza. Per tradurre queste letture nell'output desiderato che vogliamo -unità contate- dovremmo creare un evento seguendo questi passaggi:
- All'interno dell'attuale dispositivo "motion-control" crea una nuova variabile predefinita chiamata "boxes", che riceverà un 1 ogni volta che viene contata una nuova unità.
- Vai a Gestione dispositivo -> Eventi e fai clic sull'icona blu più nell'angolo in alto a destra della pagina per aggiungere un nuovo evento.
- Configura il tuo evento iniziando con "If triggers":
- Seleziona una variabile: "distanza"
- Valore: valore (predefinito)
- È minore o uguale alla [distanza massima prevista} tra il sensore e le scatole che passano * la nostra applicazione richiede 500 mm
- Per 0 minuti
- Salva
4. Una volta che i trigger sono stati configurati secondo le specifiche dell'applicazione, fare clic sull'icona arancione "più" nell'angolo in alto a destra per aggiungere un'azione condizionale.
5. Selezionare "Imposta variabile" come azione.
6. Quindi, scegli la variabile predefinita "caselle" creata in precedenza e il valore "1".
7. Salva le modifiche. Se l'evento è impostato correttamente, invierà un "1" ogni volta che la distanza tra il sensore e l'unità è maggiore di una soglia indicata, il che suggerisce che non c'è nessun oggetto vicino - e dovrebbe contare una nuova unità che è appena passata.
Nella scheda Dispositivo specifico Feather, troverai che la variabile "scatole" in cui viene inviato un "1" ogni volta che viene rilevata la presenza di un'unità.
Particolarmente utile per i nastri trasportatori industriali e il conteggio delle unità, questo prototipo può essere personalizzato per adattarsi a diversi ambienti o hardware semplicemente nella codifica o nello sviluppo delle applicazioni.
8. Visualizza il numero di unità rilevate (o le volte in cui è stato rilevato un oggetto) Ora, utilizzando la variabile "scatole", creeremo una nuova variabile finestra mobile per sommare la quantità totale di letture ricevute dalla variabile "scatole" in uno spam definito (minuti, ore, giorni, settimane, ecc.). Per eseguire questo sviluppo, segui questi semplici passaggi:
Assegna le seguenti credenziali alla tua nuova variabile della finestra mobile
Seleziona un dispositivo: motion-control (o il nome del dispositivo a cui stai inviando i tuoi dati)
Seleziona una variabile: box
Calcola: somma
Ogni: "1" ora (o in base alle richieste dell'applicazione)
Assegna ora un nome alla nuova variabile che indichi il numero di scatole (o movimenti) conteggiate in un'ora, proprio come "scatole/ora" o "unità/ore".
Passaggio 6: configurazioni del dashboard
Infine, crea un dashboard per visualizzare il numero di unità rilevate.
Vai su Gestione dispositivi -> Dashboard e aggiungi un nuovo widget. Questo widget mostrerà la quantità di scatole contate oggi suddivise per ora.
Assegna le seguenti credenziali al tuo nuovo widget per visualizzare il tuo conteggio.
Come vorresti vedere i tuoi dati?: Grafico
Seleziona un tipo di widget: grafico a linee
Aggiungi un dispositivo: controllo del movimento
Aggiungi una variabile: box/ora
Fine. E con questo sviluppo finale della dashboard, la tua applicazione è completa e ora disponi di un sistema di rilevamento di presenza e movimento efficiente ed efficace. Ecco un ultimo sguardo ai nostri risultati.
Consigliato:
Sistema di allarme SMS di rilevamento del movimento fai-da-te: 5 passaggi (con immagini)
Sistema di allarme SMS di rilevamento del movimento fai-da-te: in questo progetto combinerò un sensore di movimento PIR economico con un modulo GSM TC35 per costruire un sistema di allarme che ti invii un "ALLARME INTRUSO" SMS ogni volta che qualcuno cerca di rubare le tue cose. Iniziamo
Robot di Halloween con rilevamento del volto e rilevamento del sorriso: 8 passaggi (con immagini)
Monitoraggio del viso e rilevamento del sorriso Robot di Halloween: Halloween sta arrivando! Abbiamo deciso di costruire qualcosa di interessante. Incontra i robot Ghosty e Skully. Possono seguire il tuo viso e sanno quando sorridi per ridere con te! Questo progetto è un altro esempio dell'utilizzo dell'app iRobbie che converte l'iPhone in
Sistema di allarme di rilevamento del movimento: 11 passaggi (con immagini)
Sistema di allarme di rilevamento del movimento: Nota! Reactive Blocks non è più disponibile per il download. Una fotocamera USB di base può essere utilizzata per rilevare il movimento in una stanza. Nei passaggi seguenti ti mostreremo come puoi utilizzare Reactive Blocks per programmare un'applicazione Java pronta per l'esecuzione che invia SMS
Guardiano V1.0 --- Aggiornamento della telecamera spioncino della porta con Arduino (caratteristiche di registrazione del rilevamento del movimento e scosse elettriche): 5 passaggi
Guardiano V1.0 ||| Aggiornamento della telecamera spioncino della porta con Arduino (funzioni di registrazione del rilevamento del movimento e scosse elettriche): ho ordinato una telecamera spioncino ma quando la uso, mi sono reso conto che non esiste una funzione di registrazione automatica (attivata dal rilevamento del movimento). Poi ho iniziato a indagare su come funziona. Per registrare un video, dovresti 1- tenere premuto il pulsante di accensione per quasi 2 secondi
Presa controllata dal movimento - Da una luce di rilevamento del movimento: 6 passaggi
Presa controllata dal movimento - Da una luce di rilevamento del movimento: Immagina di essere un dolcetto o scherzetto che va nella casa più spaventosa del quartiere. Dopo aver superato tutti i ghoul, i fantasmi e i cimiteri, arrivi finalmente all'ultimo percorso. Puoi vedere le caramelle in una ciotola davanti a te! Ma poi improvvisamente un gho