GPSは、車両追跡システム、GPSクロック、事故検出アラートシステム、交通ナビゲーション、監視システムなど、多くの電子機器プロジェクトやアプリケーションで使用される非常に便利なデバイスです。しかし、問題はGPSを使用してGPSからデータを読み取る方法です。Arduinoを使用して、GPSデータをコンピューターに直接簡単に取り込むことができます。
GPSは全地球測位システムの略で、正確なUTC時間(協定世界時)で地球上の任意の場所の緯度と経度を検出するために使用されます。このデバイスは、衛星から毎秒、時刻と日付の座標を受信します。GPSは非常に高い精度を提供し、位置座標以外のデータも提供します。これについては後ほど説明します。
このarduinoGPSチュートリアルでは、コンピューターとArduinoを使用してGPSモジュールをテストまたはインターフェースする方法を説明します。GSMをコンピューターに接続するには、USB to SerialConverterまたはArduinoBoardが必要です。ここでは、Arduinoボードを使用してGPSをインターフェースしています。電源には、Arduinoボード、GPSモジュール、コンピューター、12v /3.3vアダプターのみが必要です。ここでは、GPS受信機モジュールSKG13BL(上の図に表示)を使用しました。
Arduinoのシリアル回路のみが必要なため、コンピューターに接続する前に、まずArduino IC(Atmegaチップ)をArduinoボードから取り外す必要があります。これはゲートウェイモードと呼ばれます。ICの取り外しを下の図に示します。
次に、下の図に示すような接続を行います。
- GPSTXピンからArduinoのデジタルPIN1(TXD)
- ArduinoのGPSグランドピンからGNDピンへ
- GPS電源(3.3v)ピンからArduinoの3.3vピン
接続後、USBケーブルをコンピューターに接続し、コンピューターでArduino IDEソフトウェアを開き、comポートを選択し、シリアルモニターを開いてシリアルポートをリッスンし、ArduinoとGPSモジュールの電源を入れます。
これで、以下のようなArduinoシリアルモニターウィンドウにGPSデータが表示されます。以下は2つのスナップショットです。1つはGPSが範囲内にない場合、もう1つはGPSが範囲内にある場合です。
GPS受信機が範囲外の場合のGPSデータ:
GPS受信機が範囲内にあるときのGPSデータ:
シリアルウィンドウでは、$記号で始まるいくつかの文を見ることができます。これらはNMEAの文です。GPSモジュールは、リアルタイム追跡位置データをNMEA形式で送信します(上のスクリーンショットを参照)。NMEA形式はいくつかの文で構成されており、4つの重要な文を以下に示します。NMEAセンテンスとそのデータ形式の詳細については、こちらをご覧ください。
- $ GPGGA:全地球測位システムの修正データ
- $ GPGSV:GPS衛星が見える
- $ GPGSA:GPSDOPとアクティブな衛星
- $ GPRMC:推奨される最小の特定のGPS /トランジットデータ
これらの文字列には、時刻、日付、経度、緯度、速度、いいえなどの多くのGPSパラメータが含まれています。使用済み、高度、その他多くの衛星の数。
任意の場所の座標と時間に、$ GPGGAと$ GPRMCを使用できます。
日付と時刻には、$ GPRMC文字列を使用できます。
GPSモジュールを使用して任意の場所を追跡する場合、必要なのは座標のみであり、これは$ GPGGA文字列で見つけることができます。$ GPGGA(全地球測位システム修正データ)文字列のみがプログラムで主に使用され、他の文字列は無視されます。この文字列は、次のような修正データで構成されます。
$ GPGGA、104534.000,7791.0381、N、06727.4434、E、1,08,0.9,510.4、M、43.9、M,, * 47 $ GPGGA、HHMMSS.SSS、latitude、N、longitude、E、FQ、NOS、HDP 、高度、M、高さ、M 、、チェックサムデータ
識別子 |
説明 |
$ GPGGA |
全地球測位システムの修正データ |
HHMMSS.SSS |
時間、分、秒、ミリ秒の形式の時間。 |
緯度 |
緯度(座標) |
N |
方向N =北、S =南 |
経度 |
経度(座標) |
E |
方向E =東、W =西 |
FQ |
品質データを修正する |
NOS |
使用されている衛星の数 |
HDP |
精度の水平希釈 |
高度 |
高度(海抜メートル) |
M |
メーター |
高さ |
高さ |
チェックサム |
チェックサムデータ |
また、$ GPRMC文字列には、主に速度、時刻、日付、位置が含まれています
$ GPRMC、123519.000、A、7791.0381、N、06727.4434、E、022.4,084.4,230394,003.1、W * 6A $ GPRMC、HHMMSS.SSS、A、latitude、N、longitude、E、speed、angle、date、MV 、W、CMD
識別子 |
説明 |
RMC |
推奨される最小文C |
HHMMSS.SSS |
時間、分、秒、ミリ秒の形式の時間。 |
A |
ステータス// A =アクティブおよびV =ボイド |
緯度 |
緯度49度 16.45分 北 |
N |
方向N =北、S =南 |
経度 |
経度(座標) |
E |
方向E =東、W =西 |
速度 |
ノット単位の速度 |
角度 |
度単位のトラッキング角度 |
日付 |
タイムスタンプ(UTCでの日付) |
MV |
磁気変動 |
W |
変化の方向E / W |
CMD(* 6A) |
チェックサムデータ |
ほとんどの場合、この文字列は時間、日付、速度を測定するために使用されます。