2019年8月1日木曜日

750円の中華GPSから時刻を拾う(M5Stack)

AliExpressでやっっすいGPSレシーバーを見つけたので試してみました。

本体と5ピンのコネクタがついてます。忘備録として書いておくと、写真の状態で赤から順に+3.3V, GND, Tx, Rx, PPSです。


配線細いので、ピンを圧着します。前の写真から20分ぐらいかかっているけど、そのうち15分はスミチューブを探していました。片付けよう……部屋を……。



で、マイコンと接続。軒下から持ち出せないと不便なので、ディスプレイ付きM5 Stackを使います。GND, 3V3, Txを16, Rxを17に接続します。Hardware Serial 2を使うのでGPIO16はRx, GPIO17はTxになり、相互に通信できるわけです。レシーバーとの通信速度は9600bpsにセットします。

あとはただ受信して $GPRMC が含まれる行を切り取ってM5 StackのLCDに表示するだけ……と思ったら何もでません。

このレシーバー、標準状態ではGNSSなので、$GPRMCではなく$GNRMCにしないといけません。で、めでたくM5の画面上には時刻(UTCなので9時間ずれます)などが表示されるはず……と思いきや、でません。室内だと全然衛星を補足してくれません。まぁ当然ですけども。



で、一度ベランダに出て、衛星を補足したあとは部屋の中でも検知できます。画面上135438=22時54分38秒と出ているのがGNSSから取得した時刻です。

で、衛星情報はモジュール内でバックアップされているはずなので、Vcc - GND間に1Fのキャパシタを入れてみたところ、Vccを抜いて10分間後に再度電源を供給しても時刻の取得が可能でした。一次リチウムバッテリなら小さいのでも数日は楽勝ですね。


ソースはこんな感じ。


0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。