Подключили GPS

Подключили GPS

Подключили GPS

Мы успешно подключили датчик GPS к модулю Arduino UNO. Координаты определились, на SD карту всё записано. Теперь наш метеозонд может получить данные о своей геолокации и сохранять их для истории на флешку.
Следующим шагом мы научим метеозонд отправлять СМС.
Ну а пока вот кусок кода и пару фото:

#include

File myFile;
TinyGPS gps;
SoftwareSerial gpsSerial(8, 9); //номера пинов, к которым подключен модуль (RX, TX)

bool newdata = false;
unsigned long start; //переменная типа long (до 4млрд)
long lat, lon; //переменные для хранения широты и долготы
unsigned long time, date; //переменные для хранения времени и даты по GPS

void setup(){
gpsSerial.begin(9600); // установка скорости обмена с приемником
Serial.begin(9600);
Serial.println(«Waiting data of GPS…»);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.print(«Initializing SD card…»);
if (!SD.begin(4)) {
Serial.println(«initialization failed!»);
return;
}
Serial.println(«initialization done.»);

}

void loop(){

if (millis() — start > 1000) //установка задержки в одну секунду между обновлением данных
{
newdata = readgps();
if (newdata)
{
start = millis();

gps.get_position(&lat, &lon);
gps.get_datetime(&date, &time);
Serial.print(«Lat: «); Serial.print(lat);
Serial.print(» Long: «); Serial.print(lon);
Serial.print(» Date: «); Serial.print(date);
Serial.print(» Time: «); Serial.println(time);

myFile = SD.open(«data.txt», FILE_WRITE);

myFile.println(lat);
myFile.println(» «);
myFile.println(lon);
myFile.close();
delay(5000);
}}
}

// проверка наличия данных

bool readgps()

{
while (gpsSerial.available())
{
int b = gpsSerial.read(); //в библиотеке TinyGPS имеется ошибка: не обрабатываются данные с \r и \n
if(‘\r’ != b)
{
if (gps.encode(b))
return true;
}
}
return false;

}

Админ Ученический