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 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。