Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Hallo allerseits!
Ich wollte eine Komplettlösung für ein GPS-Fahrzeug-Diebstahlschutzgerät bauen, das wäre:
so günstig wie möglich
so vollständig wie möglich
da es-einfach-funktioniert-es-nichts-anders-zu-tun ist
Also habe ich eine Arduino-basierte Lösung gebaut, die mich insgesamt 25 $ mehr oder weniger gekostet hat.
Wie Sie im Video sehen können, funktioniert es einfach! Sie starten das Auto, Sie erhalten eine Benachrichtigung auf Ihrem Mobiltelefon, dass sich das Auto bewegt, dann öffnen Sie die mobile App und Sie können das Auto in Echtzeit sehen (mit einer Aktualisierungsverzögerung von 10 Sekunden).
Dieses Tutorial führt Sie durch alle Schritte, wobei Sie daran denken, dass die Lösung mehrere Komponenten enthält:
1) die Hardware (Arduino basiert)
2) die Software (Arduino-Programm)
3) mehr Software (serverseitiger Empfang der GPS-Standorte)
4) noch mehr Software (die mobile App)
Lasst uns beginnen..
Schritt 1: Die Hardware
Einkaufsliste:
1) Arduino Uno R3 oder Klon. Ich habe den Klon "DCcEle DCcduino uno" verwendet, der anscheinend nicht mehr verfügbar ist. Hier ist ein Äquivalent: auf Aliexpress - 3,75 $
2) GPS-Einheit für Arduino (GY-NEO6MV2 neues GPS-Modul mit Flight Control Flight Control EEPROM MWC APM2.5 große Antenne NEO6MV2). Ich habe das verwendet: auf Aliexpress - 6,66 $
3) GPRS / GSM-Einheit für Arduino (SIM800L V2.0 5V Wireless GSM GPRS MODUL Quad-Band W / Antennenkabelkappe). Ich habe dies verwendet: auf Aliexpress - 6,71 $
4) Ersatz-Dupont-Kabel wie diese: bei Aliexpress - 0,89 $
5) IoT-Daten-SIM-Karte (oder jede andere SIM-Karte mit Datenverbindung). Ich habe dies verwendet: von Hologram.io. Ich habe einen kostenlosen Entwickler, nur den Versand bezahlt - 7,50 $
Gesamt: 25,51 $, aber die Kabel hatte ich schon, also weniger als 25 $!
Die beiden Bilder zeigen die Komponenten vor dem Zusammenbau und das Endprodukt. Die Verbindungen, die Sie herstellen müssen, sind:
Arduino -- SIM800L
10 -- ZURÜCKSETZEN
GND -- GND (2 davon)
5v -- 5v
7 -- SIM_TXD
8 -- SIM_RXD
Arduino -- GY-NEO6MV2
GND -- GND
5v -- VCC
3 -- RX
4 -- TX
Schließen Sie alle Kabel und Antennen an und stellen Sie sicher, dass Sie den Arduino von einer Quelle einschalten, die Spitzen von 2A liefern kann. Der USB-Anschluss des Computers ist kaum in Ordnung (ich verwende ein MacBook Pro), ein "zufälliges" Telefonladegerät reicht nicht aus. Die meisten Auto-USB-Steckdosen haben auch weniger als 1A. In diesem Fall benötigen Sie auch ein 12-V-Auto-5-V-Netzteil mit mindestens 2 A.
Legen Sie die SIM-Karte ein. Wenn Sie die Hologram.io-SIM-Karte verwenden, stellen Sie sicher, dass Sie sich auf ihrem Dashboard registrieren und die SIM-Karte aktivieren (dies dauert einige Minuten / Stunden).
Schritt 2: Die Software (Arduino-Programm)
Ich gehe davon aus, dass Sie mit der Arduino-Programmierung vertraut sind. Andernfalls beginnen Sie bitte mit dieser Anleitung: auf Instructables.
Sie benötigen nur eine externe Bibliothek, die ich manuell installieren musste. Gehen Sie hier: TinyGPS, exportieren Sie die Bibliothek und installieren Sie sie in Ihrem lokalen Arduino-Ordner.
Von dort aus werden wir etwas Code aus ihrem grundlegenden Beispiel "stehlen" und ihn für unsere Zwecke modifizieren.
Wir werden dann aus diesem Handbuch "stehlen" und den Code erneut für unsere Zwecke modifizieren.
Das Ergebnis ist das angehängte.ino-Programm.
Es gibt ein paar Dinge, die Sie optimieren können und MÜSSEN:
die "SECONDS"-Definition und die "SERVER"-Definition.
Ich habe SECONDS auf 10 gesetzt und hier ist der Grund: Das Hologram.io-Entwicklerprogramm bietet Ihnen 1 MB kostenloser Daten pro Monat. Das heißt, wir wollen die gesendeten Bytes minimieren, müssen aber auch unsere Position so oft aktualisieren. Wir werden Standard-AT-Modembefehle verwenden, um UDP-Pakete an unseren Server zu senden, der die Nachrichten empfängt, mit lat/lon, jeweils mit 4 Bytes und Geschwindigkeit mit 1 Byte. Das gesamte GPS-Update beträgt also 20 Byte (IP-Header) plus 8 Byte (UDP-Header) plus 9 Byte (Payload). Das sind 37 Byte. Angenommen, mein Auto ist nicht länger als 2 Stunden pro Tag aktiv, kann ich mir alle 10 Sekunden ein Update leisten und verbrauche nur 806 kb pro Monat (31 Tage). Das gibt mir 218kb für die Fahrzeit über meiner eigenen, also dem Autodieb. Das gibt mir 16,76 Stunden GPS-Überwachung außerhalb meiner Fahrzeit mit einem Update alle 10 Sekunden.
Nun müssen diese UDP-Pakete irgendwo hin. Ich verwende einen Ubuntu-Server, der auf einer CloudAtCost-Cloud gehostet wird, den ich für 8 $ mit einem Rabatt von 80% gekauft habe und der mir anderen Zwecken dient und daher nicht in die Kostenberechnungen eingeht. Wenn Sie nicht für einen Server bezahlen möchten, können Sie eine kostenlose Amazon AWS-Instanz für 12 Monate erwerben und Ubuntu darauf installieren. Sobald Sie Ihren Server eingerichtet haben (siehe nächster Schritt), rufen Sie seine statische IP-Adresse ab und legen Sie sie neben die SERVER-Definition.
Schritt 3: Mehr Software (serverseitiger Empfang der GPS-Standorte)
Sowohl CloudAtCost als auch Amazon werden mit einem vorkonfigurierten Ubuntu-Image geliefert (CloudAtCost ist bei Ubuntu 14.04). Ich gehe also nicht die Schritte zur Installation von Ubuntu durch, da Sie dies nicht müssen. Wenn Sie CloudAtCost verwenden, möchten Sie möglicherweise auf Ubuntu 16.04 aktualisieren, das geht mit a
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
Dann müssen Sie LAMP installieren (siehe diese Anleitung: hier), obwohl wir kein PHP verwenden werden.
Python installieren mit
sudo apt-get install python-minimal pip
Fügen Sie dann ein paar Module hinzu:
pip install --user urllib3-Anfragen
Wir müssen /var/www für Sie beschreibbar festlegen, also machen wir:
sudo adduser YOUR_USER www-datasudo chown -R www-data:www-data /var/www
sudo chmod -R g+rwX /var/www
Jetzt brauchen wir einen "Server", um i) die UDP-Pakete zu empfangen, ii) den Track zu erstellen, iii) eine Benachrichtigung an unser Mobiltelefon zu senden, und einen "Server", um den erstellten GPS-Track bereitzustellen (dies wird Apache sein).
Kopieren Sie für den ersten Server den angehängten Python-Code. Sie müssen die folgenden Dinge konfigurieren:
iftttuser="IHR IFTTT-BENUTZER"
iftttpass="IHR IFTTT-PASSWORT"
ifttappletid="IHR IFTTT-BENACHRICHTIGUNGS-APPLET"
iftttkey="IHR IFTTT-SCHLÜSSEL"
iftttevent="IHR IFTTT-EVENT"
Wie Sie vielleicht erraten haben, verwenden wir IFTTT, um Echtzeit-Benachrichtigungen an unsere Mobiltelefone zu senden. Folgen Sie dieser Anleitung: Wählen Sie hier, anstatt "SMS senden", "App-Benachrichtigung senden" aus. Rufen Sie Ihre Applet-ID ab (scrollen Sie unten in der Applet-Konfiguration, um sie anzuzeigen) und verwenden Sie diese oben. Verwenden Sie auch den so erstellten Schlüssel in den obigen Einstellungen. Das IFTTT-Ereignis ist der Name, den Sie Ihrem Applet gegeben haben, ich habe ihm "carmoving" gegeben.
Jetzt gibt es keine kostenlosen Echtzeit-Benachrichtigungsplattformen, AFAIK. Wenn Sie einen kennen, lassen Sie es mich wissen. IFTTT hat eine Verzögerung. Diese Verzögerung kann auf wenige Sekunden minimiert werden, wenn Sie den E-Mail-Trigger verwenden. Dies ist leider nicht zuverlässig. Der gerade erstellte Webhook hat eine Verzögerung von 15 Minuten. Aber wir wollen nicht 15 Minuten warten, um zu erfahren, dass unser Auto gestohlen wird, oder? Dies ist das Passwort, mit dem Sie aufgefordert werden, alle oben genannten Einstellungen einzurichten. Wenn Sie den Python-Code scrollen, sehen Sie, dass es ein paar Zeilen gibt, nämlich 45-53, um die "Jetzt prüfen"-Funktion von IFTTT zu automatisieren, die eine plötzliche Überprüfung der Trigger erzwingt und die Benachrichtigung in weniger als 1 Sekunde auslöst! Gern geschehen:)
Sobald Sie Ihren Python-Code irgendwo eingerichtet haben, führen Sie ihn einfach aus. Wenn Sie ein Profi-Benutzer sind, lassen Sie es beim Serverstart starten. Sehen Sie sich die unzähligen kostenlosen Anleitungen online an, wie das geht, zum Beispiel in diesem.
Schritt 4: Noch mehr Software (die mobile App)
Wir brauchen eine schnelle und einfache Möglichkeit, nur den GPS-Track zu visualisieren, den der Server im vorherigen Schritt auf dem neuesten Stand hält. Möglicherweise muss es auf allen Arten von Smartphones funktionieren.
Lassen Sie uns dann eine plattformübergreifende mobile App-Suite wie Ionic/Cordova verwenden. Ich verwende Ionic v1, verwechseln Sie es nicht mit Ionic Native oder Ionic v2, das ist eine andere Sache.
Befolgen Sie diese sehr einfachen Schritte, um Ihr erstes Projekt in Ionic zu starten: hier.
Dann müssen Sie ein neues Projekt basierend auf dem Google Maps SDK starten, wie folgt:
ionic start myapp maps
Gehen Sie in den Ordner "resources" und kopieren Sie das große Autobild hier als "icon.png". Laden Sie stattdessen die kleinen Symbole als "car2.png" und "start.png" irgendwo auf Ihren Server hoch, wie zum Beispiel https://yourserver/car2.png. Sie benötigen diese als Markierungen in Ihrer App.
Verwenden Sie die angehängten Dateien index.html (benennen Sie index.html.txt in index.html um), Directives.js und controllers.js und fügen Sie sie in www (index.html), www/js (alle js) ein.
fügen Sie Ihre Plattform wie folgt hinzu:
ionisches Add-Platform-Android
so bauen:
Ionen bauen Android
dann wird ionic Ihnen sagen, wo es Ihre.apk erstellt hat, die Sie auf Ihrem Mobiltelefon installieren können.
Um für iOS zu erstellen, benötigen Sie einen Mac und Xcode. ionic kann dann ein Xcode-Projekt speichern, das Sie in Xcode öffnen und für Ihr Telefon erstellen können. Wenn Sie kein iOS-Entwicklerkonto haben, müssen Sie Ihr Telefon an Xcode anschließen und Ihr Telefon für die Entwicklung einrichten, um die App dort installieren zu können. Dies liegt außerhalb des Rahmens dieses instructable.
In den verschiedenen js-Dateien müssen Sie die Zeilen finden, die "car2.png" und "start.png" entsprechen, und sie mit dem Pfad Ihrer Bilder ändern. Gleiches gilt für "plan.json".
Das ist es!!
Schritt 5: Zukünftige Arbeit
1) Ich habe alles in einen Karton gepackt, den ich überall in der Nähe der USB-Steckdose verstecken kann. Am besten montieren Sie ein besseres Gehäuse unter der Motorhaube mit einem 12V->5V-Wandler.
2) Mit einem Bluetooth-Sensor können Sie tatsächlich "erfassen", ob Sie im Auto sitzen, sodass sich das GPS-System nicht einschaltet.
3) Bezahle einfach für einen Sim-Datentarif und setze SECONDS auf 1, um Super-Echtzeit-Tracking zu genießen:)
Hoffe, Sie haben dieses erste instructable von mir genossen!