Tracker APRS-IS via GSM

Tracker ma za zadanie wysyłać ramki do serwera APRS przy użyciu sieci komórkowej. Częstotliwość wysyłania pozycji jest uwarunkowana ustawieniami w opcjach Smart Beaconing.

Zdjęcie trakera wewnątrz:

Tracker składa się z sześciu tanich i łatwo dostępnych modułów:

  1. Przetwornicy step-down LM2596 3,2V-35V 3A
  2. Arduino Nano
  3. GPS Neo6m
  4. modem GSM SIM800L
  5. ładowarka do baterii Li-Ion TP4056
  6. baterii Li-Ion 3,7V 3500mAh

Schemat trakera:

Moduły trzeba połączyć według schematu, wyedytować odpowiednie opcje w pliku INO i wgrać do Arduino. Pracę programu sygnalizuje wewnętrzna dioda LED w Arduino. Po włączeniu zasilania LED zaświeci się ciągłym światłem, oznacza to, że program czeka, aż GPS złapie “fixa”. Migający LED oznacza działanie algorytmu Smart Beaconing a ciągłe świecenie, wysyłanie pozycji via moduł GSM. Smart Beaconing to sposób na zmniejszenie ilości ramek wysyłanych do APRS-IS. Ramki wysyłane są proporcjonalnie do prędkości przemieszczania się i przy zmianie kursu. W ustawieniu odpowiednich parametrów może pomóc APRS Smartbeaconing Simulation.

Traker na baterii Li-Ion o pojemności 3500 mAh działa ponad 36 godzin bez przerwy. Oczywiście ten czas zależy od częstotliwości wysyłania pozycji, oraz od odległości do BTSa operatora sieci komórkowej.

Układ ładowania akumulatora jest podwójny: Możemy ładować z wtyku USB przez ładowarkę TP4056. Ładuje ona prądem 1A. Czas ładowania to około 4 godzin. Przetwornica step-down LM2596 pozwala na ładowanie akumulatora prądem 3A co skraca czas do niewiele ponad godziny. Napięcie na przetwornicy ustawione jest na 4,2V. Jej wyjście podłączone jest bezpośrednio do akumulatora. Ładowanie działa przy napięciu od 6 do 32V.


Linie do edycji w programie:

Ustawienia znaku, hasła i komentarza:

char callsign[] = "SP3VSS-5"; // tu wpisz swój znak
char aprspass[] = "99999"; // wpisz hasło 
char comment[] = "Traker APRS GSM"; // opis swojej stacji

Ustawienia Smart Beaconing:

#define LOW_SPEED 5           // [km/h] prędkość minimalna
#define HIGH_SPEED 80         // [km/h] prędkość maksymalna

#define SLOW_RATE 300         // [sec] częstotliwość wysyłania przy prędkości minimalnej
#define FAST_BEACON_RATE  30  // [sec] częstotliwość wysyłania przy prędkości maksymalnej

W przypadku zmiany pinów obsługujących modem GSM i GPS można zmienić to w tych liniach:

SoftwareSerial myGSM(10, 11);   // SIM800L pin TX to Arduino pin 10, SIM800L pin RX to Arduino pin 11
SoftwareSerial myGPS(6, 7);   // GPS Neo6M pin TX to Arduino pin 6

W razie chęci edycji kształtu ramki wysyłanej do serwera można to zrobić w tej linii:

sprintf(sentence, "%s>APRS,TCPIP*:=%s%s/%s%s<%03d/%03d/GPRS Tracker // Sat: %d // Bat: %sV /A=%06d\n", callsign, clla, cns, cllon, cew, inthead, intspds, intsats, cvbatt, intalt);

Gdy chcesz zmienić ikonę wysyłaną do serwera należy wyedytować jeden znak. Ikona APRS jest umieszczona w miejscu oznaczonym białym znakiem <. Moja ikona to motocykl.

Wszystkie ikony dostępne są na stronie http://www.aprs.pl/ikony.htm

sprintf(sentence, "%s>APRS,TCPIP*:=%s%s/%s%s<%03d/%03d/GPRS Tracker // Sat: %d // Bat: %sV /A=%06d\n", callsign, clla, cns, cllon, cew, inthead, intspds, intsats, cvbatt, intalt);

Edycja adresu IP serwera APRS-IS

myGSM.println(F("AT+CIPSTART=\"TCP\",\"62.69.192.233\",\"14580\""));

Wykorzystałem kartę SIM operatora Virgin. Koszt karty to 5 złotych. Po doładowaniu dowolną kwotą karta jest aktywna przez 12 miesięcy.


Obudowa to Z-44 firmy Kradex

Wyprowadziłem światłowodami diody LED na górną ścianę obudowy

Diody oznaczają:

  1. Zielona poprawna praca arduino, czerwona – wysyłanie ramki GSM
  2. Świecąca ciągle – brak fix’a GPS, mrugająca – fix OK.
  3. Zgaszona – brak sieci GSM, mrugająca szybko – łączenie z siecią GSM, mrugająca wolno – połączony z siecią GSM
  4. Czerwona – ładowanie akumulatora, niebieska – akumulator naładowany.

Na serwerze aprs.fi tak widać ramkę z trakera:


Projekt trakera pobrany z strony : https://sq1kw.info/2021/02/tracker-aprs-is-via-gsm/