電源不要! ソーラーIoTデバイスを3万円台で作ってみた
筆者は2019年より、知人所有の耕作放棄地250坪の再生をしながら農園を手伝っています。ここでは農地の再生作業と同時に、IoTデバイスの実験も続けています。農園は筆者の自宅から50km離れていて、毎日のように様子を見に行くことが難しいためです。これまでに、雨量計や農作業時の熱中症予防アラートを送信するデバイスを自作しました。どちらも慣れない農作業をする私の助けになっています。
今年で農作業も3年目になり、土の状態も良くなって育てたい野菜も増えます。これまでのことを振り返ると、もっと畑らしく管理していくためにはIoTデバイスによる見守りの強化が必要と考えました。作物の種類、量が増えれば、より細かく(しかもなるべく少ない訪問回数で)畑の世話をしなければならないからです。
そこで、今までの取り組みを一歩進めて、農園のインフラとして「ソーラーパネル+バッテリーで稼働するIoTデバイス」を設置することにしました。農作業のための基礎的なセンシングに加え、今回は「屋外に設置するとどんな課題があるのか」を調べることも目的になっています。
今回のトライアルでやりたいこと
- ソーラーパネルでどの程度発電ができるか、基本的なデータをIoTで収集する。
- 同時に「温度」「湿度」「日照時間」などの環境データを、Arduinoを使用してIoTで取得できる仕組みを作る。
- 最終的には、ソーラーで使用できるWi-Fiルーターを組み込み、汎用的なインフラを作る。そのための基礎データ(どの程度実用的な発電ができるのか)を集める。
「見える化」には通信環境が必要
昨年は家庭菜園に雨量計と電池で長時間稼働するIoTデバイス(ドライコンタクトコンバーター)を設置して、降雨量をリアルタイムで可視化しました。降雨量データは、2週間に1回程度しか農園に行けない私にとって、畑の状態を知る上で非常に重要なものとなりました。ドライコンタクトコンバーターは、無電圧接点のON/OFFを検出してSIGFOXネットワーク経由でクラウドに雨量データを送信するデバイスです。ゼロからシステムを組む必要もなく、雨量計に接続してすぐに雨量データを得ることができる点が大きなメリットです。
今回はソーラーパネルの電力を使用してセンサーの数値をクラウドに送信する仕組みを作るために、「電源」「通信のしくみ」「マイコン」「センサー」などの各要素をどうやって組み合わせていくかを検討しなければなりません。したがって、雨量計のときよりも多くの検討が必要になりました。
以下に、検討段階で特に時間をかけて考えたポイントについて記します。
まずは、「お小遣いで設置できる電源システム」を考える
「なるべく安く」。これはどのDIYの分野にも言えることですが、自分のしたいことを最小限のコストで実現できるよう工夫が必要になります。ソーラーパネルやコントローラーは、安くてかつ評判の良さそうなものをAmazonで購入しました。パネルの固定に使用する支柱や、マイコンなどはできるだけ安価になるように調達を工夫。部材は野菜と交換でもらったり、筆者の在庫を使用したりして、調達しました。また、通信ユニットもコスパの良いものを選んでいます。
マイコンはArduinoを使用
マイコンは、実績のあるArduino UNOを使用しました。拡張性が高く、何より今回の実験に必要な要素が全て備わっていたのが最大の理由です。
IoTに使用するネットワークについては、今回はSORACOMのIoT用サービスである「SORACOM Air」を採用することにしました。月額数百円レベルから利用可能なサービスがあり、DIYには適しています。また、Arduino用のLTE-Mシールド(送信ユニット)用サンプルコードも用意されていたので、IoTに関してはSORACOMのものをほとんどそのまま使用しています。
測定したい項目は「電圧」「温度」「湿度」「明るさ」
これらの項目は、農園の現状把握だけでなく今後IoTに関して実験を続ける上で重要な指標です。これら4つの測定項目を測定できるようにシステムを組み上げていきます。なお、後述しますが明るさセンサーは家にあった部品(CdSセルなど)を組み合わせて自作しています。
(次のテーマ)気軽に使えるWi-Fiルーターを探す
ソーラーパネルを電源にして、Wi-Fiルーターを屋外に設置しようと考え、性能、価格面で適したものを探しましたが、困難な面がありました。他の方法もありますが、いずれはSIM対応の手頃なWi-Fiルーターを探して取り付けることを計画しています。今回は、先にソーラーパネルについて知識を得て、次のステップに備えることにしました。
ステップ1. ソーラーパネルと充電システム
今回のプロジェクトの第一段階は、ソーラーパネルと充電システムの設置です。現在、部品の調達はAmazonなどで簡単にできますが、まずは前段階として実際に稼働しているシステムを見学し、先輩技術者に技術的なポイントなどを教えていただくことにしました。
ソーラーパネルと充電システムに関しては、和歌山大学客員教授でOrbital Engineering取締役社長の山口耕司先生に、同社の屋外に設置されたシステムを見学させていただきました。
山口先生からいただいた情報や別途収集した情報をもとに、筆者が実現したい内容をシステムとして構成したものを下記表に示します。
総費用はおよそ3万6000円になりましたが、4割近くをケース制作や設置のための費用が占めています。通常の屋内IoTならこの比率はせいぜい1~2割程度になるはずです。理由は後述しますが、屋外設置を前提とする際には必要な部材が増えるためです。
なお表中のとおり、「IoTの仕組みづくり」については、一部筆者の所有物を使用して制作しています。表中には読者が制作される場合のために、各パーツの参考購入金額・購入先を記しています。
IoTの仕組みづくりにかかった費用
用途 | 品名 | 購入先 | 価格(税込み) |
---|---|---|---|
ソーラーパネル&コントローラーセット | SAYA 12vバッテリーへ充電用 20W ソーラーパネル1枚 20A 12v/24v コントローラー付き | Amazon | ¥4,450 |
バッテリー(12V 5Ah) | LONG 12V 5Ah 高性能シールドバッテリー【高耐久タイプ】(WP5-12E) WP5-12 | Amazon | ¥3,450 |
マイコン | Arduino UNO(筆者の所有物を使用) | スイッチサイエンス | ¥3,300 |
Io通信用SIMカード | SORACOM Air SIMカード plan-D サイズ:ナノ(データ通信のみ/D-300MB) 1枚 x 1 | SORACOM | ¥902 |
IoT通信用シールド | LTE-M Shield for Arduino x 1 | SORACOM | ¥8,058 |
温湿度センサー | DHT-11 | スイッチサイエンス | ¥1,144 |
電圧センサー | OSEPP ELECTRONICS「電圧センサモジュール」抵抗分圧回路 | ロボショップ | ¥909 |
明るさセンサー | CdSセル(筆者の所有物を使用) | 秋月電子など | ¥100 |
ブレッドボード基板等 | 筆者の所有物を使用 | 千石電商など(参考) | ¥1,000 |
小計 | ¥23,313 |
ケースづくり・設置にかかった費用 (工程順)
用途 | 品名(メーカー名など) | 購入先 | 価格(税込み) |
---|---|---|---|
屋外用配線(ケース内) | VCTF0.5ほか | ホームセンター | ¥768 |
ケース取り付けボルト・圧着端子など | 六角ボルト・平型端子・ギボシ端子など | ホームセンター | ¥1,316 |
ケース・ケース止め金具 | 未来工業 | ホームセンター | ¥3,631 |
単管首振りベース | ホームセンター | ¥1,590 | |
ケース取り付け用アングル | ノーブランド品(加工費込み) | ホームセンター | ¥1,263 |
支柱用単管、接手類 | 筆者の協力者より寄贈(野菜と交換) | ---- | ¥0 |
保護管(フレキ)用ふた | ホームセンター | ¥156 | |
保護管(フレキ) | 筆者の所有物を使用 | ---- | ¥0 |
ケース組み立て用材料 | ロックタイト(ねじゆるみ止め)・ボルト類 | ホームセンター | ¥4,051 |
小計 | ¥12,775 |
合計 | ¥36,088 | |
---|---|---|
IoTの仕組みづくりにかかった費用 | ¥23,313 | 64.6% |
ケースづくり・設置にかかった費用 | ¥12,775 | 35.4% |
選定したソーラー電源システム
今回選定したソーラーパネルは35cm四方で、発電量が20W程度のものです。これにコントローラー、バッテリーを接続して電源ユニットを構成しています。ユニットの配線は、コントローラーの説明書に沿って行いました。コントローラーにはUSBのアウトレットが2つあり、ここからIoTデバイスに電力を供給します。バッテリーは12Vのもので、使用前に測定したときの電圧は12.7Vでした。
当初はコントローラーの端子部分で「ソーラーパネルの電圧」「バッテリーの電圧」と2系統で電圧測定を考えていましたが、コントローラーの仕様上無理だと判明しました。そこで、今回は「バッテリーの電圧」のみを測定しています。後日、前述の山口先生にパネルからの電力データの測定方法について知見をいただきましたので、今後の改良時に追加していきたいと考えています。
意外な伏兵、取り付け架台を作るための簡単な方法
山口耕司先生のラボにお伺いしたときに、「ソーラーパネルよりも取り付け金具(や、その他の周辺対策)の方が高くつくので注意」というアドバイスをいただきました。やってみるとその通りで、既存品を購入しても改造費などで高くつく場合があります。そのため今回は、Amazonなどで販売している既存品は使用しませんでした。試行錯誤の末、ホームセンターで販売している単管用の部品とアングル材を組み合わせて取り付け部を製作しました。取り付けは重要なので、ねじのゆるみ防止にロックタイト(ねじのゆるみ止め)を使用しています。全ての設置作業が終了してから、電源部の簡易カバーも追加しました。
また、防水対策や配線の保護も併せて考慮する必要があります。ただ単に防水ケースを使うだけでなく、フレキ(被覆管)を使い配線を保護するなど他の電気工事と同じ配慮が必要となりました。
ステップ2. 「畑の環境見える化」システムについて
今回使用するArduinoのセットは3階建てになっています。測定とデータ送信には、今後の拡張性や使いやすさも考慮に入れて、Arduino UNOとベースモジュール、それにLTE-Mシールドを組み合わせて使うことにしました(IoTの仕組みについては後述)。通信にSORACOMのSORACOM Airを使用することで安定した接続を確保し、通信環境に関するさまざまなデータも入手可能になっています。
3階建てのデバイスへの各モジュールの接続図を以下に示しました。
- 1階部分はArduino UNOです。
- 2階部分のベースモジュールは複数のセンサー類を接続できるようにGROVEコネクターを装備しています。また、他のモジュールと重ねて使用できるので今回のようなIoT通信の必要なプロジェクトでは必須のパーツです。
- 3階部分にはIoTのための通信に使用するLTE-Mシールドを重ねます。
3種類のデバイスは、製造メーカーは全て異なりますが、問題なく統合できました。
測定項目について
測定項目は前述の通り、「電圧」「温度」「湿度」「明るさ」の4種類です。ここでは電圧と明るさの測定方法について記します。
測定項目 | 接続 | センサー | 備考 |
---|---|---|---|
温度、湿度 | A3 | DHT11 | GROVE仕様 |
電圧 | A0 | 「電圧センサモジュール」※ | 抵抗分圧回路 |
明るさ | A5 | CdSセル | 送信間隔の制御に使用 |
※販売サイトでの商品名です。
バッテリー電圧の測定
充電量の指標としてバッテリーの電圧を測定します。
Arduinoは電圧を測定できますが、MAXは5Vまでになっています。そこで電圧をアナログ信号として利用するための抵抗分圧回路の基板を使用します。自作でもよいのですが、一番取り扱いが簡単で価格も安かったOSEPP ELECTRONICS(カナダ)の「電圧センサモジュール」(商品名)を使用しました。この回路は25Vまでの電圧測定に対応し、特別なライブラリも必要としません。アナログ入力(AnalogRead)値を40.92で割ると電圧値が得られます(詳細は同社のホームページ)。
明るさの測定に関して
明るさの測定に関してはCdSセルを使用し、測定値を0~10で表示しています。この数値は一般的なものではなく、このデバイスのみに適用される数値です。0が一番暗い状態です。明るさの測定値はバッテリー電圧との相関関係を調べるだけでなく、ソーラーパネルから電力が供給されない状態になったときに送信間隔を変更するためにも使用されます。具体的には、通常10分間隔の送信が、明るさが3より小さくなった場合は30分間隔に変更されます。Arduinoの省電力モードを使うことも検討しましたが、今回の環境に合わなかったので電力消費を少しでも下げるためにこうした工夫をしています。
組み立て
ソーラーパネル以外の全ての構成パーツは、ケース(未来工業製ウォルボックス)に納めます。なお、明るさを測定するCdSセルは別のケースに入れて設置します。CdSセルのケースは、秋葉原にあるShigezoneさんで購入したUSB電流計のケースを使用しています。
ステップ3. 畑への設置
畑への設置
畑への設置は20分ほどで終わりました。雨の降りそうな夕方に作業をしました。屋外で使用するので、ソーラーパネルからの電源線はフレキ(被覆管)に入れ、専用のジョイントを使ってケースの中に引き込みます。その後、専用金具を使用して単管(約50A)に固定しました。
心配していた単管頭頂部へのパネルの設置は思いのほかうまくいきました。接続部がフリーになっているので、太陽の方向に調整するために手動で回転する機構はかなり気に入りました。
稼働テスト(どれぐらい充電できるか)
稼働データは、JSON形式でクラウド(SORACOM Harvest)に送信されます。下記が実際の稼働データ(設置直後のもの)です。
JSONデータのうち、電圧(BatVoltage)は解像度を確保するために実際の10倍の数値で送信しています。Voltageの値はその後SORACOM Lagoonという可視化システムの中で10分の1にして表示します。その他の数値に関してはJSONデータの数値をそのまま使用して可視化します。
ステップ4. 測定項目をクラウドで可視化
使用したシステム(SORACOM、構成図)
今回のIoTシステムの構成図は、下記の通りです。
SORACOM AirはIoTのための専用サービスであり、今回はArduinoのLTE-M Shieldの中にSIMカードが装着されています。ここから上記のフローを通じてSORACOM Harvestにデータが蓄積され、さらに可視化システム・SORACOM Lagoonにてグラフィカルに処理(可視化)されます。
24時間で畑の様子を見ると
以下が、今回設置したセンサーで測定した畑の様子です。正午ごろまでは湿度が非常に高く、90%近い状態が続いていました。また、明るさを示すCDS_Valueは9で止まっています。この2つの数値により、正午ごろまでは天気がそれほど良くなかったことが推測できます。正午以降になるとCDS_Valueは10(最大値)になり、センサーが設置されているケース内の気温が36℃まで上昇しています。
同日の同じタイムスケールでバッテリー電圧とCDS_Valueを詳しく見ると、日照とバッテリー電圧の関係がよく分かります。下のグラフのドットの間隔は、データ送信間隔を表しています。CDS_Valueが明るさの閾値(しきい値)である3を下回ったときは、データ送信が30分間隔に切り替わっています。また、CDS_Valueが9と10ではバッテリー電圧が全く違います。ソーラーパネルでの発電にはこのような特性があることが分かりました。
ステップ5. 今後に向けて
どのように便利になるか?
冒頭で記した、今回のトライアルで「やりたいこと」はこれで達成できました。最終的にはこの電源を使ってWi-Fi対応のカメラを設置し、畑の様子がLINEで見られるようにしたいと考えています。今日、一般的に農業IoTの仕組みは「土壌改良」などの一番重要で根本的な課題の解決に貢献しています。今回筆者が構築したシステムは、それらとは性質を異にするものです。しかし、「遠くにある農地の様子を見えるようにしたい」というニーズは年々高まっていく可能性があります。相続などで農地を所有している方で、自宅から農地が離れた場所にある方は少なくありません。自宅から20km以上離れたところに農地をお持ちの方にとって、かなり便利なものであることは間違いありません。
熱中症アラートや少雨の監視をクラウドと連携する
得られたデータを有効活用するためにはどうすれば良いでしょうか? ここでは実装可能なアイデアを出していきます。
データをグラフィカルに可視化するために、今回はSORACOM Lagoonを使用しました。実は、SORACOM Lagoonには「アラート機能」が搭載されています。アラート機能を使えば、熱中症リスクが高いと判断される状況で農家の方(ご家族にも)のLINEにアラートを送信することができます。土壌改良とは遠いテーマですが、農家の方がご自身の安全を守ることに役立ちます。
構築したシステムに、あと4つ程度はセンサーを増設、追加可能です。簡易的な雨量測定器(光学式など)を接続することで雨量も測定できます。また、土壌水分計やpH計などを接続してもいいでしょう。農地の様子を絶え間なく把握する、これは農地が近所にある農家さんが毎日していることです。筆者のような環境にある場合、IoTという手段を使用して毎日農地の状況を把握することで、無駄の少ない農作業の組み立てが可能になることでしょう。
謝辞
この原稿を執筆するに当たって、下記の方に技術的なアドバイスをいただきました。心より感謝申し上げます。
- 山口耕司先生(和歌山大学客員教授・Orbital Engineering取締役社長、ソーラーパネル全般)
- 岩田敏彰先生(工学博士・セカンドライフ・アクティベーションアカデミー代表、情報収集)
- Mr.Steve Kasuya(CdSセルの知見について)
- ソラコム 松下享平様、三國直樹様(IoTの仕組みについて、試運転後レビュー)
- SORACOMユーザーグループの皆様(IoTの仕組みについて、試運転後レビュー)
- 国野亘先生(節電モード、RTCに関する知見について)
※なお、今回使用したArduino UNO用のコードはソラコムのホームページに掲載されているサンプルコード(MITライセンス)をもとに作成しています。同コードはTinyGSMライブラリ(LGPLライセンス)を使用しています。
※本記事中の部品価格は執筆時点(2022年4月)のものです。
※本記事中の作例を参考に制作などを行う場合は、自己責任にてお願いいたします。