node.jsによるGPS受信

OpenBlocks IoT BX1とインテルEdison Kitを使用した活用事例です。

1. bluetoothでの接続

Dual Electronics社製のXGPS160を使用するためにbluetooth-serial-portnmea-0183を使用します。

bluetooth-serial-portを使用することでXGPS160と接続できます。

1-1. bluetooth-serial-portとnmea-0183のインストール

# npm install bluetooth-serial-port nmea-0183

 

1-2. 受信プログラム

// modules
var btSerial = new (require('bluetooth-serial-port')).BluetoothSerialPort();
var nmea = require('nmea-0183');

btSerial.findSerialPortChannel(bluetooth_address, function(channel) {
  btSerial.connect(bluetooth_address, channel, function() {
    console.log('connected');

    btSerial.on('data', function(buffer) {
      try{
        var gps = nmea.parse(buffer.toString('utf-8'));

        if (gps['id'] == 'GPRMC') {
          console.log('GPRMC');
          console.log(gps);
        } else {
        }
      }catch(e){
        console.log(e);
      }
    });
  }, function () {
    console.log('cannot connect');
  });
}, function() {
  console.log('found nothing');
});

console.log('btSerial.inquire > '+bluetooth_address);
btSerial.inquire();

※bluetooth_addressにはhcitool scanで表示される指定するGPSレシーバのbluetoothアドレスを指定する

1-3. 動作確認

# node プログラム名

2. シリアル接続

Adafruit社製のAdafruit Ultimate GPS Logger Shield – Includes GPS Moduleを使用するためにserialportnmea-0183を使用します。

serialportを使用することでAdafruit Ultimate GPS Logger Shieldと接続できます。

2-1. serialportとnmea-0183のインストール

# npm install serialport nmea-0183

 

2-2. 受信プログラム

// modules
var com = require("serialport");
var nmea = require('nmea-0183');

serialPort = new com.SerialPort(serial_port, {
  baudrate: parseInt(serial_baudrate),
  parser: com.parsers.readline(serial_readline)
});

serialPort.on('open',function(err) {
  console.log('serialPort: Port open');
});

serialPort.on('data', function(data) {

  try{
    var gps = nmea.parse(data)

      if (gps['id'] == 'GPRMC') {
        console.log('GPRMC');
        console.log(gps);
      } else {
      }
  }catch(e){
      console.log(e);
  }
});

※serial_portにはシリアルポート名(’/dev/ttyMFD1’)、serial_baudrateはボーレート(9600)、serial_readline(’\r\n’)は改行コードを指定する

2-3. 動作確認

# node プログラム名

3. データ

nmea-0183を使用することで以下の情報が取得できます。

・GPGGA

・GPGSV

・GPRMC

・GPVTG

・GPGSA

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中