정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

파씽에 관하여
하리버 | 2020-03-02
 

1. 프로젝트 사용한 보드 종류

 nodemcu , ublox neo

 

 

2. 사용한 개발 프로그램명

  아두이노 IDE

 

 

3. 사용한 센서 모델명

  nodemcu , ublox neo-6m

 

 

4. 연결한 회로 설명 (또는 이미지)

 

 

5. 소스코드 (주석 필수)

 

#include <SoftwareSerial.h>

 

SoftwareSerial gpsSerial(10,11);

 

char c = "";

String str = "";

String targetStr = "GPGGA";

 

void setup() {

  // put your setup code here, to run once:

  Serial.begin(9600);

  Serial.println("Start GPS... ");

  gpsSerial.begin(9600);

}

 

void loop() {

  // put your main code here, to run repeatedly:

 

  if(gpsSerial.available())

    {

      c=gpsSerial.read();

      if(c == '\n'){

        

        if(targetStr.equals(str.substring(1, 6))){

          Serial.println(str); 

        }

        

        str = "";

      }else{

        str += c;

      }

    }

}

 

 

6. 문제점 및 에러 내용

  업로드는 되는데 파싱부분에서 c가 먹히질 않아 시리얼모니터에 나오지가 않습니다 해결방법이 있을까요?

프로필사진

판다마니아 2020-03-04 09:25:44

실제로 GPS 센서에서 어떤 데이터가 들어오는지 중간에 체크해주는 부분을 넣어서 확인해보면 좋을 것 같습니다.

 

현재 else 문에 str +=c를 하고 있으니 매번 문자를 추가할때 serial 로 데이터 출력하는부분을 넣어 데이터가 제대로 들어가는지 확인해보세요.

 

모든 데이터를 받았을떄('\n') 두번째 문자부터 7번째 문자까지 잘라보고(index 1-6) GPGGA 가 들어오는지 확인하면 될것 같습니다.

 

이전글   |    nodemcu 와 ublox neo-6m 관련입니다 2020-03-02
다음글   |    아두이노 클라이언트가 서버에 데이터 전송할 때 한 라인으로 데이터들을 한번에 보내고 싶습니... 2020-03-03