ESP32でRTCM3受信機


ESP32でRTCM3受信機

農業業界で少しづつ普及しつつあるRTKですが、基地局の補正情報をトラクターの自動操舵装置に流さないとならない、という制約があります。
現状、AndroidでLefebure NTRIP Clientを使うのが一般的ですが、iPhoneだったりガラケーでは使えないのでESP32からテザリングで基地局の補正情報を拾ってくるものを作ってみました。

また、従業員など複数の利用者がいる場合でも、テザリングのIDとPasswordを共通化しておけば、スマホや人間が変わっても使えるというメリットもあります。

材料

Arduino RS232Cシールド https://www.switch-science.com/catalog/1859/
RS232Cケーブル https://www.amazon.co.jp/gp/product/B078SRG81K/

Arduinoに入れるプログラム

https://github.com/GLAY-AK2/NTRIP-client-for-Arduino
WiFi,NTRIP Casterの設定を入れます。
初期設定のままだとハードウェアシリアルのUART0に出力されますが、デバッグ等のためにUART2とかに補正データを出力した場合は、ソースの変更とボードのジャンパーピンも変更してください。

NTRIPClientSample.ino
26行目に追加 Serial.begin2(115200);
67行目 Serial2.print(ch);

またUART1を使う場合はハードウェアの制約があります。こちらを参考にしてください。
https://qiita.com/T-YOSH/items/0ce41136c535c723affb

蛇足1

試してないけど、RN42とかのBluetooth SPPモジュール使えば無線化できるはず。
RN42 XBee http://akizukidenshi.com/catalog/g/gM-08690/
XBeeシールド https://www.switch-science.com/catalog/1262/

蛇足2

NMEA出力ができる機種の場合、TinyGPS++を使ってAmbientに送ると、自動的に作業ログを作れます。(書いたソースはあるんだけどバグってるので調整中)