Spisu treści:
- Krok 1: Sprzęt
- Krok 2: Oprogramowanie (program Arduino)
- Krok 3: Więcej oprogramowania (odbieranie lokalizacji GPS po stronie serwera)
- Krok 4: Jeszcze więcej oprogramowania (aplikacja mobilna)
- Krok 5: Przyszła praca
Wideo: Kompletny system antykradzieżowy GPS + GPRS oparty na Arduino: 5 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
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
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)
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)
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:
Kompaktowy czujnik pogody z łączem danych GPRS (karta SIM): 4 kroki
Kompaktowy czujnik pogodowy z łączem danych GPRS (karta SIM): Podsumowanie projektuJest to zasilany bateryjnie czujnik pogodowy oparty na czujniku temperatury/ciśnienia/wilgotności BME280 i mikrokontrolerze ATMega328P. Działa na dwóch bateriach 3,6 V litowo-tionylowych AA. Ma bardzo niskie zużycie snu na poziomie 6 µA. Wysyła dane
Samouczek modułu GPS i GPRS A9G - Ai-myśliciel - Polecenia AT: 7 kroków
Samouczek modułu GPS i GPRS A9G | Ai-myśliciel | AT Polecenia: Hej, co słychać, chłopaki! Akarsh tutaj z CETech.Dzisiaj przejdziemy przez moduł GPS, GSM i GPRS A9G od AI Thinker. Istnieje kilka innych modułów, takich jak A9 i A6 od AI Thinker, które mają podobne możliwości GSM i GPRS, ale
Kamera e-mail Arduino Security 3G/GPRS z wykrywaniem ruchu: 4 kroki
Kamera e-mail Arduino Security 3G/GPRS z detekcją ruchu: W tej instrukcji chciałbym opowiedzieć o jednej wersji budowy systemu nadzoru bezpieczeństwa z czujnikiem ruchu i wysyłaniem zdjęć do skrzynki pocztowej za pomocą tarczy 3G/GPRS.Ten artykuł jest oparty na inne instrukcje: instrukcja 1 i instrukcja
Arduino i SIM900 GSM GPRS 3G Rejestrowanie temperatury i wilgotności, statystyki mobilne: 4 kroki
Arduino i SIM900 GSM GPRS 3G Rejestrowanie temperatury i wilgotności, statystyki mobilne: Dzięki Arduino UNO R3, SIM900 Shield i DHT22 możesz za darmo rejestrować dane temperatury i wilgotności na zewnątrz, w pomieszczeniu, szklarni, laboratorium, chłodni lub w dowolnym innym miejscu. Ten przykład posłuży nam do rejestrowania temperatury i wilgotności w pomieszczeniu.Urządzenie
Sciphone I68 Konfiguracja GPRS + MMS Wszystkie kraje Niezawodny: 8 kroków
Sciphone I68 Konfiguracja GPRS + MMS Wszystkie kraje Niezawodny: Sciphone i68 + jest bardzo dobrym klonem popularnego iphone'a w obniżonej cenie Ta instrukcja pokaże Ci, jak łatwo skonfigurować ustawienia GPRS i MMS w sciphone i68, abyś mógł wysyłaj i odbieraj wiadomości obrazkowe i surfuj po