Cuprins:

Telecomandă și supraveghere foto pe MQTT: 8 pași
Telecomandă și supraveghere foto pe MQTT: 8 pași

Video: Telecomandă și supraveghere foto pe MQTT: 8 pași

Video: Telecomandă și supraveghere foto pe MQTT: 8 pași
Video: Пошаговое подключение и настройка поворотной Wi-Fi IP-камеры видеонаблюдения 2024, Noiembrie
Anonim
Telecomandă și supraveghere foto prin MQTT
Telecomandă și supraveghere foto prin MQTT

Buna ziua.

Astăzi aș dori să vorbesc despre cum să realizăm un sistem de control și monitorizare de la distanță care poate fi utilizat, de exemplu, pentru a controla ușile garajului, iluminatul, încălzirea, controlul presiunii, temperatura și mulți alți parametri. Dar principala caracteristică a acestui sistem este că puteți primi de la distanță fotografii de la un obiect la distanță. Înainte de a începe povestea, o scurtă prefață. Odată ce am vrut să fac un sistem de supraveghere foto folosind o placă Arduino M0-SD compatibilă, o cameră VC0706 și un ecran 3G / GPRS / GSM / GPS pentru Arduino. Placa compatibilă Arduino M0-SD a fost aleasă din condițiile în care este foarte ușor de programat (la fel ca Arduino UNO), tensiunea de funcționare este de 3,3 V - acest lucru este foarte convenabil pentru lucrul cu camera VC0706, o cantitate mare de ROM și RAM, mai multe porturi UART, un port virtual separat al USB-ului, dar principalul avantaj este prezența unui conector micro SD direct pe placă (Este foarte convenabil să stocați cantități mari de date, cum ar fi imaginile).

Ecranul 3G / GPRS / GSM / GPS pentru Arduino este foarte convenabil pentru utilizare cu o placă Arduino M0-SD compatibilă. Există mai multe biblioteci pe Internet, precum și multe exemple de lucru cu acest scut. Rata de transfer a datelor (3G) este mult mai mare decât cea a ecranelor convenționale GPRS (convenabil în special pentru transmiterea imaginilor). Disponibilitatea modulului GPS este un avantaj suplimentar.

Am ales un tarif low-cost de la un operator celular pentru transmiterea datelor (fotografiilor) pe internet. Dar a apărut întrebarea: cum să transferați date? MMS? FTP? Cum să primiți o notificare despre primirea datelor (foto)? Drept urmare, am luat decizia de a trimite date (fotografii) pe e-mail și de a vizualiza scrisori prin intermediul aplicației instalate pe un telefon mobil. S-a dovedit a fi foarte convenabil!:-) Proiectul finalizat poate fi vizualizat la acest link.

Există, de asemenea, un proiect similar pentru Arduino UNO ca referință.

Apoi am decis să extind funcționalitatea dispozitivului meu. De exemplu, adăugați capacitatea de a controla LED-urile (deși în realitate posibilitățile sunt mult mai largi). E-mailul pentru acest lucru nu este foarte potrivit. Opțiunea SMS este scumpă și inconfortabilă. Și apoi am aflat despre MQTT. Nu voi descrie ce este. Permiteți-mi să spun doar că acesta este un lucru foarte interesant!:-) Cu ajutorul MQTT, puteți schimba nu numai mesaje, ci și fișiere binare (imagini). În aplicația pentru telefon, puteți crea cu ușurință propria interfață.

Am căutat exemple de implementare a protocolului MQTT pentru ecranul meu 3G / GPRS / GSM / GPS (SIM5320) și, din păcate, nu am găsit implementarea de care aveam nevoie. Dar asta nu m-a lăsat în pace. Am decis să implementez independent funcționalitatea necesară. Drept urmare, am reușit să creez un dispozitiv care este controlat (indicat de trei LED-uri) peste MQTT dintr-o aplicație instalată pe un telefon mobil și, de asemenea, trimite o fotografie către telefon la comandă de pe telefon. (Vă voi spune un secret că nu am mai văzut niciun exemplu de trimitere de imagini prin brokerul MQTT și am făcut-o pentru prima dată. Și când am reușit să transfer prima imagine am fost extrem de fericit!:-)) Și deci, propun să merg direct la primul pas - o listă de componente necesare.

Pasul 1: Lista componentelor

Lista componentelor
Lista componentelor
Lista componentelor
Lista componentelor
Lista componentelor
Lista componentelor
Lista componentelor
Lista componentelor

Avem nevoie de următoarele componente:

1) Compatibil Arduino M0-SD.

2) Cameră TTL VC0706.

3) Scut 3G / GPRS / GSM / GPS pentru Arduino.

4) LED-uri roșii, verzi, galbene, 3 rezistențe (100-500 Ohm), fire, conector unghi pin cu pas de 2,54 mm.

5) Adaptor de alimentare AC-DC (6V 1A), antenă 3G etc.

Pasul 2: Pregătirea camerei

Pregătirea camerei
Pregătirea camerei
Pregătirea camerei
Pregătirea camerei
Pregătirea camerei
Pregătirea camerei

Camera are o ieșire RS-232 pentru conectarea directă la un computer. Este necesar să scoateți MAX232 (convertorul RS-232) și să închideți tampoanele de contact între pinii corespunzători 7-10 (TX), 8-9 (RX).

Cablul cu șase fire furnizat împreună cu camera trebuie redefinit ușor:

  • Scoateți cele două fire din conector.
  • Rearanjați firele roșii (+ 5V) și negre (GND) așa cum se arată în figură.

Pe capetele goale ale firelor trebuie să fie lipite vârfuri precum „femelă”.

Pasul 3: Pregătirea Arduino M0-SD compatibil

Pregătirea Arduino M0-SD compatibil
Pregătirea Arduino M0-SD compatibil
Pregătirea Arduino M0-SD compatibil
Pregătirea Arduino M0-SD compatibil
Pregătirea Arduino M0-SD compatibil
Pregătirea Arduino M0-SD compatibil

După cum sa menționat deja, compatibilul Arduino M0-SD este hardware și software compatibil cu Arduino M0 original, dar are și un conector microSD integrat pentru conectarea unui card de memorie.

Pentru a conecta camera la placa Arduino M0-SD compatibilă de pe placă, este necesar să lipiți conectorul unghiular la bornele TXD, RXD (conectorul X6) așa cum se arată în figură. Acest port se potrivește cu „Serial”.

Sârmele albe (Camera RX) și galbene (Camera TX) de la cameră trebuie conectate la terminalele TXD și RXD (conectorul X6), așa cum se arată în figură.

Pasul 4: Pregătirea dispozitivului 3G / GPRS / GSM / GPS Shield SIM5320

Pregătirea ecranului 3G / GPRS / GSM / GPS SIM5320
Pregătirea ecranului 3G / GPRS / GSM / GPS SIM5320
Pregătirea ecranului 3G / GPRS / GSM / GPS SIM5320
Pregătirea ecranului 3G / GPRS / GSM / GPS SIM5320
Pregătirea ecranului 3G / GPRS / GSM / GPS SIM5320
Pregătirea ecranului 3G / GPRS / GSM / GPS SIM5320

Înainte de a instala o cartelă SIM în slot, trebuie să dezactivați solicitarea codului PIN. Apoi instalați cartela SIM în slotul din partea de jos a plăcii, așa cum se arată în figură. Două jumperi trebuie să fie instalate în poziția RX-1 (D1), TX-0 (D0).

Pasul 5: Asamblare hardware

Asamblare hardware
Asamblare hardware
Asamblare hardware
Asamblare hardware
Asamblare hardware
Asamblare hardware

Asamblarea hardware constă în mai multe operații simple:

  • Pentru a controla LED-urile, trebuie mai întâi să lipiți un design mic de LED-uri și rezistențe cu limitare de curent (100-500 Ohm) așa cum se arată în figură. Acordați atenție polarității LED-urilor - anodul trebuie lipit la rezistențe (+). Pentru a reduce expunerea parazită a LED-urilor, am realizat un ecran negru din carton obișnuit.
  • Conectați LED-urile și camera la o placă Arduino M0-SD compatibilă, așa cum se arată în diagramă. Sursa de alimentare a camerei (fir roșu "+ 5V" și fir negru "GND") trebuie luată de la bornele "+ 5V" și "GND" din slot. De asemenea, puteți utiliza un conector unghiular pentru aceasta.
  • După aceea, conectați ecranul 3G / GPRS / GSM / GPS la placa compatibilă Arduino M0-SD. Nu uitați să conectați o antenă 3G.

Pasul 6: Setarea MQTT Broker

Setarea MQTT Broker
Setarea MQTT Broker
Setarea MQTT Broker
Setarea MQTT Broker
Setarea MQTT Broker
Setarea MQTT Broker

Am ales un www.cloudmqtt.com foarte convenabil și clar ca broker MQTT. Oferă testare gratuită. De asemenea, este posibil să primiți și să trimiteți mesaje direct pe site.

Procedura de configurare este următoarea:

  1. Inregistrare online.
  2. Apăsați butonul „Creați o nouă instanță”.
  3. Setați numele, de exemplu „MqttCamera”.
  4. Apăsați butonul „Selectare regiune”. De exemplu, selectați „SUA-Est-1 (Virginia de Nord)”.
  5. Apăsați butonul „Revizuire”.
  6. Apăsați butonul „Creați o instanță”. Vizualizați mesajul „Instanță creată cu succes”.
  7. Faceți clic pe „MqttCamera”.
  8. Amintiți-vă informații: Server, Utilizator, Parolă, Port, Cheie API (Vom avea nevoie la pașii 7 și 8).
  9. Apoi, puteți merge la fereastra „WEBSOCKET UI”, unde puteți testa și depana, vizualiza și trimite mesaje (Vom avea nevoie de această fereastră în pasul următor).

Pasul 7: aplicația MQTT Dash

Aplicația MQTT Dash
Aplicația MQTT Dash
Aplicația MQTT Dash
Aplicația MQTT Dash
Aplicația MQTT Dash
Aplicația MQTT Dash

Pentru a crea un panou de control pe un telefon mobil, am ales o aplicație MQTT Dash foarte ușor de utilizat și clară.

Instalați aplicația MQTT Dash pe telefon și efectuați următoarele setări:

  1. Deschideți aplicația.
  2. În fereastra de liniuță MQTT, faceți clic pe (+) pentru a adăuga un nou panou de control.
  3. În fereastra care apare, completați câmpurile obligatorii, cum ar fi: Nume (de exemplu, MqttCamera), Adresă, Port, Nume utilizator, Parolă utilizator (Luați date de la pasul 6).
  4. După completarea câmpurilor, faceți clic pe pictograma dischetei (operațiunea „Salvare”).
  5. În fereastra cu lista panourilor de control, faceți clic pe linia apărută „MqttCamera”.
  6. În fereastra panoului de control care se deschide, faceți clic pe pictograma săgeată pentru a încărca valorile.
  7. Apoi, în fereastra pop-up, faceți clic pe butonul „ABONAȚI-VĂ ȘI AȘTEPTAȚI METRICA”.
  8. Pe un computer personal, deschideți un cont într-un broker MQTT (consultați pasul anterior), deschideți fereastra „WEBSOCKET UI”, setați subiectul „valori / schimb” în fereastra „Trimiteți mesaj” și înregistrați textul din atașat fișierul metrics.txt în fereastra „Mesaj”, faceți clic pe butonul „Trimite”.
  9. Așteptați 10 secunde, asigurați-vă că metrica este primită în telefon și că panoul de control este actualizat.

Apoi, puteți continua programarea Arduino M0-SD compatibilă.

Pasul 8: Programare și lucru

Programare și lucru
Programare și lucru
Programare și lucru
Programare și lucru
Programare și lucru
Programare și lucru
Programare și lucru
Programare și lucru

Înainte de a programa Arduino M0-SD compatibil, trebuie să instalați pe computer toate bibliotecile necesare (pubsubclient-master, TinyGSM-master), pe care le-am citat mai jos. Aceste biblioteci au fost ușor modificate pentru a funcționa cu o placă Arduino M0-SD compatibilă, o cameră VC0706 și un ecran 3G / GPRS / GSM / GPS SIM5320.

Trebuie să vă conectați cablul și sursa de alimentare (6V 1A pentru alimentarea ecranului 3G / GPRS / GSM / GPS) la Arduino M0-SD compatibil.

Porniți Arduino IDE. În Arduino IDE trebuie să aleagă: Instrumente-> Placă: Arduino M0 Pro (port USB nativ).

Deschideți schița MqttCamera.ino. Completați câmpurile: Nume utilizator, Parolă utilizator, Cheie API, Port, Server (preluați date de la pasul 6).

Deschideți fereastra Serial Monitor.

Încărcați schița. Nu descriu în detaliu procedura de programare (există suficiente instrucțiuni pe Internet).

După încărcarea cu succes și asamblarea corectă, următoarele informații ar trebui să apară în fereastra Serial Monitor:

Camera VC0706 + Arduino M0 + SIM5320 + MQTT

Camera inițială … versiune: ----------------- VC0703 1.00 Ctrl infr există Senzor definit de utilizator 525 ----------------- succes ! Initializarea modemului … Modem: AT + CGMM SIMCOM_SIM5320E Se așteaptă rețeaua … OK Conectarea la internet OK Conectarea la 3.83.68.228 eșuează Conectarea la 3.83.68.228 OK Ping: 0

Linia „Ping: XX” este un mesaj periodic de la Arduino M0-SD compatibil către server. În locul acestor informații, puteți trimite măsurători ADC, starea de intrare și multe altele.

În aplicația MQTT Dash, faceți clic pe pictogramele becurilor (LED_YELLOW, LED_GREEN, LED_RED) - porniți / opriți. Uită-te în fereastra monitorului serial - ar trebui să existe informații despre așa ceva:

LED_YELLOW Aprins

LED_YELLOW_Off LED_GREEN On LED_GREEN off LED_RED On LED_RED Off

Faceți clic pe pictograma camerei - trimiteți comanda „SHOOT” și așteptați puțin. Următoarele informații ar trebui să apară în fereastra Serial Monitor:

Porniți Shoot!

Poza făcută! creați IMAGE332-j.webp

Și după un timp (5-10 secunde) în fereastra "VEZI IMAGINE" ar trebui să fie afișată fotografia.

Pentru demonstrație, am îndreptat camera VC0706 către LED-uri, astfel încât să le puteți vedea starea după ce le-am schimbat într-un mod arbitrar. Dar într-o utilizare reală, puteți direcționa camera către o cameră, ușă, stradă, poartă, mașină etc. (Desigur, trebuie să țineți cont de cerințele legii). Ca demonstrație, vă prezint câteva capturi de ecran dintr-o telefon mobil, unde sunt afișate stările instalate și actuale ale LED-urilor.

Sper că instrucțiunile mele au fost interesante și utile pentru dvs. Voi fi bucuros de feedback și comentarii. În planurile mele de a-mi dezvolta dispozitivul și de a vă împărtăși noi inovații. Multumesc pentru vizionare!

Recomandat: