M5Stamp Picoでできること 〜ビニールハウス用IoTの稼働状況

知り合いの農家の方が、ビニールハウスでイチゴ栽培をしておられるのですが、そのハウスに温度測定用IoTデバイスを設置させていただいています。

デバイスを設置しているのは、こちらのハウスです。

設置しているのは、このようなデバイスです。

中はこのようになっています。

マイコンは「M5Stamp Pico」、センサは「ENV IIIユニット」を使い、これらを電池ボックスに入れたNi-MH電池4本で動かしています。
また、これらの部品をつなぐために「ハブユニット」を使っています。

「M5Stamp Pico」「電池ボックス」「ハブユニット」は、百円ショップで購入したパッキン付き保存容器に入れています。
また、「ENV IIIユニット」は、鉢皿でつくった日除けの中に格納しています。

このIoTデバイスを、ハウスの中に4台設置しています。
4台のIoTデバイスで、ハウス内のいろいろな場所の温度を15分間隔で測定しています。

温度を測定する時以外は「M5Stamp Pico」はディープスリープしています。この使い方であれば、電池交換せずに半年以上連続稼働できる見込みです。
ちなみに、材料費は1台あたり4000円弱でした(デバイスについて詳しくは こちら)。

ハウス内には、別途「モバイルWi-Fiルータ」を設置しています。
こちらは、ハウスに引き込まれているAC電源で動かしています。


モバイルWi-Fiルータのハードウェアは10000円程度で、そこに月額利用料が500円程度の格安SIMカードを差し、200kbpsの低速でデータ通信しています。

IoTデバイスで測定したデータは、このモバイルルータ経由でWebサーバに送信・保存しています。

さて、今回はハウス内の温度を測定する目的でIoTデバイスを設置していますが、ここで使っている「ENV IIIユニット」では、温度だけでなく、湿度も測定することができます。
また、農業の専門家の方からお聞きしたのですが、作物の生育においては「飽差」という値が重要で、この「飽差」の値は「温度」と「湿度」から計算で求めることができるそうです。
現状のデバイスで、温度だけでなく湿度や飽差の値も取得することができるため、あわせてこれらの値も測定・保存しておくことにしました。

ちなみに、「飽差」はこのような式で計算しています。

  val0 = sht30.cTemp; // 温度
  val1 = sht30.humidity; // 湿度
  float tmp1 = 6.1078 * pow(10, (7.5*val0/(val0+237.3)));
  float tmp2 = 217 * tmp1 / (val0+273.15);
  val2 = tmp2 * (100 - val1) / 100; // 飽差

Webサーバに保存したデータは、別途つくったPHPプログラムで、遠隔地からでも閲覧することができます。
既に数ヶ月にわたり連続稼働していますので、現時点の状況をグラフ表示してみます。

温度グラフはこちらです。

湿度グラフはこちらです。

飽差グラフはこちらです。

途中で一部のデバイスが停止したりしているため、データ表示がおかしくなっているところもありますが、このように測定データの推移を確認することができます。
また、温度があらかじめ設定した値を下回った時に、指定したアドレスにメール通知するようにしています。

今回は、レンタルサーバに保存したデータを自作PHPプログラムでグラフ表示していますが、例えば「Ambient」などのサービスを使えば、サーバ料金もプログラム作成スキルも不要で、同様のことを実現できます。

このように、電子工作やプログラミングのスキルが必要にはなりますが、比較的安価に所望のデータを取得することができます。
このような仕組みは、ハウス栽培に限らず、さまざまな分野に応用可能だと思います。


なお、私がM5Stack、M5StickCの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。


ごく基本的なところから、かなり複雑なスケッチや、ネットワーク接続など、比較的高度なものまで、つまづかずに読み進めていけるような構成になっており、大変わかりやすい本です。


このサイトで書いている、M5Stackシリーズ(M5Stack、M5StickCなど)に関するブログ記事を、「さとやまノート」という別のブログページに、あらためて整理してまとめました。

他のM5Stackシリーズの記事にも興味のある方は「さとやまノート」をご覧ください。