LoginSignup
0
0

ESP32-S3-WROOM1とSIM7080GでIOT開発(1日目)

Last updated at Posted at 2023-07-20

image.jpg

LilyGo-T-SIM7080Gを購入した。

ESP32とSIM7080Gがセットになっている。

これで、Wifiのない環境でもIoTを導入できるはず。

電子工作も組込開発も経験ゼロのど素人だが、

2023年、我々にはGoogleとChatGPTそしてDEEPLがある!

5年前にLoRaでIoTを導入しようとしたが挫折してしまった。

やる気さえあれば知識はいらない時代になったのだ(と思いたい)。

SIM7080GはLTEとGPSが使える。

LilyGo-T-SIM7080Gはソーラーパネルで充電できるようだ。

カメラを差し込む端子もついている。

ドキュメントはGitHubにメーカーが置いてくれている。

しかも安い!!送料込みで5000円以下!!もちろん、みんな大好き技適マーク付き。

さて手始めに、GPSで座標を取得してみたが、

AT+CGNSINF
AT+CGNSINF

+CGNSINF: 1,,,0.000000,0.000000,-18.000,,,1,,0.1,0.1,0.1,,,,9999000.0,6000.0

OK
AT+CGNSINF
AT+CGNSINF

+CGNSINF: 1,,,0.000000,0.000000,-18.000,,,1,,0.1,0.1,0.1,,,,9999000.0,6000.0

OK

と表示される。

動いてるっぽいけど、屋内だと座標を取得できないらしい。屋外に移動しても、

AT+CGNSINF のみ表示されるだけ。

一度室内に戻って、リセットしてGPSアンテナを差し直したら動いた。

OK
AT+CGNSINF
AT+CGNSINF

+CGNSINF:
(数字がいっぱい)

OK

lat:(数字がいっぱい) lon:(数字がいっぱい)
speed:9.94 altitude:-2835.54
year:2023 montoh:7 day:20 hour:14 minutes:23 second:30

うーん、よくわからん。まずは、座標をGoogleMAPで表示するとかを作らないといけないなぁ。

+CGNSINF: ってなんですか?

CHATGPTの回答

+CGNSINFは、SIM7080GモジュールからのGPS情報を取得するためのATコマンドです。このコマンドを使用すると、現在の位置情報やその他のGPS関連の情報を取得できます。

具体的には、以下のような情報を含んでいます:

+CGNSINF: <gnss run status>,<fix status>,<UTC date & time>,<latitude>,<longitude>,<altitude>,<speed>,<course>,<fix mode>,<HDOP>,<PDOP>,<VDOP>,<GPS satellites in view>,<GNSS satellites used>,<GLONASS satellites used>,<BEIDOU satellites used>,<GNSS satellites in view info>,<GNSS satellites used info>,<GLONASS satellites used info>,<BEIDOU satellites used info>
  • <gnss run status>: GNSSモジュールの実行状態(0: 非動作、1: 動作中)
  • <fix status>: 位置情報の取得状態(0: 位置情報なし、1: 位置情報あり)
  • <UTC date & time>: 協定世界時(UTC)での日付と時刻
  • <latitude>: 緯度
  • <longitude>: 経度
  • <altitude>: 高度
  • <speed>: 速度
  • <course>: 方位角
  • <fix mode>: 位置情報の取得モード(0: 2D Fix、1: 3D Fix)
  • <HDOP>: 水平精度指標 (HDOP: Horizontal Dilution of Precision)
  • <PDOP>: 位置精度指標 (PDOP: Position Dilution of Precision)
  • <VDOP>: 垂直精度指標 (VDOP: Vertical Dilution of Precision)
  • <GPS satellites in view>: 可視衛星数(GPS)
  • <GNSS satellites used>: 使用衛星数(全GNSS)
  • <GLONASS satellites used>: 使用衛星数(GLONASS)
  • <BEIDOU satellites used>: 使用衛星数(BEIDOU)
  • <GNSS satellites in view info>: 可視衛星情報(全GNSS)
  • <GNSS satellites used info>: 使用衛星情報(全GNSS)
  • <GLONASS satellites used info>: 使用衛星情報(GLONASS)
  • <BEIDOU satellites used info>: 使用衛星情報(BEIDOU)

したがって、+CGNSINFコマンドの応答を解析することで、現在の位置情報やその他のGPS関連の情報を取得することができます。」

なるほど、、、

実際に測った場所から3.5kmくらい誤差がある。

そして、俺は今、altitude:-2835.54

-2835mの地下世界におるんやな。

追記)

やっぱ屋外の開けたところじゃないとGPS信号を取得しないみたい。開けたところならちゃんと取得できた。かなり正確。

逆にiPhoneとか屋内でも位置座標でるからすごいよな。

GPSにも種類があるみたいで、ChatGPT曰く

『上記のコードのコメントセクションでは、GNSSの動作モードを設定するためのATコマンドが説明されています。GNSSの各システム(GPS、GLONASS、BEIDOU、GALILEO、QZSS)のNMEAデータの出力を制御するために使用されます。

各モードの設定は次のようになります:

  • gps mode: GPSの動作モードを設定します。1を指定するとGPSのNMEAデータの出力が開始されます。

  • glo mode: GLONASSの動作モードを設定します。0を指定するとGLONASSのNMEAデータの出力が停止されます。

  • bd mode: BEIDOUの動作モードを設定します。0を指定するとBEIDOUのNMEAデータの出力が停止されます。

  • gal mode: GALILEOの動作モードを設定します。0を指定するとGALILEOのNMEAデータの出力が停止されます。

  • qzss mode: QZSSの動作モードを設定します。0を指定するとQZSSのNMEAデータの出力が停止されます。

上記のコードでは、GNSSの動作モードを設定するためのATコマンドがコメントアウトされているため、GNSSモードの設定が行われません。必要に応じて、GNSSシステム(例えば、GPS、BEIDOU、QZSS)のNMEAデータ出力を開始するために、適切なATコマンドを使用して設定を行ってください。』だそうだ。

つまり、日本仕様だと

// GNSS Work Mode Set GPS+QZSS
modem.sendAT("+CGNSMOD=1,0,0,0,1");
modem.waitResponse();

/*
GNSS Command,For more parameters, see 212 page.
range: 1000-60000 ms
minInterval is the minimum time interval in milliseconds that must elapse between position reports. default value is 1000.
range: 0-1000
Minimum distance in meters that must be traversed between position reports. Setting this interval to 0 will be a pure time-based tracking/batching.
:
0 Accuracy is not specified, use default.
1 Low Accuracy for location is acceptable.
2 Medium Accuracy for location is acceptable.
3 Only High Accuracy for location is acceptable.
*/
// minInterval = 1000, minDistance = 0, accuracy = 0
modem.sendAT("+SGNSCMD=2,1000,0,0");
modem.waitResponse();

が良いらしい。ただし、

『上記のコードでは、GNSSの動作モードをGPSとQZSSに設定しています。また、最小インターバルを1000ミリ秒(1秒)に設定し、最小距離を0メートルに設定しています。これにより、位置情報のレポート間の最小時間間隔と最小距離が設定されます。

これらの設定を適用すると、日本の地域で正確なGPS情報を取得できるようになります。ただし、環境によってはGPS信号の受信が妨げられる場合があります(例:建物の内部や深い谷間など)。屋外の開けた場所でテストすることをおすすめします。』

ま、とにかく開けたところでね〜ってことだ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0