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

  1. #include <SoftwareSerial.h>
  2. #include <TinyGPS.h>
  3. #define RXPIN 6
  4. #define TXPIN 5
  5. #define GPSBAUD 9600
  6. TinyGPS gps;
  7. SoftwareSerial uart_gps(RXPIN, TXPIN);
  8. void getgps(TinyGPS &gps);
  9. int value = 0;
  10. char arr_o[] = { '*', '*', '*', 'o', '!' }, arr_x[] = { '*', '*', '*', 'x', '!' };
  11. //setup
  12. void setup() {
  13. Serial.begin(9600);
  14. uart_gps.begin(GPSBAUD);
  15. Serial.println("");
  16. Serial.println("GPS Shield QuickStart Example Sketch v12");
  17. Serial.println(" ...waiting for lock... ");
  18. Serial.println("");
  19. }
  20. void loop() {
  21. //FSRsensor
  22. value = analogRead(A0);
  23. if(value >= 300){
  24. for(int i = 0; i < 5; i++){
  25. Serial.write(arr_o[i]);
  26. }
  27. }
  28. else{
  29. for(int i = 0; i < 5; i++){
  30. Serial.write(arr_x[i]);
  31. }
  32. }
  33. //gps
  34. while(uart_gps.available())
  35. {
  36. int c = uart_gps.read();
  37. if(gps.encode(c))
  38. {
  39. getgps(gps);
  40. }
  41. }
  42. delay(3000);
  43. }
  44. //parshing code
  45. void getgps(TinyGPS &gps)
  46. {
  47. char floatArr[10], buff[15];
  48. float latitude, longitude;
  49. int len;
  50. gps.f_get_position(&latitude, &longitude);
  51. //latitude
  52. dtostrf(latitude, 10, 5, floatArr);
  53. sprintf(buff, "***%s!", floatArr);
  54. len = strlen(buff);
  55. for(int i = len; i >= 0; i--){
  56. if(buff[i] != ' '){
  57. Serial.write(buff[i]);
  58. }
  59. }
  60. //longitude
  61. dtostrf(longitude, 10, 5, floatArr);
  62. sprintf(buff, "***%s!", floatArr);
  63. len = strlen(buff);
  64. for(int i = len; i >= 0; i--){
  65. if(buff[i] != ' '){
  66. Serial.write(buff[i]);
  67. }
  68. }
  69. Serial.println();
  70. unsigned long chars;
  71. unsigned short sentences, failed_checksum;
  72. gps.stats(&chars, &sentences, &failed_checksum);
  73. }