You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
1.6 KiB
87 lines
1.6 KiB
#include <SoftwareSerial.h>
|
|
#include <TinyGPS.h>
|
|
|
|
#define RXPIN 6
|
|
#define TXPIN 5
|
|
#define GPSBAUD 9600
|
|
|
|
TinyGPS gps;
|
|
SoftwareSerial uart_gps(RXPIN, TXPIN);
|
|
|
|
void getgps(TinyGPS &gps);
|
|
int value = 0;
|
|
char arr_o[] = { '*', '*', '*', 'o', '!' }, arr_x[] = { '*', '*', '*', 'x', '!' };
|
|
|
|
//setup
|
|
void setup() {
|
|
Serial.begin(9600);
|
|
uart_gps.begin(GPSBAUD);
|
|
|
|
Serial.println("");
|
|
Serial.println("GPS Shield QuickStart Example Sketch v12");
|
|
Serial.println(" ...waiting for lock... ");
|
|
Serial.println("");
|
|
}
|
|
|
|
void loop() {
|
|
//FSRsensor
|
|
value = analogRead(A0);
|
|
if(value >= 300){
|
|
for(int i = 0; i < 5; i++){
|
|
Serial.write(arr_o[i]);
|
|
}
|
|
}
|
|
else{
|
|
for(int i = 0; i < 5; i++){
|
|
Serial.write(arr_x[i]);
|
|
}
|
|
}
|
|
|
|
//gps
|
|
while(uart_gps.available())
|
|
{
|
|
int c = uart_gps.read();
|
|
if(gps.encode(c))
|
|
{
|
|
getgps(gps);
|
|
}
|
|
}
|
|
delay(3000);
|
|
}
|
|
|
|
//parshing code
|
|
void getgps(TinyGPS &gps)
|
|
{
|
|
char floatArr[10], buff[15];
|
|
float latitude, longitude;
|
|
int len;
|
|
gps.f_get_position(&latitude, &longitude);
|
|
|
|
//latitude
|
|
dtostrf(latitude, 10, 5, floatArr);
|
|
sprintf(buff, "***%s!", floatArr);
|
|
len = strlen(buff);
|
|
|
|
for(int i = len; i >= 0; i--){
|
|
if(buff[i] != ' '){
|
|
Serial.write(buff[i]);
|
|
}
|
|
}
|
|
|
|
//longitude
|
|
dtostrf(longitude, 10, 5, floatArr);
|
|
sprintf(buff, "***%s!", floatArr);
|
|
len = strlen(buff);
|
|
|
|
for(int i = len; i >= 0; i--){
|
|
if(buff[i] != ' '){
|
|
Serial.write(buff[i]);
|
|
}
|
|
}
|
|
|
|
Serial.println();
|
|
|
|
unsigned long chars;
|
|
unsigned short sentences, failed_checksum;
|
|
gps.stats(&chars, &sentences, &failed_checksum);
|
|
}
|