「Lora」タグアーカイブ

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

前回は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月までなので
どっちが先に切れるのか楽しみでございます。

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

またまたMakerfabs 様より素晴らしい製品たちを提供していただきました。

色々いただきましたので随時ここで紹介させていただきますが
今回は Lora Temperature/ Humidity/ Soil Moisture Sensor を紹介させていただきます。

 

 

Lora通信 土壌センサ

Lora Temperature/ Humidity/ Soil Moisture Sensor は温度センサ、湿度センサ、土壌水分センサを搭載し測定データをLora通信で送信するモジュールです。

Lora受信モジュールもいただきました。

Lora通信周波数のラインアップとして433MHz, 868MHz, 915MHzが用意されており、915MHzのセンサと受信モジュールをいただきました。

単4電池 2本で動作します。

下の動画ではセンサデータをLoraで受信し、受信機で更にWiFi送信してスマホで観測しています。めっちゃ便利ですね。

 

Arduinoコード書き込み

以下を参考にセンサと受信モジュールにArduinoコードを書き込みました。

Lora通信 土壌センサ

以下のライブラリを導入する必要があります。
 https://github.com/Makerfabs/Lora-Soil-Moisture-Sensor/blob/master/RadioHead.zip

以下の測定データLora送信サンプルコードを書き込みました。
 LoraTransmitterADCAHT10.ino

センサへのArduinoコード書き込みには3.3V USBシリアル変換モジュールが必要です。
私は以下を使用しました。

ボードは”Arduino Pro or Pro Mini”を選択。

書き込み時に注意が必要で以下の方法で実施しないと書き込みエラーとなります。
 書き込み前にセンサのリセットボタン押して、書き込み開始したらリセットを開放

書き込みが終了すると以下のようにシリアルモニタに
温度、湿度そして土の水分の電圧のデジタル変換値を送信している様子が表示されます。

Lora受信モジュール Maduino Lora Radio (915MHz)

以下のLora受信サンプルコードを書き込みました。
 LoraReceiver.ino

このモジュールにはUSBシリアル変換が再蔵されUSBマイクロ端子が搭載されていますのでUSBケーブル直結でコード書き込みが可能です。

アンテナをU.FL端子に接続して使用します。

 

動作

さてコードも書き込めましたので早速動作確認してみました。
土壌センサからの測定値をLora介して受信モジュールで受信しシリアルモニタで見ています。

いいですぇ。直接通信は場所を選ばないので便利ですね。

屋外実験

どれくらいの距離で送受信できるのか実験してみました。

手軽に実験するために受信モジュールのシリアル値をスマホで観測できるようにしました。
USBホストケーブルを介してスマホに接続してスマホアプリ Serial USB Terminal で受信結果を観ます。

 

豊平公園でどれくらい信号が届くのか実験してみました。

 
豊平公園の端から端まで信号受信ができました。
約338m離れても受信できたことになります。(参考: 地図をなぞって距離を計算)

 

RSSIが-100以下になると受信が難しくなるので338mはギリギリの距離かもしれませんが、
300mは容易に通信できる結果となりました。

 

技適未取得機器を用いた実験等の特例の届出

センサも受信モジュールにも技適マークはなかったので、以下で技適未取得機器を用いた実験等の特例の届出を行いました。

技適未取得機器を用いた実験等の特例制度

参考