Teljes Arduino-alapú jármű GPS+GPRS lopásgátló rendszer: 5 lépés (képekkel)
Teljes Arduino-alapú jármű GPS+GPRS lopásgátló rendszer: 5 lépés (képekkel)
Anonim
Image
Image
A hardver
A hardver

Sziasztok!

Teljes körű megoldást akartam építeni egy GPS jármű lopásgátló eszközéhez, amely a következő lenne:

a lehető legolcsóbban

a lehető legteljesebb

mivel csak működik, nincs más tennivaló, mint lehetséges

Így végül egy Arduino-alapú megoldást építettem, amely összesen 25 dollárba került, többé-kevésbé.

Amint a videóból látható, egyszerűen működik! Elindítja az autót, értesítést kap a mobiltelefonján, hogy az autó mozog, majd megnyitja a mobilalkalmazást, és valós időben láthatja az autó mozgását (10 másodperces frissítési késéssel).

Ez az oktatóanyag végigvezeti Önt az összes lépésen, szem előtt tartva, hogy a megoldásnak több összetevője van:

1) a hardver (Arduino alapú)

2) a szoftver (Arduino program)

3) több szoftver (a GPS-helyek szerveroldali fogadása)

4) még több szoftver (mobilalkalmazás)

Kezdjük..

1. lépés: A hardver

A hardver
A hardver

Bevásárló lista:

1) Arduino Uno R3 vagy klón. A "DCcEle DCcduino uno" klónt használtam, ami úgy tűnik, már nem érhető el. Itt egy megfelelő: Aliexpress - 3,75 $

2) GPS-egység Arduino-hoz (GY-NEO6MV2 új GPS-modul Flight Control Flight Control EEPROM MWC APM2.5 nagy antennával NEO6MV2). Ezt használtam: Aliexpressen - 6,66 $

3) GPRS / GSM egység Arduino számára (SIM800L V2.0 5V vezeték nélküli GSM GPRS MODUL Quad-Band W / Antenna Cable Cap). Ezt használtam: Aliexpressen - 6,71 $

4) Tartalék dupont kábelek, mint ezek: az Aliexpressen - 0,89 $

5) IoT adat sim kártya (vagy bármely más adatkapcsolattal rendelkező SIM kártya). Ezt használtam: a Hologram.io -ból. Van egy ingyenes fejlesztő, csak fizetett szállítás - 7,50 USD

Összesen: 25,51 $, de a kábelek már megvoltak, így kevesebb, mint 25 $!

A két kép az összeszerelés előtti alkatrészeket és a végterméket mutatja. A következő kapcsolatokra van szükség:

Arduino - SIM800L

10 - RESET

GND - GND (2 db)

5v - 5v

7 - SIM_TXD

8 - SIM_RXD

Arduino-GY-NEO6MV2

GND - GND

5v - VCC

3 - RX

4 - TX

Csatlakoztassa az összes kábelt és antennát, és győződjön meg arról, hogy az Arduino -t olyan forrásból táplálja, amely képes 2A csúcsot adni. A számítógép usb -je alig van rendben (MacBook Pro -t használok), egy "véletlenszerű" telefon töltő nem lesz elég. A legtöbb autó USB aljzata is kisebb, mint 1A. Ha ez a te eseted, akkor szükséged van egy 12V -os autó 5V -os tápegységére is, legalább 2A -val.

Helyezze be a SIM -kártyát. Ha a Hologram.io SIM -kártyát használja, feltétlenül regisztráljon a műszerfalán, és aktiválja a SIM -kártyát (ez néhány percet / órát vesz igénybe).

2. lépés: A szoftver (Arduino program)

A szoftver (Arduino program)
A szoftver (Arduino program)

Feltételezem, hogy ismeri az Arduino programozást. Ellenkező esetben kezdje ezzel az útmutatóval: az Instructables témakörben.

Csak egy külső könyvtárra van szüksége, manuálisan kellett telepítenem. Menjen ide: TinyGPS, exportálja a könyvtárat, és telepítse a helyi Arduino mappába.

Innentől fogva "ellopunk" néhány kódot az alapvető példájukból, és módosítjuk azt a céljainknak megfelelően.

Ezután "ellopjuk" ezt az útmutatót, és újra módosítjuk a kódot a céljainknak megfelelően.

Az eredmény a mellékelt.ino program.

Van néhány dolog, amit meg kell és módosítania kell:

a "SECONDS" és a "SERVER" határozza meg.

A SECONDS értéket 10 -re állítottam, és ezért: a Hologram.io fejlesztői program havi 1 MB ingyenes adatot biztosít. Ez azt jelenti, hogy minimalizálni szeretnénk a küldött bájtokat, de gyakran frissítenünk kell a pozíciónkat. A szabványos AT modemparancsok segítségével küldjük el az UDP csomagokat az üzeneteket fogadó szerverünknek, lat/lon számmal, mindegyik 4 bájtot használva, a sebesség pedig 1 bájt használatával. Tehát a teljes GPS -frissítés 20 bájt (IP fejléc) plusz 8 bájt (UDP fejléc) plusz 9 bájt (hasznos terhelés). Ez 37 bájt. Feltéve, hogy az autóm napi 2 óránál tovább nem aktív, 10 másodpercenként engedhetek meg magamnak egy frissítést, és havonta (31 nap) csak 806 kb -t fogyaszthatok. Ez 218 kb -t ad a vezetési időmre a sajátom, vagyis az autótolvaj felett. Ez 16,76 óra GPS -figyelést biztosít a vezetési időn kívül, 10 másodpercenként egy frissítéssel.

Most ezeknek az UDP csomagoknak el kell menniük valahová. Egy Ubuntu szervert használok, amelyet egy CloudAtCost felhőn üzemeltetünk, amelyet 8 dollárért vásároltam 80% -os kedvezménnyel, és amely más célokat szolgál számomra, így nem megy bele a költségszámításba. Ha nem akar fizetni egy szerverért, 12 hónapon keresztül beszerezhet egy ingyenes Amazon AWS példányt, és telepítheti rá az Ubuntut. Miután beállította a szervert (lásd a következő lépést), szerezze be annak statikus IP -címét, és tegye a SERVER definíció mellé.

3. lépés: További szoftverek (a GPS-helyek szerveroldali fogadása)

Mind a CloudAtCost, mind az Amazon előre konfigurált Ubuntu-képpel érkezik (a CloudAtCost az Ubuntu 14.04-es verzióján található). Tehát nem megyek át az Ubuntu telepítésének lépésein, mivel nem kell. Ha CloudAtCost -ot használ, érdemes frissíteni az Ubuntu 16.04 -re, ez a

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

Ezután telepítenie kell a LAMP -ot (lásd ezt az útmutatót: itt), bár nem fogjuk használni a PHP -t.

Telepítse a Python programot

sudo apt-get install python-minimal pip

Ezután adjon hozzá néhány modult:

pip install --user urllib3 kéréseket

Be kell állítanunk a /var /www -t írhatónak, ezért tegyük:

sudo adduser YOUR_USER www-datasudo chown -R www-data: www-data /var /www

sudo chmod -R g+rwX /var /www

Most szükségünk van egy "szerverre", hogy i) megkapjuk az UDP csomagokat, ii) felépítsük a sávot, iii) értesítést küldjünk a mobiltelefonunkra, és egy "szervert", amely kiszolgálja a létrehozott gps sávot (ez apache lesz).

Az első szerverhez másolja a csatolt python kódot. A következő dolgokat kell konfigurálnia:

iftttuser = "AZ IFTTT FELHASZNÁLÓJA"

iftttpass = "AZ IFTTT JELSZAVA"

iftttappletid = "AZ IFTTT -ÉRTESÍTÉSI ALKALMAZAT"

iftttkey = "A TE IFTTT KULCSOD"

iftttevent = "A TE IFTTT ESEMÉNYED"

Ahogy sejtette, az IFTTT segítségével valós idejű értesítéseket szervezünk mobiltelefonjainkra. Kövesse ezt az útmutatót: itt, de az "SMS küldése nekem" kiválasztása helyett válassza az "alkalmazás értesítés küldése" lehetőséget. Szerezze be a kisalkalmazás azonosítóját (görgessen a kisalkalmazás konfigurációjának alján, hogy megtekintse), és használja azt a fenti módon. Használja az így létrehozott kulcsot is a fenti beállításokban. Az IFTTT esemény az a név, amit az appletednek adtál, én "carmoving" -nek adtam.

Most nincs valós, valós idejű értesítési platform ingyen, AFAIK. Ha tudtok egyet, szóljatok. Az IFTTT késéssel rendelkezik. Ezt a késleltetést néhány másodpercre lehet csökkenteni, ha az e -mail aktiválót használja. Sajnos ez nem megbízható. Az éppen létrehozott webhook 15 perces késéssel rendelkezik. De nem akarunk 15 percet várni, hogy megtudjuk, hogy ellopják az autónkat, igaz? Ez az a jelszó, amely arra kéri Önt, hogy végezze el a fenti beállításokat. Ha végiggörgeted a python kódot, látod, hogy van néhány sor, nevezetesen 45-53, amelyek automatizálják az IFTTT "check now" funkcióját, ami kényszeríti a triggerek hirtelen ellenőrzését, és kevesebb mint 1 másodperc alatt aktiválja az értesítést! Szívesen:)

Miután beállította a python kódját valahol, csak futtassa. Ha Ön profi felhasználó, akkor a szerver indításakor kezdje el. Nézze meg a rengeteg ingyenes útmutatót az interneten, hogyan kell ezt megtenni, például ezt.

4. lépés: Még több szoftver (mobilalkalmazás)

Még több szoftver (mobilalkalmazás)
Még több szoftver (mobilalkalmazás)
Még több szoftver (mobilalkalmazás)
Még több szoftver (mobilalkalmazás)

Gyors és egyszerű módra van szükségünk ahhoz, hogy csak vizualizáljuk azt a gps -pályát, amelyet az előző lépés szervere naprakészen tart. Lehetséges, hogy mindenféle okostelefonon működnie kell.

Akkor használjunk többplatformos mobilalkalmazás-készletet, mint például az Ionic/Cordova. Ionic v1 -et használok, ne tévesszük össze az Ionic Native -nal vagy az Ionic v2 -vel, az más dolog.

Kövesse ezeket az egyszerű lépéseket az első projekt indításához Ionicban: itt.

Ezután el kell kezdenie egy új projektet a google maps sdk alapján, például:

ionos start myapp térképek

Menjen az "erőforrások" mappába, és másolja ide a nagy autó képét "icon.png" néven. Töltse fel helyette a kicsi ikonokat "car2.png" és "start.png" néven a kiszolgálón, például a https://yourserver/car2-p.webp

Használja a mellékelt index.html (az index.html.txt nevet index.html), direktives.js és controllers.js fájlokat, és helyezze őket a www (index.html), www/js (az összes js) fájlba.

add hozzá a platformodat így:

ionic add plaftorm android

építs így:

ionos felépítésű android

akkor az ionic megmondja, honnan építette a.apk -ját, amelyet telepíthet a mobiltelefonjára.

Az iOS használatához Mac és Xcode szükséges. Az ionic ezután menthet egy Xcode -projektet, amelyet megnyithat az Xcode -ban és létrehozhat a telefonhoz. Ha nincs iOS fejlesztői fiókja, akkor csatolnia kell a telefont az Xcode -hoz, és be kell állítania a telefont a fejlesztéshez, hogy ott telepíthesse az alkalmazást. Ez kívül esik ezen utasítás keretein.

A különböző js fájlokban meg kell találnia a "car2.png" és a "start.png" megfelelő sorokat, és módosítania kell őket a képek útvonalával. Ugyanez a "plan.json".

Ez az!!

5. lépés: Jövőbeli munka

1) Mindent egy kartondobozba tettem, amelyet elrejthetek az usb aljzat közelében. A legjobb, ha egy jobb tokot szerelünk fel az autó motorháztetője alá, 12v-> 5v átalakítóval.

2) Bluetooth -érzékelővel valójában "érzékelheted", ha az autóban ülsz, így a gps rendszer nem kapcsol be.

3) Csak fizessen egy sim adatcsomagért, és állítsa a SECONDS értéket 1-re, hogy élvezhesse a szuper-valós idejű követést:)

Remélem tetszett ez az első tanulságos részem!

Ajánlott: