やりたいこと

RaspberryPiにGPSモジュールを接続して緯度経度を出力したい

環境

  • ハードは RaspberryPi ZeroWH
  • OS は RASPBIAN STRETCH LITE
  • GPSモジュール
    -- GPS受信機キット 1PPS出力付き 「みちびき」3機受信対応(http://akizukidenshi.com/catalog/g/gK-09991/)
    -- GT-902PMGG 「GPS/GLONASS受信機(Galileo/BeiDou可)u‐blox M8搭載 みちびき3機受信対応」(http://akizukidenshi.com/catalog/g/gM-12905/)

変更した点:

基本的には以下ページの8~13まで
https://gist.github.com/CLCL/e0f840461e20a3a83179b4941d45c203

  • UART設定
    -- # raspi-config nonint do_serial 1
    -- /boot/config.txt 内の enable_uartを1へ変更

  • /dev/gps0 の設定

    # stty -F /dev/ttyS0 ispeed 9600
    # cat << 'EOS' | tee /etc/udev/rules.d/40-selialgps.rules
    KERNEL=="ttyS0", SYMLINK+="gps0"
    EOS
    
  • gpsd のインストール

    apt-get -y install gpsd gpsd-clients
    
  • gpsdの設定

    cat << EOS | sudo tee -a  /etc/default/gpsd
    USBAUTO="false"
    DEVICES="/dev/gps0"
    EOS
    

確認したこと:

-- GPS/GLONASS受信機(Galileo/BeiDou可)u‐blox M8搭載 みちびき3機受信対応 を接続したとき

    # cat /dev/gps0 
    C,V,,,,,,,,,,N*4D
    $GNVTG,,,,,,,,,N*2E
    $GNGGA,,,,,,0,00,99.99,,,,,,*56
    $GNGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*2E
    $GNGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*2E
    $GPGSV,1,1,01,16,,,09*76
    $GLGSV,1,1,00*65
    $GNGLL,,,,,,V,N*7A
    $GNRMC,,V,,,,,,,,,,N*4D
    $GNVTG,,,,,,,,,N*2E

-- GPS受信機キット 1PPS出力付き 「みちびき」3機受信対応 を接続したとき

    # cat /dev/gps0 
    $GPGGA,000044.799,,,,,0,0,,,M,,M,,*4F
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $GPRMC,000044.799,V,,,,,0.00,0.00,050180,,,N*46
    $GPZDA,000044.799,05,01,3880,,*56
    $GPGRS,000044.799,1,,,,,,,,,,,,*79
    $GPGST,000044.799,0.000,99999,99999,00.0,99999,99999,99999*47
    $GPGGA,000045.799,,,,,0,0,,,M,,M,,*4E
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E

質問したいこと:

  • /dev/gps0 には出力されているのでgpsライブラリの設定は問題ないという認識で問題ないでしょうか?
  • スマートフォンのGPSは届くのになぜ$GNRMCが V(警告)から変わらないのでしょうか?

不足している情報等ありましたらコメントお願いいたします。