Sommario:

Controllo remoto e sorveglianza fotografica su MQTT: 8 passaggi
Controllo remoto e sorveglianza fotografica su MQTT: 8 passaggi

Video: Controllo remoto e sorveglianza fotografica su MQTT: 8 passaggi

Video: Controllo remoto e sorveglianza fotografica su MQTT: 8 passaggi
Video: Home Assistant - MQTT & Shelly - Apri il Cancello Remoto Ovunque si trovi - Guida completa 2024, Dicembre
Anonim
Controllo remoto e sorveglianza fotografica su MQTT
Controllo remoto e sorveglianza fotografica su MQTT

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

Elenco dei componenti
Elenco dei componenti
Elenco dei componenti
Elenco dei componenti
Elenco dei componenti
Elenco dei componenti
Elenco dei componenti
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

Preparazione della fotocamera
Preparazione della fotocamera
Preparazione della fotocamera
Preparazione della fotocamera
Preparazione della fotocamera
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

Preparazione di Arduino M0-SD compatibile
Preparazione di Arduino M0-SD compatibile
Preparazione di Arduino M0-SD compatibile
Preparazione di Arduino M0-SD compatibile
Preparazione di Arduino M0-SD compatibile
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

Preparazione di 3G/GPRS/GSM/GPS Shield SIM5320
Preparazione di 3G/GPRS/GSM/GPS Shield SIM5320
Preparazione di 3G/GPRS/GSM/GPS Shield SIM5320
Preparazione di 3G/GPRS/GSM/GPS Shield SIM5320
Preparazione di 3G/GPRS/GSM/GPS Shield SIM5320
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

Assemblaggio hardware
Assemblaggio hardware
Assemblaggio hardware
Assemblaggio hardware
Assemblaggio hardware
Assemblaggio 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

Impostazione del broker MQTT
Impostazione del broker MQTT
Impostazione del broker MQTT
Impostazione del broker MQTT
Impostazione del broker MQTT
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:

  1. Registrati online.
  2. Premi il pulsante "Crea nuova istanza".
  3. Imposta il nome, ad esempio "MqttCamera".
  4. Premere il pulsante "Seleziona regione". Ad esempio, seleziona "US-East-1 (Virginia settentrionale)".
  5. Premere il pulsante "Rivedi".
  6. Premi il pulsante "Crea istanza". Visualizza il messaggio "Istanza creata con successo".
  7. Fare clic su "MqttCamera".
  8. Ricorda le informazioni: server, utente, password, porta, chiave API (ne avremo bisogno al settimo e all'ottavo passaggio).
  9. 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

App MQTT Dash
App MQTT Dash
App MQTT Dash
App MQTT Dash
App MQTT Dash
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:

  1. Apri l'applicazione.
  2. Nella finestra del cruscotto MQTT, fare clic su (+) per aggiungere un nuovo pannello di controllo.
  3. 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).
  4. Dopo aver compilato i campi, fare clic sull'icona del dischetto (operazione "Salva").
  5. Nella finestra con l'elenco dei pannelli di controllo, cliccare sulla riga visualizzata "MqttCamera".
  6. Nella finestra del pannello di controllo che si apre, fai clic sull'icona della freccia per caricare le metriche.
  7. Quindi, nella finestra pop-up, fai clic sul pulsante "ISCRIVITI E ATTENDI LA METRICA".
  8. 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".
  9. 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

Programmazione e lavoro
Programmazione e lavoro
Programmazione e lavoro
Programmazione e lavoro
Programmazione e lavoro
Programmazione e lavoro
Programmazione e lavoro
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: