Inhoudsopgave:

Afstandsbediening en fotobewaking via MQTT - Ajarnpa
Afstandsbediening en fotobewaking via MQTT - Ajarnpa

Video: Afstandsbediening en fotobewaking via MQTT - Ajarnpa

Video: Afstandsbediening en fotobewaking via MQTT - Ajarnpa
Video: Hoe werkt de bulb stand? (Vraag van de maand) 2024, November
Anonim
Afstandsbediening en fotobewaking via MQTT
Afstandsbediening en fotobewaking via MQTT

Hallo.

Vandaag wil ik het hebben over het maken van een afstandsbedienings- en bewakingssysteem dat bijvoorbeeld kan worden gebruikt om garagedeuren, verlichting, verwarming, drukregeling, temperatuur en vele andere parameters te regelen. Maar het belangrijkste kenmerk van dit systeem is dat u op afstand foto's kunt ontvangen van een object op afstand. Voordat je aan het verhaal begint, een kort voorwoord. Ooit wilde ik een fotobewakingssysteem maken met een compatibel Arduino M0-SD-bord, een VC0706-camera en een 3G/GPRS/GSM/GPS-schild voor Arduino. Het Arduino M0-SD-compatibele bord is gekozen uit de voorwaarden dat het zeer eenvoudig te programmeren is (net als de Arduino UNO), de bedrijfsspanning is 3,3V - dit is erg handig voor het werken met de VC0706-camera, een grote hoeveelheid ROM en RAM, verschillende poorten de UART, een aparte virtuele poort van de USB, maar het belangrijkste voordeel is de aanwezigheid van een micro SD-connector direct op het bord (het is erg handig om grote hoeveelheden gegevens op te slaan, zoals afbeeldingen).

3G/GPRS/GSM/GPS-schild voor Arduino is erg handig voor gebruik met een compatibel Arduino M0-SD-bord. Er zijn verschillende bibliotheken op internet, evenals vele voorbeelden om met dit schild te werken. De gegevensoverdrachtsnelheid (3G) is veel hoger dan die van conventionele GPRS-schilden (vooral handig voor het verzenden van afbeeldingen). Beschikbaarheid van GPS-module is een bijkomend voordeel.

Ik koos een voordelig tarief van een mobiele operator voor gegevensoverdracht (foto's) via internet. Maar de vraag rees: hoe gegevens over te dragen? mms? FTP-en? Hoe een melding krijgen over de ontvangst van gegevens (foto)? Als gevolg hiervan kwam ik tot de beslissing om gegevens (foto's) naar e-mail te sturen en brieven te bekijken via de applicatie die op een mobiele telefoon is geïnstalleerd. Het bleek erg handig te zijn!:-) Het voltooide project kan worden bekeken via deze link.

Er is ook een soortgelijk project voor Arduino UNO ter referentie.

Toen besloot ik de functionaliteit van mijn toestel uit te breiden. Voeg bijvoorbeeld de mogelijkheid toe om LED's aan te sturen (hoewel de mogelijkheden in werkelijkheid veel groter zijn). E-mail hiervoor is niet erg geschikt. SMS-optie is duur en ongemakkelijk. En toen leerde ik over de MQTT. Ik zal niet beschrijven wat hij is. Laat me gewoon zeggen: dit is echt een cool ding!:-) Met behulp van MQTT kun je niet alleen berichten uitwisselen, maar ook binaire bestanden (afbeeldingen). In de applicatie voor de telefoon kun je eenvoudig je eigen interface maken.

Ik zocht naar voorbeelden van implementatie van het MQTT-protocol voor mijn 3G/GPRS/GSM/GPS-schild (SIM5320) en vond helaas niet de implementatie die ik nodig had. Maar dat liet me niet met rust. Ik besloot de benodigde functionaliteit zelfstandig te implementeren. Als gevolg hiervan ben ik erin geslaagd een apparaat te maken dat wordt bestuurd (aangegeven door drie LED's) via MQTT vanuit een applicatie die op een mobiele telefoon is geïnstalleerd, en ook een foto naar de telefoon stuurt op commando vanaf de telefoon. (Ik zal je een geheim vertellen dat ik nog geen voorbeelden heb gezien van het verzenden van afbeeldingen via de MQTT-makelaar en het voor de eerste keer deed. En toen ik erin slaagde de eerste foto over te zetten, was ik enorm blij!:-)) En dus ik stel voor om meteen naar de eerste stap te gaan - een lijst met noodzakelijke componenten.

Stap 1: Lijst met componenten

Lijst met componenten
Lijst met componenten
Lijst met componenten
Lijst met componenten
Lijst met componenten
Lijst met componenten
Lijst met componenten
Lijst met componenten

We hebben de volgende componenten nodig:

1) Arduino M0-SD-compatibel.

2) TTL-camera VC0706.

3) 3G/GPRS/GSM/GPS-schild voor Arduino.

4) Rode, groene, gele LED's, 3 weerstanden (100-500 Ohm), draden, pin-hoekconnector met 2,54 mm pitch.

5) AC-DC voedingsadapter (6V 1A), 3G-antenne, enz.

Stap 2: Voorbereiding van de camera

Voorbereiding van de camera
Voorbereiding van de camera
Voorbereiding van de camera
Voorbereiding van de camera
Voorbereiding van de camera
Voorbereiding van de camera

De camera heeft een RS-232-uitgang voor directe aansluiting op een pc. Het is noodzakelijk om de MAX232 (RS-232-converter) te verwijderen en de contactvlakken tussen de corresponderende pinnen 7-10 (TX), 8-9 (RX) te sluiten.

De zesaderige kabel die bij de camera is geleverd, moet enigszins worden vernieuwd:

  • Verwijder de twee draden van de connector.
  • Herschik de rode (+ 5V) en zwarte (GND) draden zoals weergegeven in de afbeelding.

Op de blote uiteinden van de draden moeten gesoldeerde punten zoals "vrouwelijk" worden gesoldeerd.

Stap 3: Voorbereiding van compatibele Arduino M0-SD

Voorbereiding van compatibele Arduino M0-SD
Voorbereiding van compatibele Arduino M0-SD
Voorbereiding van compatibele Arduino M0-SD
Voorbereiding van compatibele Arduino M0-SD
Voorbereiding van compatibele Arduino M0-SD
Voorbereiding van compatibele Arduino M0-SD

Zoals eerder vermeld, is de compatibele Arduino M0-SD hardware- en softwarecompatibel met de originele Arduino M0, maar heeft hij ook een ingebouwde microSD-connector voor het aansluiten van een geheugenkaart.

Om de camera aan te sluiten op de compatibele Arduino M0-SD op het bord, moet de hoekige connector op de klemmen TXD, RXD (connector X6) worden gesoldeerd, zoals weergegeven in de afbeelding. Deze poort komt overeen met de "Serial".

Witte (Camera RX) en gele (Camera TX) draden van de camera moeten respectievelijk worden aangesloten op de klemmen van de TXD en RXD (connector X6) zoals weergegeven in de afbeelding.

Stap 4: Voorbereiding van 3G/GPRS/GSM/GPS Shield SIM5320

Voorbereiding van 3G/GPRS/GSM/GPS Shield SIM5320
Voorbereiding van 3G/GPRS/GSM/GPS Shield SIM5320
Voorbereiding van 3G/GPRS/GSM/GPS Shield SIM5320
Voorbereiding van 3G/GPRS/GSM/GPS Shield SIM5320
Voorbereiding van 3G/GPRS/GSM/GPS Shield SIM5320
Voorbereiding van 3G/GPRS/GSM/GPS Shield SIM5320

Voordat u een simkaart in de sleuf plaatst, moet u het verzoek om de pincode uitschakelen. Installeer vervolgens de SIM-kaart in de sleuf aan de onderkant van het bord zoals weergegeven in de afbeelding. Er moeten twee jumpers worden geïnstalleerd in de positie RX-1 (D1), TX-0 (D0).

Stap 5: Hardwaremontage

Hardware-assemblage
Hardware-assemblage
Hardware-assemblage
Hardware-assemblage
Hardware-assemblage
Hardware-assemblage

Hardware-assemblage bestaat uit verschillende eenvoudige bewerkingen:

  • Om de LED's aan te sturen, moet u eerst een klein ontwerp van LED's en stroombegrenzende weerstanden (100-500 Ohm) solderen, zoals weergegeven in de afbeelding. Let op de polariteit van de LED's - de anode moet aan de weerstanden (+) worden gesoldeerd. Om de parasitaire blootstelling van de LED's te verminderen, heb ik een zwart scherm gemaakt van gewoon karton.
  • СSluit de LED's en de camera aan op een compatibel Arduino M0-SD-bord zoals weergegeven in het diagram. De voeding van de camera (rode draad "+ 5V" en zwarte draad "GND") moet worden genomen van de "+5V" en de "GND" terminals van de sleuf. U kunt hiervoor ook een hoekverbinder gebruiken.
  • Sluit daarna het 3G/GPRS/GSM/GPS-schild aan op het compatibele Arduino M0-SD-bord. Vergeet niet een 3G-antenne aan te sluiten.

Stap 6: MQTT-makelaar instellen

MQTT-makelaar instellen
MQTT-makelaar instellen
MQTT-makelaar instellen
MQTT-makelaar instellen
MQTT-makelaar instellen
MQTT-makelaar instellen

Ik koos voor een zeer handige en duidelijke www.cloudmqtt.com als MQTT-makelaar. Het biedt gratis testen. Ook is het mogelijk om direct op de site berichten te ontvangen en te versturen.

De instellingsprocedure is als volgt:

  1. Registreer online.
  2. Druk op de knop "Nieuwe instantie maken".
  3. Stel de naam in, bijvoorbeeld "MqttCamera".
  4. Druk op de knop "Regio selecteren". Selecteer bijvoorbeeld "US-East-1 (Northern Virginia)".
  5. Druk op de knop "Bekijken".
  6. Druk op de knop "Instance maken". Bekijk bericht "Instance succesvol aangemaakt".
  7. Klik op "MqttCamera".
  8. Onthoud informatie: server, gebruiker, wachtwoord, poort, API-sleutel (we hebben deze nodig bij de 7e en 8e stap).
  9. Vervolgens kunt u naar het venster "WEBSOCKET UI" gaan, waar u berichten kunt testen en debuggen, bekijken en verzenden (we hebben dit venster in de volgende stap nodig).

Stap 7: MQTT Dash-app

MQTT Dash-app
MQTT Dash-app
MQTT Dash-app
MQTT Dash-app
MQTT Dash-app
MQTT Dash-app

Voor het maken van een controlepaneel in een mobiele telefoon heb ik gekozen voor een zeer gebruiksvriendelijke en overzichtelijke MQTT Dash app.

Installeer de app MQTT Dash op je telefoon en maak de volgende instellingen:

  1. Open de applicatie.
  2. Klik in het MQTT-dashboardvenster op (+) om een nieuw configuratiescherm toe te voegen.
  3. Vul in het venster dat verschijnt de vereiste velden in, zoals: Naam (bijvoorbeeld MqttCamera), Adres, Poort, Gebruikersnaam, Gebruikerswachtwoord (Neem gegevens uit stap 6).
  4. Klik na het invullen van de velden op het diskettepictogram (handeling "Opslaan").
  5. Klik in het venster met de lijst met bedieningspanelen op de verschenen regel " MqttCamera ".
  6. Klik in het geopende configuratiescherm op het pijlpictogram om de statistieken te laden.
  7. Klik vervolgens in het pop-upvenster op de knop "ABONNEER EN WACHT OP DE METRIC".
  8. Open op een pc een account in een MQTT-broker (zie de vorige stap), open het venster " WEBSOCKET UI ", stel het onderwerp "metrics/exchange" in het venster " Send message " in en neem de tekst van de bijgevoegd metrics.txt-bestand in het venster "Bericht", klik op de knop "Verzenden".
  9. Wacht 10 seconden, zorg ervoor dat de metriek in de telefoon wordt ontvangen en dat het configuratiescherm is bijgewerkt.

Vervolgens kunt u doorgaan met het programmeren van compatibele Arduino M0-SD.

Stap 8: Programmeren en werken

Programmeren en werken
Programmeren en werken
Programmeren en werken
Programmeren en werken
Programmeren en werken
Programmeren en werken
Programmeren en werken
Programmeren en werken

Voordat u compatibele Arduino M0-SD programmeert, moet u alle benodigde bibliotheken (pubsubclient-master, TinyGSM-master) op de computer installeren, die ik hieronder heb aangehaald. Deze bibliotheken zijn enigszins aangepast om te werken met een compatibel Arduino M0-SD-bord, een VC0706-camera en een 3G/GPRS/GSM/GPS SIM5320-schild.

U moet uw kabel en voeding (6V 1A voor het voeden van 3G/GPRS/GSM/GPS-schild) aansluiten op de compatibele Arduino M0-SD.

Start Arduino-IDE. In Arduino moet de IDE kiezen: Tools-> Board: Arduino M0 Pro (Native USB Port).

Open de schets MqttCamera.ino. Vul de velden in: Gebruikersnaam, Gebruikerswachtwoord, API-sleutel, Poort, Server (Neem gegevens uit stap 6).

Open het venster Seriële monitor.

Schets uploaden. Ik beschrijf de programmeerprocedure niet in detail (er zijn genoeg instructies op internet).

Na succesvol laden en juiste montage, zou de volgende informatie in het Serial Monitor-venster moeten verschijnen:

VC0706 Camera + Arduino M0 + SIM5320 + MQTT

Camera init… versie: ----------------- VC0703 1.00 Ctrl infr bestaan Door gebruiker gedefinieerde sensor 525 ----------------- succes ! Modem initialiseren… Modem: AT+CGMM SIMCOM_SIM5320E Wachten op netwerk… OK Verbinding maken met internet OK Verbinding maken met 3.83.68.228 mislukt Verbinding maken met 3.83.68.228 OK Ping: 0

De regel " Ping: XX " is een periodiek bericht van de compatibele Arduino M0-SD naar de server. In plaats van deze informatie kunt u ADC-metingen, invoerstatus en meer verzenden.

Klik in de MQTT Dash-app op de pictogrammen van de gloeilampen (LED_YELLOW, LED_GREEN, LED_RED) - aan/uit. Kijk in het venster van de seriële monitor - er zou informatie moeten zijn over zoiets als dit:

LED_YELLOW Aan

LED_YELLOW_Off LED_GREEN Aan LED_GREEN uit LED_RED Aan LED_RED Uit

Klik op het camerapictogram - stuur het commando " SHOOT " en wacht even. De volgende informatie zou moeten verschijnen in het venster Seriële monitor:

Begin met schieten!

Foto gemaakt! create IMAGE332-j.webp

En na een tijdje (5-10 seconden) in het venster " VIEW IMAGE " moet de foto worden weergegeven.

Voor de demonstratie heb ik de VC0706-camera op de LED's gericht, zodat je hun status kunt zien nadat ik ze op een willekeurige manier heb verwisseld. Maar in het echte gebruik kun je de camera richten op een kamer, deur, straat, poort, auto, etc. (Je moet natuurlijk rekening houden met de eisen van de wet). Als demonstratie presenteer ik verschillende screenshots van een mobiele telefoon, waar de geïnstalleerde en actuele status van de LED's worden weergegeven.

Ik hoop dat mijn instructie interessant en nuttig voor je was. Ik zal blij zijn met uw feedback en opmerkingen. In mijn plannen om mijn apparaat te ontwikkelen en nieuwe innovaties met u te delen. Bedankt voor het kijken!

Aanbevolen: