[Wio LTE] GPSのスケッチ例に仕掛けられた罠 #wiolte

ソラコム信州UGでWio LTEハンズオンをして、スターターキットも購入したので、せっかくなので色々試して手を動かしてみよう!の記録です。

さて、今回は、GPSですよ!

奥まった窓もないシェアオフィスの中では、GPS測定ができない・・・

ここは、長野県上田市です。寒いです。無理です。

Wio&GPS

寒いです。しばらくすると、シリアルモニタのログも止まってしまったんですが、寒さにMacかWioかセンサーが耐えられなくなったんでしょうか・・・(違ったんですがw。その話はあとで。)

プログラム準備編

まず、Grove-GPSの解説ページをみます。SeeedのWikiページから探せます。

Grove \- GPS \- Seeed Wiki

Grove - GPS - Seeed Wiki

UARTにつなげます。カチッとはめるだけなので、楽ですね・・・。

スケッチ例 grove-gps

Arduinoのスケッチ例ですでにgrove gpsがあるので、これをコンパイルして書き込みして、実行します。

シリアルモニタに結果が出力されますが・・・・・・・肝心の緯度経度が、出てきません。

GPSシリアルモニター

しかも、衛星の数が4つ取れたところで、シリアルモニターがストップしてしまいます。

なんでやー。

電源供給が足りないのか。。。と思案したり、だーいぶ悩んだんですが、スケッチ例ではうまくいかない、という結論です。

GpsDataとして確保しているのが、スケッチ例では、60となっていますが

200くらいに増やしてあげてください。

無事にシリアルコンソールに出力されました。

衛星が取得できて、緯度経度が取得できたけど、それを蓄積できる領域が足りませんでした、という罠でした。

GPSのNMEAフォーマット

さて、ここに出力されているのは、GPSのNMEA フォーマットですね。

こちらに詳しく値が何なのかの仕様がかかれてありますのでご参考に。

GPSのNMEAフォーマット 

TinyGPS

ちょっと表記がわかりにくいので、「TinyGPS++」を使います。

TinyGPS++ | Arduiniana

取得した値をわかりやすく表示することができます。

TinyGPSを使った表示

TinyGPS++をダウンロードしてzipファイルをインクルードします

スケッチ例のGpsReadの関数に追加

表示関数

結果

シリアルコンソールで確認です!

緯度、経度が表示できました。

シリアルモニター

結局、GPSのデバッグは東京のオフィスの窓際でせっせとやりました。

さて、次は、何を使ってみようかな・・・・。