Prezentowany projekt jest ciekawym i dosyć prostym urządzeniem, które idealnie nadaje się do budowy nawet przez początkującego programistę Arduino. Jednocześnie jest to realnie przydatne urządzenie, które może być zamontowane w każdym samochodzie, szczególnie jeśli często parkujemy na niestrzeżonych parkingach i obawiamy się o ochronę naszego mienia.
Przed rozpoczęciem realizacji tego projektu należy opanować kilka podstawowych umiejętności, które będą potrzebne nam podczas realizacji projektu:
- Powinieneś być zaznajomiony z obsługą środowiska programistycznego Arduino IDE,
- Przydatna będzie wiedza na temat elektryki samochodowej 12 V,
- Wymagana będzie elementarna wiedza na temat wykorzystania PHP i MySQL,
- Wskazany jest także dostęp do serwera webowego, gdzie uruchomić można prostą aplikację w PHP.
Projekt składa się z dwóch głównych elementów:
- Lokalizatora, który jest ukryty w samochodzie i przesyła informacje GPS za pośrednictwem sieci GPRS (komórkowej) do Internetu,
- Aplikacji internetowej, która odbiera informacje GPS z urządzenia śledzącego i umożliwia ich prezentację, aby zlokalizować położenie pojazdu.
Tracker jest zbudowany na bazie modułu Arduino Mega z dołączonym shieldem zapewniającym możliwość odbierania i dekodowania sygnałów systemu nawigacji satelitarnej (GPS, GLONASS, Galileo i innych – w zależności od lokalizacji i możliwości wybranego przez nas modułu) oraz shielda umożliwiającego przesyłanie danych poprzez sieć komórkową (GPRS).
Aplikacja internetowa została napisana w języku PHP. Korzysta z bazy danych MySQL jako magazynu danych dotyczących położenia monitorowanego pojazdu. Zaprezentowana w artykule implementacja to jedynie minimalistyczny program składający się z REST-owego API, które odbiera informacje z trackera i wyświetla lokalizację na mapie. Istnieje możliwość rozbudowania aplikacji o dodatkowe funkcje, jeśli takowe są potrzebne.
Potrzebne elementy
Do budowy urządzenia śledzącego potrzebne będą nam:
- moduł Arduino Mega,
- moduł transceivera GPRS, najlepiej w postaci shielda kompatybilnego ze standardem Arduino,
- moduł odbiornika GPS, również w postaci standardowego shielda.
Arduino Mega jest mózgiem całego urządzenia. Znajdujący się w tym module mikrokontroler (ATmega2560) zajmuje się odczytywaniem komunikatów zbieranych przez odbiornik GPS, formatowaniem ich i wysyłaniem przez sieć bezprzewodową do aplikacji internetowej. Konieczne jest załadowanie odpowiedniego oprogramowania układowego (firmware) do mikrokontrolera, gdzie wpisany będzie szereg informacji dla konkretnej aplikacji, takich jak adres serwera WWW, dokąd wysyłane są dane GPS.
Autor zaznacza, że początkowo próbował zastosować zamiast tego modułu zwykły, podstawowy moduł Arduino; okazało się jednak, że ograniczenia m.in. w ilości pamięci tego układu uniemożliwiły uruchomienie tej konfiguracji. Warto zainwestować w droższy moduł o wyższych parametrach, aby uprościć tworzenie i implementację aplikacji, a także zostawić możliwość rozbudowy aplikacji czy systemu w przyszłości.
Drugi z potrzebnych modułów – shield GPRS – potrzebny jest do dwukierunkowej transmisji danych pomiędzy trackerem a aplikacją internetową. Autor konstrukcji wybrał shield GPRS firmy Seeed Studio z uwagi na proste, standardowe podłączenie do modułu Arduino i sprawdzone działanie w ekosystemie Arduino. Shield ten nie wymaga żadnych modyfikacji przed zastosowaniem w naszym urządzeniu.
Oprócz samego modułu GPRS musimy zaopatrzyć się także w kartę SIM. Należy ją zainstalować w module GPRS, aby mógł korzystać z sieci komórkowej. W module najlepiej sprawdzi się karta SIM wyłącznie do transferu danych. Tego rodzaju karty oferuje większość dostawców obecnych na naszym rynku – zazwyczaj są one stosowane w systemach zdalnych sensorów itp.
Ostatnim modułem, jaki jest potrzebny w tym systemie, jest oczywiście odbiornik GPS. Autor wybrał moduł GPS firmy Adafruit, który również jest w pełni kompatybilny ze standardem Arduino, aczkolwiek w tej aplikacji wymaga kilka drobnych zmian. Moduł GPS montowany jest bezpośrednio na module GPRS, co jest istotne, gdyż moduł GPS także wykorzystuje łączność komórkową, do uzyskiwania codziennych poprawek itp., które mają na celu zwiększenie precyzji pomiaru położenia poprzez GPS.