Inhaltsverzeichnis:

Fernbedienung und Fotoüberwachung über MQTT - Gunook
Fernbedienung und Fotoüberwachung über MQTT - Gunook

Video: Fernbedienung und Fotoüberwachung über MQTT - Gunook

Video: Fernbedienung und Fotoüberwachung über MQTT - Gunook
Video: Fremdhardware in Homematic integrieren - Diese Möglichkeiten hast Du! | verdrahtet.info [4K] 2024, November
Anonim
Fernsteuerung und Fotoüberwachung über MQTT
Fernsteuerung und Fotoüberwachung über MQTT

Hallo.

Heute möchte ich darüber sprechen, wie man ein Fernsteuerungs- und Überwachungssystem baut, mit dem beispielsweise Garagentore, Beleuchtung, Heizung, Druckregelung, Temperatur und viele andere Parameter gesteuert werden können. Das Hauptmerkmal dieses Systems ist jedoch, dass Sie Fotos von einem entfernten Objekt aus der Ferne empfangen können. Bevor Sie mit der Geschichte beginnen, ein kurzes Vorwort. Einmal wollte ich ein Fotoüberwachungssystem mit einem kompatiblen Arduino M0-SD-Board, einer VC0706-Kamera und einem 3G / GPRS / GSM / GPS-Schild für Arduino erstellen. Das Arduino M0-SD-kompatible Board wurde aus den Gründen ausgewählt, dass es sehr einfach zu programmieren ist (genau wie das Arduino UNO), die Betriebsspannung beträgt 3,3 V - dies ist sehr praktisch für die Arbeit mit der VC0706-Kamera, eine große Menge an ROM und RAM, mehrere Ports der UART, ein separater virtueller Port des USB, aber der Hauptvorteil ist das Vorhandensein eines Micro-SD-Anschlusses direkt auf der Platine (es ist sehr praktisch, große Datenmengen wie Bilder zu speichern).

Das 3G/GPRS/GSM/GPS-Shield für Arduino ist sehr praktisch für die Verwendung mit einem kompatiblen Arduino M0-SD-Board. Es gibt mehrere Bibliotheken im Internet sowie viele Beispiele für die Arbeit mit diesem Schild. Die Datenübertragungsrate (3G) ist viel höher als bei herkömmlichen GPRS-Schilden (besonders praktisch für die Übertragung von Bildern). Die Verfügbarkeit des GPS-Moduls ist ein zusätzlicher Vorteil.

Ich habe mich für einen günstigen Tarif eines Mobilfunkanbieters für die Datenübertragung (Fotos) über das Internet entschieden. Aber es stellte sich die Frage: Wie überträgt man Daten? MMS? FTP? Wie erhalte ich eine Benachrichtigung über den Erhalt von Daten (Foto)? Als Ergebnis kam ich zu der Entscheidung, Daten (Fotos) per E-Mail zu senden und Briefe über die auf einem Mobiltelefon installierte Anwendung anzuzeigen. Es stellte sich als sehr bequem heraus!:-) Das fertige Projekt kann unter diesem Link eingesehen werden.

Es gibt auch ein ähnliches Projekt für Arduino UNO als Referenz.

Dann habe ich beschlossen, die Funktionalität meines Geräts zu erweitern. Fügen Sie beispielsweise die Möglichkeit hinzu, LEDs zu steuern (obwohl die Möglichkeiten in Wirklichkeit viel größer sind). E-Mail dafür ist nicht sehr geeignet. Die SMS-Option ist teuer und unbequem. Und dann erfuhr ich von MQTT. Ich werde nicht beschreiben, was er ist. Lassen Sie mich nur sagen: Das ist eine wirklich coole Sache!:-) Mit Hilfe von MQTT können Sie nicht nur Nachrichten, sondern auch Binärdateien (Bilder) austauschen. In der Anwendung für das Telefon können Sie ganz einfach Ihre eigene Oberfläche erstellen.

Ich habe nach Beispielen für die Implementierung des MQTT-Protokolls für mein 3G/GPRS/GSM/GPS-Shield (SIM5320) gesucht und leider nicht die gewünschte Implementierung gefunden. Aber das ließ mich nicht allein. Ich beschloss, die notwendige Funktionalität selbstständig zu implementieren. Als Ergebnis ist es mir gelungen, ein Gerät zu erstellen, das über MQTT von einer auf einem Mobiltelefon installierten Anwendung gesteuert (angezeigt durch drei LEDs) wird und auf Befehl des Telefons auch ein Foto an das Telefon sendet. (Ich verrate Ihnen ein Geheimnis, dass ich noch keine Beispiele für das Senden von Bildern über den MQTT-Broker gesehen habe und es zum ersten Mal getan habe. Und als ich es geschafft habe, das erste Bild zu übertragen, war ich ungemein glücklich!:-)) Und Daher schlage ich vor, direkt zum ersten Schritt zu gehen - einer Liste der notwendigen Komponenten.

Schritt 1: Liste der Komponenten

Liste der Komponenten
Liste der Komponenten
Liste der Komponenten
Liste der Komponenten
Liste der Komponenten
Liste der Komponenten
Liste der Komponenten
Liste der Komponenten

Wir brauchen die nächsten Komponenten:

1) Arduino M0-SD-kompatibel.

2) TTL-Kamera VC0706.

3) 3G/GPRS/GSM/GPS-Schild für Arduino.

4) Rote, grüne, gelbe LEDs, 3 Widerstände (100-500 Ohm), Drähte, Stiftwinkelstecker mit 2,54 mm Rastermaß.

5) AC-DC-Netzteil (6V 1A), 3G-Antenne usw.

Schritt 2: Vorbereitung der Kamera

Vorbereitung der Kamera
Vorbereitung der Kamera
Vorbereitung der Kamera
Vorbereitung der Kamera
Vorbereitung der Kamera
Vorbereitung der Kamera

Die Kamera verfügt über einen RS-232-Ausgang zum direkten Anschluss an einen PC. Es ist notwendig, den MAX232 (RS-232-Konverter) zu entfernen und die Kontaktpads zwischen den entsprechenden Pins 7-10 (TX), 8-9 (RX) zu schließen.

Das mit der Kamera gelieferte sechsadrige Kabel muss etwas erneuert werden:

  • Entfernen Sie die beiden Drähte vom Stecker.
  • Ordnen Sie die roten (+ 5 V) und schwarzen (GND) Drähte wie in der Abbildung gezeigt neu an.

An den blanken Enden der Drähte müssen Spitzen wie "weiblich" angelötet werden.

Schritt 3: Vorbereitung des kompatiblen Arduino M0-SD

Vorbereitung kompatibler Arduino M0-SD
Vorbereitung kompatibler Arduino M0-SD
Vorbereitung kompatibler Arduino M0-SD
Vorbereitung kompatibler Arduino M0-SD
Vorbereitung kompatibler Arduino M0-SD
Vorbereitung kompatibler Arduino M0-SD

Wie bereits erwähnt, ist das kompatible Arduino M0-SD hardware- und softwarekompatibel zum originalen Arduino M0, verfügt aber auch über einen integrierten microSD-Anschluss zum Anschluss einer Speicherkarte.

Um die Kamera mit dem kompatiblen Arduino M0-SD auf der Platine zu verbinden, muss der Winkelstecker wie in der Abbildung gezeigt an die Klemmen TXD, RXD (Stecker X6) angelötet werden. Dieser Port entspricht dem "Serial".

Weißes (Camera RX) und gelbes (Camera TX) Kabel von der Kamera müssen entsprechend an die Klemmen des TXD und RXD (Anschluss X6) angeschlossen werden, wie in der Abbildung gezeigt.

Schritt 4: Vorbereitung des 3G/GPRS/GSM/GPS Shield SIM5320

Vorbereitung von 3G/GPRS/GSM/GPS Shield SIM5320
Vorbereitung von 3G/GPRS/GSM/GPS Shield SIM5320
Vorbereitung von 3G/GPRS/GSM/GPS Shield SIM5320
Vorbereitung von 3G/GPRS/GSM/GPS Shield SIM5320
Vorbereitung von 3G/GPRS/GSM/GPS Shield SIM5320
Vorbereitung von 3G/GPRS/GSM/GPS Shield SIM5320

Bevor Sie eine SIM-Karte in den Steckplatz installieren, müssen Sie die PIN-Code-Abfrage deaktivieren. Setzen Sie dann die SIM-Karte wie in der Abbildung gezeigt in den Steckplatz auf der Unterseite der Platine ein. In der Position RX-1 (D1), TX-0 (D0) müssen zwei Jumper gesteckt werden.

Schritt 5: Hardware-Montage

Hardware-Montage
Hardware-Montage
Hardware-Montage
Hardware-Montage
Hardware-Montage
Hardware-Montage

Die Hardwaremontage besteht aus mehreren einfachen Vorgängen:

  • Um die LEDs anzusteuern, müssen Sie zunächst ein kleines Design aus LEDs und Strombegrenzungswiderständen (100-500 Ohm) wie in der Abbildung gezeigt verlöten. Achten Sie auf die Polarität der LEDs - die Anode muss an die Widerstände (+) gelötet werden. Um die parasitäre Exposition der LEDs zu reduzieren, habe ich einen schwarzen Bildschirm aus normalem Karton gemacht.
  • Verbinden Sie die LEDs und die Kamera mit einem kompatiblen Arduino M0-SD-Board, wie in der Abbildung gezeigt. Die Stromversorgung der Kamera (rote Ader „+5V“und schwarze Ader „GND“) muss aus den Klemmen „+5V“und „GND“aus dem Steckplatz entnommen werden. Dazu können Sie auch einen Winkelverbinder verwenden.
  • Verbinden Sie danach das 3G/GPRS/GSM/GPS-Shield mit dem kompatiblen Arduino M0-SD-Board. Vergessen Sie nicht, eine 3G-Antenne anzuschließen.

Schritt 6: MQTT-Broker einrichten

MQTT-Broker einstellen
MQTT-Broker einstellen
MQTT-Broker einstellen
MQTT-Broker einstellen
MQTT-Broker einstellen
MQTT-Broker einstellen

Als MQTT-Broker habe ich mich für ein sehr bequemes und übersichtliches www.cloudmqtt.com entschieden. Es bietet kostenlose Tests. Es ist auch möglich, Nachrichten direkt auf der Website zu empfangen und zu senden.

Das Einrichtungsverfahren ist wie folgt:

  1. Online registrieren.
  2. Drücken Sie die Schaltfläche "Neue Instanz erstellen".
  3. Legen Sie den Namen fest, zum Beispiel "MqttCamera".
  4. Drücken Sie die Schaltfläche "Region auswählen". Wählen Sie beispielsweise "USA-Ost-1 (Nord-Virginia)" aus.
  5. Drücken Sie die Schaltfläche "Überprüfen".
  6. Drücken Sie die Schaltfläche "Instanz erstellen". Meldung "Instanz erfolgreich erstellt" anzeigen.
  7. Klicken Sie auf "MqttCamera".
  8. Merken Sie sich Informationen: Server, Benutzer, Passwort, Port, API-Schlüssel (wir benötigen ihn im 7. und 8. Schritt).
  9. Dann können Sie zum Fenster "WEBSOCKET UI" gehen, in dem Sie testen und debuggen, Nachrichten anzeigen und senden können (dieses Fenster benötigen wir im nächsten Schritt).

Schritt 7: MQTT Dash-App

MQTT Dash-App
MQTT Dash-App
MQTT Dash-App
MQTT Dash-App
MQTT Dash-App
MQTT Dash-App

Um ein Control Panel in einem Mobiltelefon zu erstellen, habe ich eine sehr benutzerfreundliche und übersichtliche MQTT Dash App gewählt.

Installieren Sie die App MQTT Dash auf Ihrem Telefon und nehmen Sie folgende Einstellungen vor:

  1. Öffnen Sie die Anwendung.
  2. Klicken Sie im MQTT-Dash-Fenster auf (+), um ein neues Bedienfeld hinzuzufügen.
  3. Füllen Sie im angezeigten Fenster die erforderlichen Felder aus, z. B.: Name (z. B. MqttCamera), Adresse, Port, Benutzername, Benutzerkennwort (Daten aus Schritt 6 übernehmen).
  4. Klicken Sie nach dem Ausfüllen der Felder auf das Diskettensymbol (Vorgang "Speichern").
  5. Klicken Sie im Fenster mit der Liste der Kontrollfelder auf die erscheinende Zeile " MqttCamera ".
  6. Klicken Sie im sich öffnenden Steuerungsfeldfenster auf das Pfeilsymbol, um die Metriken zu laden.
  7. Klicken Sie dann im Pop-up-Fenster auf die Schaltfläche "ABONNENTEN UND AUF DIE METRISCH WARTEN".
  8. Eröffnen Sie auf einem PC ein Konto bei einem MQTT-Broker (siehe vorheriger Schritt), öffnen Sie das Fenster " WEBSOCKET UI ", stellen Sie das Thema "Metriken/Austausch" im Fenster " Nachricht senden " ein und zeichnen Sie den Text aus dem angehängte metrics.txt-Datei im Fenster "Nachricht" auf die Schaltfläche "Senden" klicken.
  9. Warten Sie 10 Sekunden, stellen Sie sicher, dass die Metrik im Telefon empfangen wird und das Bedienfeld aktualisiert wird.

Dann können Sie mit der Programmierung von kompatiblem Arduino M0-SD fortfahren.

Schritt 8: Programmierung und Arbeit

Programmierung und Arbeit
Programmierung und Arbeit
Programmierung und Arbeit
Programmierung und Arbeit
Programmierung und Arbeit
Programmierung und Arbeit
Programmierung und Arbeit
Programmierung und Arbeit

Bevor Sie kompatibles Arduino M0-SD programmieren, müssen Sie auf dem Computer alle erforderlichen Bibliotheken installieren (pubsubclient-master, TinyGSM-master), die ich unten zitiert habe. Diese Bibliotheken wurden leicht modifiziert, um mit einem kompatiblen Arduino M0-SD-Board, einer VC0706-Kamera und einem 3G/GPRS/GSM/GPS-SIM5320-Schild zu funktionieren.

Sie müssen Ihr Kabel und Ihr Netzteil (6V 1A für die Stromversorgung von 3G/GPRS/GSM/GPS-Shield) mit dem kompatiblen Arduino M0-SD verbinden.

Starten Sie die Arduino-IDE. In Arduino muss die IDE wählen: Tools-> Board: Arduino M0 Pro (Native USB Port).

Öffnen Sie die Skizze MqttCamera.ino. Füllen Sie die Felder aus: Benutzername, Benutzerpasswort, API-Schlüssel, Port, Server (Daten aus Schritt 6 übernehmen).

Öffnen Sie das Fenster Serial Monitor.

Skizze hochladen. Den Programmiervorgang beschreibe ich nicht im Detail (Anleitungen gibt es genug im Internet).

Nach erfolgreichem Laden und ordnungsgemäßem Zusammenbau sollten die folgenden Informationen im Serial Monitor-Fenster erscheinen:

VC0706 Kamera + Arduino M0 + SIM5320 + MQTT

Kamera init… Version: ----------------- VC0703 1.00 Strg infr vorhanden Benutzerdefinierter Sensor 525 ----------------- Erfolg ! Modem initialisieren… Modem: AT+CGMM SIMCOM_SIM5320E Warten auf Netzwerk… OK Verbindung zum Internet OK Verbindung zu 3.83.68.228 fehlgeschlagen Verbindung zu 3.83.68.228 OK Ping: 0

Die Zeile " Ping: XX " ist eine periodische Nachricht vom kompatiblen Arduino M0-SD an den Server. Anstelle dieser Informationen können Sie ADC-Messungen, Eingangsstatus und mehr senden.

Klicken Sie in der MQTT Dash-App auf die Symbole der Glühbirnen (LED_YELLOW, LED_GREEN, LED_RED) - ein-/ausschalten. Schauen Sie in das Fenster des Serial Monitors - dort sollten Informationen zu so etwas stehen:

LED_YELLOW Ein

LED_YELLOW_Off LED_GREEN On LED_GREEN Off LED_RED On LED_RED Off

Klicken Sie auf das Kamerasymbol - senden Sie den Befehl " SHOOT " und warten Sie eine Weile. Die folgenden Informationen sollten im Serial Monitor-Fenster erscheinen:

Schießen beginnen!

Bild gemacht! IMAGE332-j.webp

Und nach einer Weile (5-10 Sekunden) sollte im Fenster "BILD ANZEIGEN" ein Foto angezeigt werden.

Für die Demonstration habe ich die VC0706-Kamera auf die LEDs gerichtet, damit Sie deren Status sehen können, nachdem ich sie willkürlich geschaltet habe. Aber im realen Einsatz können Sie die Kamera auf einen Raum, eine Tür, eine Straße, ein Tor, ein Auto usw. richten Mobiltelefon, wo der eingebaute und der aktuelle Zustand der LEDs angezeigt werden.

Ich hoffe, meine Anleitung war interessant und nützlich für Sie. Ich freue mich über Ihr Feedback und Ihre Kommentare. In meinen Plänen, mein Gerät zu entwickeln und mit Ihnen neue Innovationen zu teilen. Danke fürs zuschauen!

Empfohlen: