HomeMadeGarbage Loading

M5Stack UnitCatM を Seeeduino XIAO で制御

ホーム
電子工作
Raspberry Pi
IOT
音楽

前回はUnitCatM によるHTTP通信を確認しました。

M5Stack UnitCatM で HTTP通信

ここではUnitCatM を制御するマイコンの検討を行いました。

 

 

目標

本件の目標は以下の通りです。

  1. 格安データSIM探して契約:現在調査中
  2. 座標情報取得:基地局の位置情報で検討中
  3. 外部への通信:HTTP通信で決定
  4. コントローラ選定
  5. パワーセーブ
  6. ビンに詰める
  7. 川に投げる

ここでは目標④、⑤の検討を実施いたしました
 

コントローラ検討

これまではPCからATコマンドをおくって動作確認しておりましたが、実際にはマイコンからコマンド制御する必要があります。

ここではコントローラとしてSeeeduino XIAOを採用しました。
小さくてカワイイですし、しっかりめのパワーセーブ機能もあるためです。

XIAOのシリアル端子(D6, D7)からコマンドを送受信します。

 
しっかりシーケンスを組んで通信の開始や位置情報の取得、HTTP送信を実施します。

 

パワーセーブの検討

マイコン XIAO

XIAOは送信時以外はSleepさせて消費電力を抑えます。

サンプルコードWakeUpOnRTCInterrupt.ino のようにRTCによる設定時刻で起床するようにしたかったのですが
RTCInt.h がないとエラーがでるので
RTCの設定にはSeeed_Arduino_RTCライブラリを使用しました。

消費電流は Vin = 5Vで
 起床時:14.4mA
 Sleep時:1.46mA
とSleepが大きく効いておりました。

以下の参考記事によるとパワーオンLEDを切ると更に消費電力が減るとのことです。
場合によってはLED排除も検討したいです。

参考

UnitCatM

UnitCatMは電源の供給をイネーブルピン付きのDCDCから供給するようにし
通信時以外はXIAOでDCDCのENピンを制御して電源遮断でパワーセーブすることにしました。

これによって通信時以外のUnitCatMによる消費電力は0となります。

 

システム構成

バッテリは未定ですが現状のシステム構成は以下の通りです。
XIAOでATコマンドを送信し、更にDCDCのENピンを制御してUnitCatMをON/OFFします。

部品

 

 

Arduino IDEコード

 

以下のシーケンスでATコマンドをXIAOからUnitCatMに送っています。
 ・AT導通確認
 ・ネットワーク通信開始
 ・基地局位置情報取得
 ・HTTP設定
 ・HTTPステート確認
 ・HTTP 基地局位置情報を付与して getリクエスト

HTTP getリクエスト送信後はRTCアラームを設定してnrgSave.standby();でスリープに入ります。

ここではRTC時刻を2021年1月1日 00:00:00に設定し、
アラームを1分後の2021年1月1日 00:01:00として起床するようにしています。

位置情報サーバ送信→1分スリープ→起床→‥‥を繰り返します。

消費電流は Vin = 3.7Vで
 通信時:45~167mA
 Sleep時:1.55mA
でした。

通信頻度を抑えればかなり長期の運用が可能なのではないでしょうか。

 

おわりに

ついにコントローラの選定もでき、消費電力も抑えれそうなことがわかってきました。

次回はデータSIMを契約して長期の動作確認を実施したいと考えております。

Related Posts

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください