M5Stack UnitCatM で HTTP通信
前回はUnitCatM Unitにスマホで使用しているSIMをぶち込んでpingなどで通信を確認いたしました。
引き続きいじくりましたので報告いたします。
目次
目標
前回ぶちあげたUnitCatM を用いての目標は以下の通りです。
- 格安データSIM探して契約
- 座標情報取得
- FTP通信
- コントローラ選定
- パワーセーブ
- ビンに詰める
- 川に投げる
目標 ①のデータSIM契約は現在よさげなものを調査中です。
ここでは目標②、③を中心に検討いたしました。
通信のON/OFF
前回はUnitの通信の開始のコマンドがなんなのか良く分からずにいたのですが
以下のATコマンドで通信のON/OFFできることがわかりました。
通信開始:AT+CNACT=0,1
通信停止:AT+CNACT=0,0
SIM7080G CAT-M/NB-IoT Unit
UNITCatM#M5Stack pic.twitter.com/h5b5UeIsCU— HomeMadeGarbage (@H0meMadeGarbage) September 17, 2021
参考
座標情報取得の検討
Unitの位置座標を取得したいと考えております。
ATコマンドの資料を紐解きますとGNSS用のコマンドが用意されております。
しかしUnitCatM UnitにはGNSS用のアンテナ端子はないので携帯通信基地局の位置情報使うことにします。
基地局位置情報のコマンドはATコマンドの資料p. 337に記載がありますので
早速実行してみました。
しかし、
+CLBS: <locationcode>
locationcode 1 : Location Failed
と位置情報の取得はできませんでした。
これがSIMのためなのか現状の基地局のためなのか不明です。
引き続き調査進めます。
移動したら状況かわるだろうか?
これもって おでかけしたい pic.twitter.com/e6sKNiEKBb— HomeMadeGarbage (@H0meMadeGarbage) September 18, 2021
外部通信の検討
Unitの位置情報が取得できた場合、その情報を定期的に外部に送信したいと考えております。
当初はFTPやEメールなど考えましたがHTTP通信で実施することにしました。
Urlにクエリパラメータで位置情報を付与することを想定しています。
サーバURLとして自宅サーバを指定
HTTP body lengthを設定
HTTP head lengthを設定
HTTP接続
GETリクエスト
ここでは変数a=1とした
無事にサーバにデータが届きました。
参考
おわりに
ついに携帯通信網による外部サーバへのデータHTTP通信が実現できました。
目標の達成にはまだまだ検討項目たくさんありますので
粛々と進めてまいりたいと思います。