Sommario:
- Passaggio 1: elenco dei componenti
- Passaggio 2: preparazione della fotocamera
- Passaggio 3: preparazione di Arduino M0-SD compatibile
- Passaggio 4: preparazione di 3G/GPRS/GSM/GPS Shield SIM5320
- Passaggio 5: assemblaggio dell'hardware
- Passaggio 6: impostazione del broker MQTT
- Passaggio 7: App MQTT Dash
- Passaggio 8: programmazione e lavoro
Video: Controllo remoto e sorveglianza fotografica su MQTT: 8 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Ciao.
Oggi vorrei parlarvi di come realizzare un sistema di controllo e monitoraggio a distanza che possa essere utilizzato, ad esempio, per controllare porte da garage, illuminazione, riscaldamento, controllo pressione, temperatura e molti altri parametri. Ma la caratteristica principale di questo sistema è che puoi ricevere foto da remoto da un oggetto remoto. Prima di iniziare la storia, una breve prefazione. Una volta volevo realizzare un sistema di videosorveglianza utilizzando una scheda Arduino M0-SD compatibile, una fotocamera VC0706 e uno shield 3G/GPRS/GSM/GPS per Arduino. La scheda compatibile Arduino M0-SD è stata scelta dalle condizioni che è molto facile da programmare (proprio come l'Arduino UNO), la tensione operativa è di 3,3 V - questo è molto conveniente per lavorare con la fotocamera VC0706, una grande quantità di ROM e RAM, diverse porte la UART, una porta virtuale separata dalla USB, ma il vantaggio principale è la presenza di un connettore micro SD direttamente sulla scheda (è molto comodo memorizzare grandi quantità di dati, come le immagini).
Lo shield 3G/GPRS/GSM/GPS per Arduino è molto comodo da usare con una scheda Arduino M0-SD compatibile. Ci sono diverse librerie su Internet, così come molti esempi per lavorare con questo scudo. La velocità di trasferimento dati (3G) è molto superiore a quella degli schermi GPRS convenzionali (particolarmente conveniente per la trasmissione di immagini). La disponibilità del modulo GPS è un ulteriore vantaggio.
Ho scelto una tariffa a basso costo di un operatore cellulare per la trasmissione di dati (foto) su Internet. Ma sorgeva la domanda: come trasferire i dati? MMS? FTP? Come ricevere una notifica sulla ricezione dei dati (foto)? Di conseguenza, sono arrivato alla decisione di inviare dati (foto) a e-mail e visualizzare le lettere tramite l'applicazione installata su un telefono cellulare. Si è rivelato molto conveniente!:-) Il progetto finito è visionabile a questo link.
C'è anche un progetto simile per Arduino UNO per riferimento.
Poi ho deciso di espandere le funzionalità del mio dispositivo. Ad esempio, aggiungi la possibilità di controllare i LED (anche se in realtà le possibilità sono molto più ampie). La posta elettronica per questo non è molto adatta. L'opzione SMS è costosa e scomoda. E poi ho saputo dell'MQTT. Non descriverò cosa è. Lasciami solo dire: questa è una cosa davvero fantastica!:-) Con l'aiuto di MQTT, puoi scambiare non solo messaggi, ma anche file binari (immagini). Nell'applicazione per il telefono, puoi facilmente creare la tua interfaccia.
Ho cercato esempi di implementazione del protocollo MQTT per il mio shield 3G/GPRS/GSM/GPS (SIM5320) e, purtroppo, non ho trovato l'implementazione di cui avevo bisogno. Ma questo non mi ha lasciato solo. Ho deciso di implementare autonomamente le funzionalità necessarie. Di conseguenza, sono riuscito a creare un dispositivo che è controllato (indicato da tre LED) su MQTT da un'applicazione installata su un telefono cellulare e invia anche una foto al telefono su comando dal telefono. (Ti dirò un segreto che non ho mai visto nessun esempio di invio di immagini tramite il broker MQTT prima e l'ho fatto per la prima volta. E quando sono riuscito a trasferire la prima immagine sono stato immensamente felice!:-)) E quindi, propongo di andare direttamente al primo passo: un elenco di componenti necessari.
Passaggio 1: elenco dei componenti
Abbiamo bisogno dei prossimi componenti:
1) Compatibile con Arduino M0-SD.
2) Telecamera TTL VC0706.
3) Scudo 3G/GPRS/GSM/GPS per Arduino.
4) LED rosso, verde, giallo, 3 resistenze (100-500 Ohm), fili, connettore ad angolo di pin con passo 2,54 mm.
5) Adattatore di alimentazione AC-DC (6V 1A), antenna 3G, ecc.
Passaggio 2: preparazione della fotocamera
La telecamera dispone di un'uscita RS-232 per il collegamento diretto a un PC. È necessario rimuovere il MAX232 (convertitore RS-232) e chiudere le piazzole di contatto tra i corrispondenti pin 7-10 (TX), 8-9 (RX).
Il cavo a sei fili fornito con la fotocamera deve essere leggermente rifatto:
- Rimuovere i due fili dal connettore.
- Riorganizzare i fili rosso (+ 5V) e nero (GND) come mostrato in figura.
Sulle estremità nude dei fili devono essere saldate punte come "femmina".
Passaggio 3: preparazione di Arduino M0-SD compatibile
Come già accennato, l'Arduino M0-SD compatibile è hardware e software compatibile con l'Arduino M0 originale, ma ha anche un connettore microSD a bordo per il collegamento di una scheda di memoria.
Per collegare la telecamera alla scheda Arduino M0-SD compatibile è necessario saldare il connettore angolare ai morsetti TXD, RXD (connettore X6) come mostrato in figura. Questa porta corrisponde alla "Seriale".
I fili bianco (Camera RX) e giallo (Camera TX) della telecamera devono essere collegati rispettivamente ai terminali del TXD e dell'RXD (connettore X6) come mostrato in figura.
Passaggio 4: preparazione di 3G/GPRS/GSM/GPS Shield SIM5320
Prima di installare una scheda SIM nello slot, è necessario disabilitare la richiesta del codice PIN. Quindi installare la scheda SIM nello slot sul lato inferiore della scheda come mostrato in figura. Devono essere installati due ponticelli nella posizione RX-1 (D1), TX-0 (D0).
Passaggio 5: assemblaggio dell'hardware
L'assemblaggio dell'hardware consiste in diverse semplici operazioni:
- Per controllare i LED, devi prima saldare un piccolo disegno di LED e resistori di limitazione di corrente (100-500 Ohm) come mostrato nella figura. Prestare attenzione alla polarità dei LED: l'anodo deve essere saldato ai resistori (+). Per ridurre l'esposizione parassitaria dei LED, ho realizzato uno schermo nero con un normale cartone.
- Collega i LED e la fotocamera a una scheda Arduino M0-SD compatibile come mostrato nello schema. L'alimentazione della telecamera (filo rosso "+ 5V" e filo nero "GND") deve essere prelevata dai terminali "+5V" e "GND" dallo slot. Puoi anche usare un connettore ad angolo per questo.
- Successivamente, collega lo shield 3G/GPRS/GSM/GPS alla scheda Arduino M0-SD compatibile. Non dimenticare di collegare un'antenna 3G.
Passaggio 6: impostazione del broker MQTT
Ho scelto un www.cloudmqtt.com molto comodo e chiaro come broker MQTT. Fornisce test gratuiti. È anche possibile ricevere e inviare messaggi direttamente sul sito.
La procedura di installazione è la seguente:
- Registrati online.
- Premi il pulsante "Crea nuova istanza".
- Imposta il nome, ad esempio "MqttCamera".
- Premere il pulsante "Seleziona regione". Ad esempio, seleziona "US-East-1 (Virginia settentrionale)".
- Premere il pulsante "Rivedi".
- Premi il pulsante "Crea istanza". Visualizza il messaggio "Istanza creata con successo".
- Fare clic su "MqttCamera".
- Ricorda le informazioni: server, utente, password, porta, chiave API (ne avremo bisogno al settimo e all'ottavo passaggio).
- Quindi puoi andare alla finestra "WEBSOCKET UI", dove puoi testare ed eseguire il debug, visualizzare e inviare messaggi (avremo bisogno di questa finestra nel passaggio successivo).
Passaggio 7: App MQTT Dash
Per creare un pannello di controllo in un telefono cellulare, ho scelto un'app MQTT Dash molto intuitiva e chiara.
Installa l'app MQTT Dash sul tuo telefono e configura le seguenti impostazioni:
- Apri l'applicazione.
- Nella finestra del cruscotto MQTT, fare clic su (+) per aggiungere un nuovo pannello di controllo.
- Nella finestra che appare, compila i campi richiesti, come: Nome (ad esempio, MqttCamera), Indirizzo, Porta, Nome utente, Password utente (Prendi i dati dal passaggio 6).
- Dopo aver compilato i campi, fare clic sull'icona del dischetto (operazione "Salva").
- Nella finestra con l'elenco dei pannelli di controllo, cliccare sulla riga visualizzata "MqttCamera".
- Nella finestra del pannello di controllo che si apre, fai clic sull'icona della freccia per caricare le metriche.
- Quindi, nella finestra pop-up, fai clic sul pulsante "ISCRIVITI E ATTENDI LA METRICA".
- Su un personal computer, apri un account in un broker MQTT (vedi il passaggio precedente), apri la finestra "WEBSOCKET UI", imposta l'argomento "metriche/scambio" nella finestra "Invia messaggio" e registra il testo dal file metrics.txt allegato nella finestra "Messaggio", fare clic sul pulsante "Invia".
- Attendi 10 secondi, assicurati che la metrica sia ricevuta nel telefono e che il pannello di controllo sia aggiornato.
Quindi puoi procedere alla programmazione di Arduino M0-SD compatibile.
Passaggio 8: programmazione e lavoro
Prima di programmare Arduino M0-SD compatibile, è necessario installare sul computer tutte le librerie necessarie (pubsubclient-master, TinyGSM-master), che ho citato di seguito. Queste librerie sono state leggermente modificate per funzionare con una scheda Arduino M0-SD compatibile, una fotocamera VC0706 e uno shield 3G/GPRS/GSM/GPS SIM5320.
È necessario collegare il cavo e l'alimentatore (6V 1A per alimentare lo shield 3G/GPRS/GSM/GPS) all'Arduino M0-SD compatibile.
Avvia Arduino IDE. In Arduino l'IDE deve scegliere: Strumenti-> Scheda: Arduino M0 Pro (porta USB nativa).
Apri lo schizzo MqttCamera.ino. Compila i campi: Nome utente, Password utente, Chiave API, Porta, Server (Prendi i dati dal passaggio 6).
Apri la finestra Monitor seriale.
Carica schizzo. Non descrivo in dettaglio la procedura di programmazione (ci sono abbastanza istruzioni su Internet).
Dopo il corretto caricamento e il corretto assemblaggio, nella finestra Serial Monitor dovrebbero apparire le seguenti informazioni:
VC0706 Fotocamera + Arduino M0 + SIM5320 + MQTT
Camera init… version: ----------------- VC0703 1.00 Ctrl infr esiste Sensore definito dall'utente 525 ----------------- success ! Inizializzazione modem… Modem: AT+CGMM SIMCOM_SIM5320E In attesa di rete… OK Connessione a Internet OK Connessione a 3.83.68.228 fallita Connessione a 3.83.68.228 OK Ping: 0
La riga " Ping: XX " è un messaggio periodico dall'Arduino M0-SD compatibile al server. Invece di queste informazioni, puoi inviare misurazioni ADC, stato di input e altro.
Nell'app MQTT Dash, clicca sulle icone delle lampadine (LED_YELLOW, LED_GREEN, LED_RED) - accendi/spegni. Guarda nella finestra del monitor seriale: dovrebbero esserci informazioni su qualcosa del genere:
LED_GIALLO Acceso
LED_YELLOW_Off LED_GREEN On LED_GREEN off LED_RED On LED_RED Off
Fare clic sull'icona della fotocamera - inviare il comando "SHOOT" e attendere un po'. Le seguenti informazioni dovrebbero apparire nella finestra Monitor seriale:
Inizia a sparare!
Foto scattata! crea IMAGE332-j.webp
E dopo un po' (5-10 secondi) nella finestra "VISUALIZZA IMMAGINE" dovrebbe essere visualizzata la foto.
Per la dimostrazione, ho indirizzato la telecamera VC0706 ai LED in modo che possiate vedere il loro stato dopo che li ho commutati in modo arbitrario. Ma nell'uso reale, puoi dirigere la telecamera verso una stanza, una porta, una strada, un cancello, un'auto, ecc. (Naturalmente, devi tenere conto dei requisiti della legge). Come dimostrazione, presento diversi screenshot di un telefono cellulare, dove vengono visualizzati gli stati installati e attuali dei LED.
Spero che la mia istruzione sia stata interessante e utile per te. Sarò lieto di ricevere feedback e commenti. Nei miei piani per sviluppare il mio dispositivo e condividere con voi nuove innovazioni. Grazie per la visione!
Consigliato:
Telecamera IP utilizzando il Raspberry Pi Zero (sorveglianza domestica parte 1): 5 passaggi
Telecamera IP che utilizza il Raspberry Pi Zero (Sorveglianza domestica parte 1): questo è il primo post di una nuova miniserie, in cui costruiamo un sistema di sorveglianza domestica, principalmente utilizzando Raspberry Pi. In questo post, utilizziamo un Raspberry PI zero e creiamo una telecamera IP che trasmette video in streaming su RTSP. Il video in uscita è di un q molto più alto
Robot di sorveglianza semplice con ESP32-CAM: 4 passaggi
Robot di sorveglianza semplice con ESP32-CAM: il modulo ESP32-CAM è un modulo economico ea basso consumo energetico, ma fornisce molte risorse per la visione, la comunicazione seriale e i GPIO. In questo progetto, cerco di utilizzare la risorsa del modulo ESP32-CAM per realizzare un semplice robot rc di sorveglianza che può p
Opzioni NVR per il sistema di sorveglianza domestica fai da te: 3 passaggi
Opzioni NVR per il sistema di sorveglianza domestica fai da te: nella parte 3 di questa serie, valutiamo le opzioni NVR sia per il Raspberry Pi che per un PC Windows. Testiamo il sistema operativo MotionEye sul Raspberry Pi 3 e poi esaminiamo iSpy, che è una soluzione leader, open source, di videosorveglianza e sicurezza
Scatola luminosa fotografica con controllo del colore: 5 passaggi
Lightbox fotografico con controllo del colore: un lightbox è un dispositivo utilizzato in fotografia per controllare quanto sia bianca la luce che cade su un oggetto. La maggior parte dei piani lightbox che ho visto su Internet si basa sulla luce naturale o sull'illuminazione artificiale bianca come lampadine, lampade fluorescenti e
Robusto robot di sorveglianza del telaio con monitoraggio remoto: 7 passaggi (con immagini)
Bot di sorveglianza del telaio con monitoraggio remoto robusto: Introduzione: questo era un progetto che inizialmente volevo iniziare e completare nel 2016, tuttavia a causa del lavoro e di una miriade di altre cose sono stato appena in grado di avviare e completare questo progetto nel nuovo anno 2018! Ci sono voluti circa 3 settimane