Spisu treści:

Kompletny system antykradzieżowy GPS + GPRS oparty na Arduino: 5 kroków (ze zdjęciami)
Kompletny system antykradzieżowy GPS + GPRS oparty na Arduino: 5 kroków (ze zdjęciami)

Wideo: Kompletny system antykradzieżowy GPS + GPRS oparty na Arduino: 5 kroków (ze zdjęciami)

Wideo: Kompletny system antykradzieżowy GPS + GPRS oparty na Arduino: 5 kroków (ze zdjęciami)
Wideo: Czym jest radiowa ochrona pojazdu? Czy Lokalizator GPS nadaje się jako system antykradzieżowy? 2024, Listopad
Anonim
Image
Image
Sprzęt
Sprzęt

Cześć wszystkim!

Chciałem zbudować kompletne rozwiązanie dla samochodowego urządzenia antykradzieżowego GPS, które byłoby:

tak tanio, jak to możliwe

tak kompletny, jak to możliwe

ponieważ to po prostu działa

Skończyło się na zbudowaniu rozwiązania opartego na Arduino, które kosztowało mnie łącznie 25 $, mniej więcej.

Jak widać na filmie, to po prostu działa! Uruchamiasz samochód, otrzymujesz powiadomienie na telefon komórkowy, że samochód się porusza, następnie otwierasz aplikację mobilną i widzisz samochód poruszający się w czasie rzeczywistym (z 10 sekundowym opóźnieniem aktualizacji).

Ten samouczek poprowadzi Cię przez wszystkie kroki, pamiętając o kilku elementach rozwiązania:

1) sprzęt (oparty na Arduino)

2) oprogramowanie (program Arduino)

3) więcej oprogramowania (odbieranie lokalizacji GPS po stronie serwera)

4) jeszcze więcej oprogramowania (aplikacja mobilna)

Zaczynajmy..

Krok 1: Sprzęt

Sprzęt
Sprzęt

Lista zakupów:

1) Arduino Uno R3 lub klon. Użyłem klona „DCcEle DCcduino uno”, który wydaje się już nie być dostępny. Oto odpowiednik: na Aliexpressie - 3,75$

2) Moduł GPS dla Arduino (nowy moduł GPS GY-NEO6MV2 z dużą anteną Flight Control Flight Control EEPROM MWC APM2.5 NEO6MV2). Użyłem tego: na Aliexpress - 6.66$

3) Moduł GPRS/GSM dla Arduino (SIM800L V2.0 5V Bezprzewodowy MODUŁ GSM GPRS Czterozakresowy z nasadką kabla antenowego). Użyłem tego: na Aliexpress - 6.71$

4) Zapasowe kable dupontowe takie jak te: na Aliexpress - 0.89$

5) Karta SIM z danymi IoT (lub dowolna inna karta SIM z połączeniem danych). Użyłem tego: z Hologram.io. Mam darmowy program dla programistów, tylko płatna dostawa - 7,50 $

Razem: 25.51$, ale kable miałem już więc to mniej niż 25$ !

Dwa zdjęcia przedstawiają komponenty przed montażem oraz produkt końcowy. Połączenia, które musisz wykonać, to:

Arduino -- SIM800L

10 -- RESETUJ

GND -- GND (2 z nich)

5v -- 5v

7 -- SIM_TXD

8 -- SIM_RXD

Arduino -- GY-NEO6MV2

GND -- GND

5v-VCC

3 -- RX

4 -- TX

Podłącz wszystkie kable i anteny i upewnij się, że zasilasz Arduino ze źródła, które może zapewnić szczyty 2A. USB komputera jest ledwo w porządku (używam MacBooka Pro), „losowa” ładowarka do telefonu nie wystarczy. Większość gniazd USB w samochodach również ma mniej niż 1A. Jeśli tak jest w Twoim przypadku, potrzebujesz również zasilacza samochodowego 12 V 5 V o mocy co najmniej 2 A.

Włóż kartę SIM. Jeśli korzystasz z karty sim Hologram.io, upewnij się, że rejestrujesz się na ich desce rozdzielczej i aktywujesz kartę sim (zajmuje to kilka minut / godzin).

Krok 2: Oprogramowanie (program Arduino)

Oprogramowanie (program Arduino)
Oprogramowanie (program Arduino)

Zakładam, że znasz programowanie Arduino. W przeciwnym razie zacznij od tego przewodnika: na temat instrukcji.

Potrzebujesz tylko jednej zewnętrznej biblioteki, musiałem ją zainstalować ręcznie. Idź tutaj: TinyGPS, wyeksportuj bibliotekę i zainstaluj ją w lokalnym folderze Arduino.

Stamtąd „wykradniemy” trochę kodu z ich podstawowego przykładu i zmodyfikujemy go do naszych celów.

Następnie zamierzamy „ukraść” ten przewodnik i ponownie zmodyfikować kod do naszych celów.

Rezultatem jest załączony program.ino.

Jest kilka rzeczy, które możesz i MUSISZ poprawić:

definiują „SECONDS”, a definiują „SERVER”.

Ustawiłem SEKUNDY na 10 i oto dlaczego: program dla programistów Hologram.io daje 1 MB darmowych danych miesięcznie. Co oznacza, że chcemy zminimalizować wysyłane bajty, ale też musimy tak często aktualizować naszą pozycję. Użyjemy standardowych poleceń modemu AT, aby wysłać pakiety UDP do naszego serwera odbierającego wiadomości, z lat/lon, z których każdy używa 4 bajtów i szybkością 1 bajta. Tak więc całkowita aktualizacja GPS wynosi 20 bajtów (nagłówek IP) plus 8 bajtów (nagłówek UDP) plus 9 bajtów (ładunek). To 37 bajtów. Zakładając, że mój samochód jest aktywny nie dłużej niż 2 godziny dziennie, stać mnie na aktualizację co 10 sekund i zużywam tylko 806kb miesięcznie (31 dni). To daje mi 218 kb za czas jazdy nad własnym, czyli złodziejem samochodów. Co daje mi 16,76 godzin monitorowania GPS poza czasem jazdy, z jedną aktualizacją co 10 sekund.

Teraz te pakiety UDP muszą gdzieś iść. Korzystam z serwera Ubuntu hostowanego na chmurze CloudAtCost, który kupiłem za 8$ z 80% rabatem i który służy mi do innych celów, przez co nie wchodzi w koszty. Jeśli nie chcesz płacić za serwer, możesz otrzymać darmową instancję Amazon AWS na 12 miesięcy i zainstalować na niej Ubuntu. Po skonfigurowaniu serwera (patrz następny krok), uzyskaj jego statyczny adres IP i umieść go obok definicji SERWER.

Krok 3: Więcej oprogramowania (odbieranie lokalizacji GPS po stronie serwera)

Zarówno CloudAtCost, jak i Amazon są dostarczane ze wstępnie skonfigurowanym obrazem Ubuntu (CloudAtCost jest w Ubuntu 14.04). Więc nie przechodzę przez kroki instalacji Ubuntu, ponieważ nie będziesz musiał. Jeśli używasz CloudAtCost, możesz chcieć uaktualnić do Ubuntu 16.04, robisz to za pomocą

aktualizacja sudo apt-get && aktualizacja sudo apt-get && sudo apt-get dist-upgrade

Następnie musisz zainstalować LAMP (patrz ten przewodnik: tutaj), chociaż nie będziemy używać PHP.

Zainstaluj Pythona za pomocą

sudo apt-get zainstaluj python-minimal pip

Następnie dodaj kilka modułów:

pip install --żądania urllib3 użytkownika

Musimy ustawić przez Ciebie możliwość zapisu /var/www, więc zróbmy:

sudo adduser TWÓJ_UŻYTKOWNIK www-datasudo chown -R www-data:www-data /var/www

sudo chmod -R g+rwX /var/www

Teraz potrzebujemy "serwera" do i) odbierania pakietów UDP, ii) budowania ścieżki, iii) wysyłania powiadomienia na nasz telefon komórkowy oraz "serwera" do obsługi utworzonej ścieżki GPS (będzie to apache).

Dla pierwszego serwera skopiuj załączony kod Pythona. Musisz skonfigurować następujące rzeczy:

iftttuser="TWÓJ UŻYTKOWNIK IFTTT"

iftttpass="TWOJE HASŁO IFTTT"

iftttappletid="TWÓJ APLET POWIADOMIENIA IFTTT"

iftttkey="TWÓJ KLUCZ IFTTT"

iftttevent="TWOJE WYDARZENIE IFTTT"

Jak można się domyślić, używamy IFTTT do wysyłania powiadomień w czasie rzeczywistym na nasze telefony komórkowe. Postępuj zgodnie z tym przewodnikiem: tutaj, ale zamiast wybierać „wyślij mi sms”, wybierz „wyślij powiadomienie aplikacji”. Pobierz swój identyfikator apletu (przewiń na dole konfiguracji apletu, aby go zobaczyć) i użyj tego powyżej. Użyj również tak utworzonego klucza w powyższych ustawieniach. Wydarzenie IFTTT to nazwa, którą nadałeś swojemu apletowi, ja nadałem mu "carmoving".

Teraz nie ma darmowych platform powiadomień w czasie rzeczywistym, AFAIK. Jeśli znasz jednego, daj mi znać. IFTTT ma opóźnienie. To opóźnienie można zminimalizować do kilku sekund, jeśli użyjesz wyzwalacza wiadomości e-mail. Niestety nie jest to wiarygodne. Właśnie utworzony webhook ma 15 minut opóźnienia. Ale nie chcemy czekać 15 minut, aby dowiedzieć się, że nasz samochód został skradziony, prawda? To jest hasło proszące o skonfigurowanie wszystkich powyższych ustawień. Jeśli przewiniesz kod Pythona, zobaczysz, że jest kilka linii, a mianowicie 45-53, aby zautomatyzować funkcję „sprawdź teraz” IFTTT, która wymusza nagłe sprawdzenie wyzwalaczy i wyzwala powiadomienie w mniej niż 1 sekundę! Nie ma za co:)

Po skonfigurowaniu gdzieś kodu Pythona po prostu go uruchom. Jeśli jesteś użytkownikiem pro, uruchom go przy starcie serwera. Zapoznaj się z mnóstwem bezpłatnych przewodników online, jak to zrobić, na przykład ten.

Krok 4: Jeszcze więcej oprogramowania (aplikacja mobilna)

Jeszcze więcej oprogramowania (aplikacja mobilna)
Jeszcze więcej oprogramowania (aplikacja mobilna)
Jeszcze więcej oprogramowania (aplikacja mobilna)
Jeszcze więcej oprogramowania (aplikacja mobilna)
Jeszcze więcej oprogramowania (aplikacja mobilna)
Jeszcze więcej oprogramowania (aplikacja mobilna)
Jeszcze więcej oprogramowania (aplikacja mobilna)
Jeszcze więcej oprogramowania (aplikacja mobilna)

Potrzebujemy szybkiego i prostego sposobu na wizualizację śladu GPS, który serwer na poprzednim etapie aktualizuje. Prawdopodobnie musi działać na wszystkich rodzajach smartfonów.

Użyjmy więc wieloplatformowego pakietu aplikacji mobilnych, takiego jak Ionic/Cordova. Używam Ionic v1, nie myl go z Ionic Native lub Ionic v2, to inna sprawa.

Wykonaj te bardzo proste kroki, aby rozpocząć swój pierwszy projekt w Ionic: tutaj.

Następnie musisz rozpocząć nowy projekt oparty na sdk google maps, taki jak ten:

Ionic start myapp mapy

Przejdź do folderu „resources” i skopiuj tutaj duży obraz samochodu jako „icon.png”. Zamiast tego prześlij małe ikony jako „samochód2.png” i „start.png” gdzieś na swój serwer, na przykład https://twójserwer/samochód2.png. Będziesz ich potrzebować jako znaczników w swojej aplikacji.

Użyj załączonych plików index.html (zmień nazwę index.html.txt na index.html), Directives.js i controllers.js i umieść je w www (index.html), www/js (wszystkie js).

dodaj swoją platformę w ten sposób:

jonowy dodaj platformę android

zbuduj tak:

jonowa budowa androida

wtedy ionic powie Ci, gdzie zbudował plik.apk, który możesz zainstalować na telefonie komórkowym.

Do kompilacji dla systemu iOS potrzebny jest komputer Mac i Xcode. ionic może następnie zapisać projekt Xcode, który możesz otworzyć w Xcode i zbudować dla swojego telefonu. Jeśli nie masz konta programisty iOS, musisz podłączyć telefon do Xcode i skonfigurować go do programowania, aby móc tam zainstalować aplikację. To wykracza poza zakres tej instrukcji.

W różnych plikach js musisz znaleźć wiersze odpowiadające „car2.png” i „start.png” i zmodyfikować je ścieżką swoich obrazów. To samo dla „plan.json”.

Otóż to!!

Krok 5: Przyszła praca

1) Wszystko włożyłem do kartonu, który mogę schować w dowolnym miejscu w pobliżu gniazdka USB. Najlepiej byłoby zamontować pod maską lepszą obudowę z konwerterem 12v->5v.

2) Dzięki czujnikowi bluetooth możesz faktycznie „wyczuć”, że jesteś w samochodzie, więc system gps się nie włącza.

3) Po prostu zapłać za abonament SIM i ustaw SECONDS na 1, aby cieszyć się śledzeniem w czasie rzeczywistym:)

Mam nadzieję, że podobała Ci się ta moja pierwsza instrukcja!

Zalecana: