Home Made Garbage

Lora通信 土壌センサの低消費電力化

ホーム
電子工作
Raspberry Pi
IOT
WEB

前回はMakerfabs 様よりいただいたLora通信 土壌センサの基本動作を堪能し、300m以上の伝達を確認いたしました。

Lora通信 土壌センサを使ってみた

土壌センサは単4電池2本で動作可能です。

ここでは、センサの長期動作を目指して消費電力を観測し低消費電力化を目指しました。

 

 

待機時の電流

通信していないときの待機電源電流を測定いたしました。
電源電圧は3.3Vとしました。

① デフォルト

サンプルコード LoraTransmitterADCAHT10.ino をそのまま書き込んだ時の待機電流です。

16.5 mA

② センサ電源OFF

サンプルコード LoraTransmitterADCAHT10.ino のL. 149のコメントアウトを解除して、測定後に温度湿度センサAHT10の電源を切ります。

15.5 mA

若干電流が低下しました。

③ マイコンスリープ

更に待機時にセンサ制御マイコンATmega328Pをスリープさせました。
Adafruitのウォッチドッグタイマでスリープを制御するライブラリを使用しました。
 https://github.com/adafruit/Adafruit_SleepyDog

11.2 mA

④ Loraモジュール リセット

更にマイコンSleep前にLoraモジュール をリセットしてOFFしました。

0.1 mA以下

以上により大幅に待機電流を減らすことができました。

 

通信1回の消費電力

送信パワー 23dBm:約12.0 μW
送信パワー   5dBm: 約  1.2 μW

通信による消費は非常に小さかったです。
さすがLora!

伝送距離に応じて送信パワーを下げたり通信回数を制限するとより低消費電力化が見込めますね(あたりまえ)。

消費電力

1分間の消費電力を測定したしました。
それぞれ約9秒に1回センサ値を送信するように設定しました。

① デフォルト

サンプルコード LoraTransmitterADCAHT10.ino をそのまま書き込んだ時

1分当たり 1.1 mW 消費

④ Loraモジュール リセット

サンプルコードにセンサOFF、マイコンスリープ、Loraモジュールリセットを追加しました。

1分当たり 0.3 mW 消費

1/3以下の低消費電力化に成功いたしました。

 

Arduinoコード ④ Loraモジュール リセット

低消費電力版のArduinoコードを記載します。

サンプルコード LoraTransmitterADCAHT10.ino を元に
Adafruitのウォッチドッグタイマスリープライブラリを導入しコディングしました。
 https://github.com/adafruit/Adafruit_SleepyDog

 
センサ測定後、L. 84で温度湿度センサをOFFします。

測定データ送信後、L. 137-140でLoraモジュールをリセットします。

Loraモジュールをリセット後、L. 143でマイコンをSleepさせて
8秒後(ウォッチドッグタイマ最大値)にSleep解除されます。

Sleep解除後に、L. 63でLoraモジュールを初期化し
L. 65で温度湿度センサをONします。

以上を繰り返し約9秒おきにセンサデータを送信します。

 

おわりに

Lora通信 土壌センサの低消費電力化ができたので単4電池でどれほど持つのか
実験してみたいと思います。

技適未取得機器を用いた実験等の特例の届出の期限が来年1月までなので
どっちが先に切れるのか楽しみでございます。

Related Posts

コメントはこちらから

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

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