圃場環境(土壌水分・気圧・気温・湿度)を遠隔計測するシステム

 


中学校技術の学習指導要領では「第3学年で取り上げる内容では,これまでの学習を踏まえた統合的な問題について扱うこと。」とされています.

4つの内容を統合した例として,下図(PDF版)に示す圃場環境を遠隔計測するIoTシステムを考えることができます:「A 材料と加工の技術」 は屋外に設置する装置類の防水や通気を考慮した構造と材料の選定が,「B 生物育成の技術」はシステムのターゲットそのもの,「C エネルギー変換の技術」では屋外に設置するセンサノードの電源や電気回路が,「D 情報の技術」はセンサノードやホストのプログラミング(計測・制御と双方向コンテンツ)が関わります.


そのプロトタイプとして,下記(PDF版)のようなシステムを2022年度の卒業論文で学生さんと一緒に開発しました.ホストコンピュータはインターネット越しにNTPサーバで正確な時刻に設定されており,毎10分ごとに計測指令をセンサノードに無線で送信します.計測指令を受けたセンサノードは土壌水分と気象(気圧・気温・相対湿度)をセンサで計測し,それをホストコンピュータに(無線で)送り返します.ホストは受信した計測データを画面及びログファイルに記録します.ここでは「ネットワーク」はインターネットではなく,ホスト〜センサノード間の無線通信網ということになります(NTPサーバについてはOSレベルのことでプログラミングの対象になっていないため).


 

このシステムは,学校で実際に作るというより,システム設計の題材として扱うのが適切だと思います(3年生では時間も限られていますし).

 

上記は防水ボックス内に収納する電子回路の回路図です(PDFはこちら).マイコンのAD変換は電源電圧基準とするものも多く,micro:bitもその一つです.正しい電圧を測定するためには,基準電源を別途設ける必要があります.ここでは長崎県産品であるイサハヤ電子のRT9H301Sを用いました.またmicro:bitのAD変換入力インピーダンスが不明でしたので,LMC6484を用いたバッファアンプを前置しました.

 

上記はホスト,無線モデム,センサノードの各プログラムのアクティビティ図(概略版)です(PDFはこちら).プログラムはPythonで作成しましたが,micro:bitを用いるホスト無線モデムと測定ノードはMakeCode Blocklyでプログラムすることも可能です1.ホストは通常のPCになりますので,Python等シリアル通信を使用可能なプログラミング言語もしくはマクロ機能を持つシリアルターミナルソフト(例えばTeraTerm)になります.ホストのプログラムを一人一台端末で制作することは非常に難しいと考えます:一人一台端末は,使用者でソフトウェアのインストールをすることがそもそもできないように設定されているはずです2

気象センサには秋月電子のBME280モジュールを用いました.micro:bitのPythonでBME280を使用するライブラリはここで公開されているbme280_microbit_lowmem.pyを使用しましたが,秋月のモジュールのI2Cアドレスが0x76なので,6行目の“address=0x77”を“address=0x76”と書き換えて使っています.

 

気象センサを収納するシールドは,φ120mmのPP製鉢受け皿を用いています.上の写真のように,通気を確保するため平らな部分にφ70mm程度の穴を開け,20mmのスペーサで間隙を取りながらM3の全ねじ3本を使って積み重ねて作っています.最上部は通気用の穴を開けず,150mm□のアルミ板にM10のボルトと3本の全ねじで固定して風に煽られても破損しないようにしています. またBME280モジュールは,BME280の開口部を除いてエポキシ系接着剤でポッティングを行いました.

この内容は,日本産業技術教育学会第66回全国大会(2023年8月,鹿児島)で発表しました.プレゼンテーション資料はこちら


1 でも,無線モデムはPythonを使った方が簡単です:ホストPCとのデータやり取りをinput関数とprint関数で実現できるため.
2 EduBlocksPython3 TrinketsのようなオンラインのPython環境では,端末のハードウェアを操作するようなプログラムを書くことはできても,動作させることはできません.