wtorek, 19 marca
Shadow

Rejestracja danych z GPS na karcie SD dzięki Arduino

Prosty projekt rejestrujący dane z modułu GPS (NEO 6M) na kartę SD. Lokalizacje są przechowywane są w pliku dane.csv, a plik będzie zawierał w jednym wierszu takie dane jak (długość;szerokość;data;godzina). Oczywiście każda nowa lokalizacja to nowa linijka, dzięki czemu bez problemu wykorzystasz te dane dalej. Sam interwał pobierania pozycji GPS jak i czasu ustalamy w linijce
#define reload,
oczywiście czas podajemy w milisekundach.

arduino logger gps v1

Połączenie Arduino -> GPS NEO-6M:

Arduino GPS NEO-6M
5V VCC
GND GND
D2 Rx
D3 Tx

Połączenie Arduino -> moduł czytnika microSD

Arduino Moduł czytnika microSD
D4 CS
D13 SCK
D11 MOSI
D12 MISO
5V/3,3V Vcc
GND GND

Kod programu:

#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <SPI.h>
#include <SD.h>

#define reload 5000 // co ile ma pobierać pozycję oczywiście mili sekundach

static const int RXPin = 2, TXPin = 3;
static const uint32_t GPSBaud = 9600;

TinyGPSPlus gps;
SoftwareSerial tt(RXPin, TXPin);
unsigned long czas;

void setup()
{
tt.begin(GPSBaud);
SD.begin(4);
}

void loop()
{
while (tt.available() > 0)
if (gps.encode(tt.read()))
{
if(gps.location.isValid() && gps.date.isValid() && gps.time.isValid() && czas < millis())
{
File dta = SD.open("dane.csv", FILE_WRITE);
if(dta)
{
dta.print(gps.location.lat(), 6);
dta.print(";");
dta.print(gps.location.lng(), 6);
dta.print(";");
if (gps.date.day() < 10) dta.print("0");
dta.print(gps.date.day());
dta.print(".");
if (gps.date.month() < 10) dta.print("0");
dta.print(gps.date.month());
dta.print(".");
dta.print(gps.date.year());
dta.print(";");
if (gps.time.hour() < 10) dta.print("0");
dta.print(gps.time.hour());
dta.print(":");
if (gps.time.minute() < 10) dta.print("0");
dta.print(gps.time.minute());
dta.print(":");
if (gps.time.second() < 10) dta.print("0");
dta.print(gps.time.second());
dta.println();

dta.close();
czas = millis() + reload;
}
}
}
}

Plik ino do pobrania

5/5 - (1 ocena/y)

2 Comments

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *


Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.