2021 기업연계프로젝트_컴퓨터소프트웨어공학 2조 팀 Sper
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

#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);
}