Inhaltsverzeichnis:

Selbst gemachter Echtzeit-GPS-Tracker (SIM800L, Ublox NEO-6M, Arduino) - Gunook
Selbst gemachter Echtzeit-GPS-Tracker (SIM800L, Ublox NEO-6M, Arduino) - Gunook

Video: Selbst gemachter Echtzeit-GPS-Tracker (SIM800L, Ublox NEO-6M, Arduino) - Gunook

Video: Selbst gemachter Echtzeit-GPS-Tracker (SIM800L, Ublox NEO-6M, Arduino) - Gunook
Video: ✅ WANZE Abhörgerät Audioüberwachung per Sim GF 07 TEST 2024, Juli
Anonim
Selbst gemachter Echtzeit-GPS-Tracker (SIM800L, Ublox NEO-6M, Arduino)
Selbst gemachter Echtzeit-GPS-Tracker (SIM800L, Ublox NEO-6M, Arduino)

Du hast also ein GSM-Modul herumliegen wie ich? Auch ein GPS-Tracker?

Wir denken das Gleiche!

In diesem instructables werde ich versuchen, Sie zu führen, wie Sie Ihr Ziel aus der Perspektive eines Neulings erreichen.

Da ich keine elektrotechnischen Vorkenntnisse hatte (um ehrlich zu sein, das Projekt braucht nicht so viel, aber nein) und keine Ahnung hatte, wie man ein Gerät baut, das Daten in Echtzeit an einen Webserver pumpt, stieß ich auf zahlreiche Probleme. Trotzdem habe ich es schließlich geschafft, die Dinge zum Laufen zu bringen.

Daher möchte ich in diesem Tutorial die Fehler hervorheben, die ein Starter machen kann, und das Projekt entsprechend aufbauen.

Denken Sie daran: Seien Sie immer vorsichtig, wenn Sie mit Strom arbeiten!

HINWEIS: Ich bin kein Profi. Der Code ist möglicherweise nicht ausgereift genug für alle Ihre Anforderungen. Das Projekt soll ein "Hobbyprojekt" werden, aber! bei mir hat es funktioniert. Und wenn es bei mir funktioniert, würde es auch bei dir funktionieren!

Schritt 1: Voraussetzungen

Voraussetzungen
Voraussetzungen
Voraussetzungen
Voraussetzungen
Voraussetzungen
Voraussetzungen

GSM-MODUL - SIM800L

  • Ziemlich klein, einfach zu bedienen
  • Möglichkeit zur Nutzung des mobilen Internets (GPRS)
  • Billig

GPS-MODUL - Ublox NEO6M

  • Auch klein
  • Macht seinen Job sehr gut

Ein Mikrocontroller - kann alles sein - Sie könnten den berühmten Arduino Uno oder den Nano verwenden, um Platz zu schaffen

Batterie - Ich habe eine 18650-Zelle als Haupt- und einzige Stromquelle verwendet (Nominal 3,7 V)

Batteriehalter – warum? - weil das Löten eines 18650er Akkus wegen der Hitze ziemlich gefährlich ist.

DC-DC-Aufwärtswandler-Aufwärtsmodul 5V - Muss, da das von mir verwendete Arduino 5V benötigt

Werkzeuge, grundlegende Dinge, die nützlich sein können:

Drähte, Lötkolben, Steckbrett zum Testen

Schritt 2: Hauptkonzept

Hauptkonzept
Hauptkonzept

Das Grundkonzept des Systems ist folgendes:

Es besteht aus 3 Teilen:

  1. Ein Gerät - das die richtigen GPS-Koordinaten hat und sich aus der Ferne mit einem Server verbinden und Daten an diesen senden kann
  2. Ein Webserver – der eingehende Daten empfangen – speichern – und anderen Clients bedienen kann
  3. Die Plattform - auf der wir die Koordinaten einsehen können - Idealerweise sollte es jetzt eine mobile Anwendung oder eine Website sein

Schritt 3: Das SIM800L-Modul

Das SIM800L-Modul
Das SIM800L-Modul
Das SIM800L-Modul
Das SIM800L-Modul

Ich hatte harte Zeiten mit dem Modul.

Ich möchte mit einigen Merkmalen und Referenzen beginnen.

Laut Datenblatt:

  • Es arbeitet zwischen 3,4V - 4,4V
  • Es kann SMS senden, Sprachanrufe an andere Telefone tätigen und sogar eine Verbindung zum Internet herstellen!
  • Wir können mit ihm über AT-Befehle kommunizieren!
  • Es kann zu Spitzenzeiten bis zu 2A verbrauchen! Hinweis: Sie werden es wahrscheinlich nicht mit einem Multimeter messen können - wegen seiner niedrigen Abtastraten

Meine Erfahrung ist, dass der SIM800L unter 3,8 V nicht wirklich funktioniert.

Für weitere Informationen besuchen Sie: Datenblatt

Ihre Aufgabe ist es also, dem Modul mindestens 3,8 V (idealerweise 4 V) zur Verfügung zu stellen, ein Netzteil, das mindestens 2 A ausgibt.

Bevor Sie das Modul im endgültigen Gerät verwenden, empfehle ich Ihnen, eine Kommunikation mit Ihrem SIM800L und Ihrem Computer herzustellen, um sicherzustellen, dass Ihr Gerät ordnungsgemäß funktioniert.

Das Wichtigste zuerst, stecken Sie die SIM-Karte wie im Bild oben ein.

Um es mit Ihrem PC zu verbinden, können Sie einen USB-zu-TTL-Konverter oder einen Arduino verwenden.

Jetzt gehe ich mit dem Arduino.

Verbinden Sie den SIM800L VCC und GND mit Ihren Stromquellenanschlüssen.

Verbinden Sie TX mit dem 10. digitalen Pin von Arduino, RX mit dem 11. digitalen Pin von Arduino.

Laden Sie den Code herunter, den ich in diesem Schritt verlinkt habe.

Mit dem Code können Sie Befehle auf Ihrem Serial Monitor senden und zurückerhalten.

Einige einfache Befehle:

AT Gibt OK zurück, wenn die Verbindung OK ist.

ATD+123456789; Rufen Sie eine bestimmte Telefonnummer an. Hinweis: Vergessen Sie nicht, es mit einem Semikolon zu beenden.

AT+CPIN? Gibt den Status der SIM-Karte zurück (gesperrt oder nicht)

Wenn Sie eine SMS versenden möchten, müssen Sie Ihre Eingabe mit einem Sonderzeichen beenden, dies geht mit dem '$'-Symbol.

Für weitere interessante Befehle empfehle ich Ihnen, dies zu lesen.

Es gibt verschiedene Befehle, machen Sie sich mit ihnen vertraut, sie sind wirklich nützlich.

Es gibt eine rote Status-LED, die Ihnen anzeigt, in welchem Betrieb sich der SIM800L befindet.

64 MS ON - 800MS OFF - SIM800L ist nicht im Netzwerk registriert.

64 MS ON - 3000MS OFF - SIM800L ist im Netzwerk registriert.

64 MS ON - 300MS OFF - SIM800l befindet sich im GPRS-Modus

Wenn der SIM800L nach etwa 8-10 Blinkzeichen immer wieder neu startet, kann dies an einem Mangel an effizienter Stromversorgung liegen.

Wenn Sie nach AT nicht in Ordnung sind, überprüfen Sie die Verkabelung! Wenn Sie ein Multimeter haben, überprüfen Sie den Durchgang der Drähte.

Überprüfen Sie die Anschlüsse der Drähte und Lötstellen! Das Modul funktioniert nur, wenn es blinkt.

Schritt 4: Ublox Neo 6m

Ublox Neo 6m
Ublox Neo 6m
Ublox Neo 6m
Ublox Neo 6m

Einige Eigenschaften

  • Maximale Spannung: 3,6 V - Ich habe es mit dem 3,3 V-Pin von Arduino betrieben
  • Die maximale Stromaufnahme beträgt 67 mA - Sie können es also über Arduino mit Strom versorgen
  • Temperaturbereich:: -40-85 Celsius (ich denke, es wird Ihnen passen)

Das von mir bestellte Gerät wurde mit einer auf dem Bild gezeigten Antenne geliefert, die ich einfach in den entsprechenden Steckplatz stecke.

Wenn das Gerät Signale hat, blinkt es mit blauer LED.

Überprüfen Sie zunächst, wie ein GPS hier funktioniert, falls Sie es nicht wissen.

Wenn das Gerät eingeschaltet ist und 3 Satelliten findet, sendet es wie oben viele durch Kommas getrennte Werte an den Arduino.

Um unsere Arbeit zu erleichtern, können wir einige externe Bibliotheken verwenden, um diese Daten zu parsen, um sie für den Menschen lesbarer zu machen.

Sie können die TinyGps-Bibliothek oder die NeoGPS-Bibliothek verwenden. Ich habe den zweiten verwendet, weil dieser leichter ist.

Zum Testen müssen Sie die Power-Pins mit Arduino 3.3V und GND verbinden.

Laden Sie diesen Code herunter und verwenden Sie ihn mit Ihrem GPS. RX Digital Pin 10, TX Digital Pin 11

Hinweis: Vergessen Sie nicht, das Modul im Freien zu verwenden, vorzugsweise wenn keine Wolken vorhanden sind.

Nach einer halben Minute sollte das Gerät blinken und Ihre GPS-Koordinaten ausgeben!:)

Sobald Sie wissen, dass Ihr SIM800L und Ihr GPS-Modul ordnungsgemäß funktionieren, können Sie mit dem nächsten Schritt fortfahren.

Schritt 5: Schaltung

Schaltung
Schaltung

Die Schaltung ist wie auf dem Bild.

Die 3,4V - 4,2V 18650 Batterie ist also die Hauptstromquelle. Sim800L bezieht die Energie direkt daraus. Zwischen ihnen befindet sich parallel ein Kondensator, um die Stabilität der Schaltung zu verbessern.

Wenn Sie sich für einen Kondensator entscheiden, sollten Sie einen Kondensator mit niedrigem ESR wählen.

Ein 5V-Aufwärtswandler erhöht die Spannung der Batterie auf 5V (ir wird benötigt, da Arduino mit 5V arbeitet).

Hier wird die 5V Stromschiene mit dem Nano verbunden. Sim800L und Neo6m sind wie auf dem Bild mit Nano verbunden. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)

D12 ist mit RST verbunden, sodass wir das System (außer SIM800L) programmgesteuert neu starten können. HINWEIS: Diese Neustartmethode ist möglicherweise nicht die beste Vorgehensweise)

Und schließlich sind zwei LEDs mit dem NANO verbunden, damit wir dem Benutzer mitteilen können, wenn ein Fehler auftritt.

Schritt 6: Code

Der Code ist den Instructables beigefügt oder werfen Sie einen Blick auf github.

Sie können es so ändern, dass es Ihren Anforderungen entspricht, oder Sie können den Code eines anderen verwenden, wenn Sie möchten.

waitUntilResponse(); Hilfsfunktion wurde aus seinem Code übernommen. Überprüfen Sie seine Arbeit und codieren Sie auch!

Kurz gesagt, in der Setup-Funktion müssen wir die GPRS-Verbindung unseres SIM800L-Moduls aktivieren. Wir wissen, ob es erfolgreich ist, wenn die LED schnell blinkt. (setupGPRSConnection())

In der Schleifenfunktion - alle 15 Sekunden wird die Funktion sendData() aufgerufen - die die HTTP-Anfrage hat

Ich habe Abfragezeichenfolgen verwendet, um Daten in diesem Format an den Webserver zu übertragen:

IP-Adresse/Datei.php?key=value&key=value z. B.

Tritt ein Fehler auf, leuchtet die entsprechende LED auf. (SIM, GPS)

Schritt 7: Webserver

Webserver
Webserver

Für unseren Einsatz reicht ein einfacher, leichtgewichtiger Webserver.

Es gibt einige Optionen, aus denen Sie wählen können:

  1. Sie könnten einen Remote-Server eines Unternehmens verwenden, für den Sie wahrscheinlich regelmäßig bezahlen müssen.
  2. Sie könnten Ihren eigenen Computer verwenden. Ich schlage es nur zum Testen vor, es ist nicht wirklich effizient, es rund um die Uhr zu betreiben, wegen Energieverschwendung und Sicherheitsproblemen.
  3. Sie könnten einen winzigen Computer wie Raspberry PI verwenden. Leicht, günstig, verbraucht nicht viel Strom.

Ich habe die zweite und dritte Option ausprobiert, sie haben gut funktioniert. Nun, das Hauptziel sind nicht Server dieser instructables, aber ich gebe Ihnen einige Ratschläge.

Wenn Sie einen PC verwenden, verwenden Sie wahrscheinlich Windows. An deiner Stelle würde ich einen Apache- oder XAMPP-Server darauf installieren.

XAMPP enthält bereits PHP, außerdem kommt es mit HTML, Perl und einem Database Managing System. Mit PHP können Sie einen dynamischen Server erstellen. Wenn Sie den gerade erstellten lokalen Server von überall auf der Welt verwenden möchten, müssen Sie Ihrem PC eine statische IP zuweisen und einige Portweiterleitungen durchführen. Ein hilfreiches Tutorial für statische IP:

Und die ganze Portforwarding-Sache:

Wenn Sie eine Himbeere haben, ist es eine gute Praxis, sie zu verwenden. Sie können sich mit den Linux-Befehlen vertraut machen und Ihren eigenen Server rund um die Uhr betreiben.

Das Betriebssystem war Raspbian Jessie mit einem Headless-Setup (keine Tastatur, Monitor) - ich habe es mit meinem Computer mit SSH-Verbindung gesteuert.

Ich habe Putty verwendet, um mich bei meinem Raspberry anzumelden. Vergessen Sie nicht, das Passwort Ihres Kontos zu ändern, damit sich andere nicht bei Ihrem Pi anmelden können. Standard ist: pi, passw: Himbeere.

Ich habe einen lighttpd-Webserver mit sqlite3 installiert. Gutes Tutorial gefunden hier:

Ich habe hauptsächlich PHP im Servercode verwendet. Mit PHP können Sie Daten empfangen, Datenbanken lesen/schreiben - eine Abfrage in ein JSON-Format codieren usw. …Dieses Tutorial wird Ihnen sehr helfen, wie Sie Ihre Datenbank mit PHP verwalten.

Sie können meinen Code auch auf github im Ordner server_files anzeigen.

Und natürlich müssen Sie die Portweiterleitung zu Ihrem Pi auf Ihrem Router aktivieren, wenn Sie aus der Ferne darauf zugreifen möchten.

Schritt 8: Ende/Erfahrung

Ein Gehäuse muss noch erstellt werden.

Meine Erfahrung ist, dass das System nicht so schlecht funktioniert. Aber es warten Stabilitätsverbesserungen.

Wenn der Tracker mit dem von mir angehängten Code nicht funktioniert hat, machen Sie sich keine Sorgen. Stellen Sie sicher, dass SIM800L und NEO 6M wie gewünscht funktionieren. Sie können meinen Code frei ändern oder nach einem besseren suchen. Ich hoffe nur, dass ich Ihnen ein Beispiel zeigen konnte, wie Sie dieses Projekt realisieren können.

Ich akzeptiere jeden Rat, Korrektur von Kommentaren. Fragen Sie nur.

Empfohlen: