秋月電子の土壌湿度センサを使う(夏休みの工作)
お盆にアクセスが低下してたかと思ったら、今週は復活していました。
時節柄というわけで、夏休みの電子工作の手引きを書いてみたいと思います。
夏は植木鉢の水の蒸発も激しい、ということで、秋月電子で売っている土壌湿度センサを用いた工作をしてみましょう。
DFROBOTのセンサSEN0114(秋月電子番号でM-07047)は500円で買えます。
中身は、下記のようなもので、フォーク状の電極間に電流を流し、増幅してArduinoのアナログ入力で電圧を測定し、電流が多ければ(電圧が高ければ)水分が多いとしています。
今回は「夏休みの工作」ということで、ハンダづけなしで、乗り切ってみます。
センサとArduinoを接続し、そこからシリアル通信でパソコンにデータを送るという、DFROBOTのマニュアルそのものの流れで行ってみましょう。
まず、Arduinoは使いやすく、入手しやすいUNOを使うことにします。UNOは秋月電子はもとより、千石電商やマルツやAmazonでも入手できます。また、どこのブランドのUNOでも外れは少ないのでお勧めです。
また、UNOは端子部分にソケットがすでについているので、ハンダ付けなしで作るのにも向いています(ソケット構造なのは、拡張用のシールドと組合せられるように、ということらしいです)。
それで、センサとUNOを接続しなければなりません。このため、秋月電子でピンヘッダを買っておくとよいです(8ピンのもの(C-12985)が10円で売っています。これを適当に切って使いましょう。
まずセンサのソケット部分のピン配置が、このままだとUNOに合いませんので、変えます。
次に、L型ピンを切って、挿します。
そして、UNOにこれらのピンを接続します。
あとは、パソコンとUNOの接続だけです。
Arduino IDEに関しては他のサイトを参照ください。
プログラムに関しては、DFROBOTのサイトにあるもので動きますが、少し変えてみます。
int mois; void setup(){ Serial.begin(57600); } void loop(){ mois = analogRead(A0); Serial.print("Moisture Sensor Value:"); Serial.print(mois); if (mois < 300){ Serial.println(" : dry (0-300) "); } else if (mois <700){ Serial.println(" : humid (300-700) "); }else{ Serial.println(" : in water (700-950) "); } delay(1000); }
こんな感じにしておけば、表示が下記のようになって、例えば値が305だと乾燥ぎりぎりだということがわかります。
以上で完成なのですが、植木鉢の乾き具合を見るには、Arduinoがパソコンにつながっていると使いにくいと思います。
Androidのスマホやタブレットを接続させることを考えてみましょう。
ただし、全てのスマホやタブレットが接続できるわけではなく、USB端子にOTG(USB On The Go)という機能があるものに限ります。
スマホやタブレットからUNOに接続する場合には、OTG用のケーブルが必要になります。
また、スマホやタブレットでUNOからのシリアルデータを受信するためには、何かアプリが必要になります。
ここでは、USB Serial Consoleというアプリを使いました。
これで、UNOとスマホ(タブレット)を接続すると、データを読むことができます(接続時にアプリ選択などの作業が必要な場合もあります)
文字化けする場合には、アプリの左上の設定で、データレートを57600に設定してください。
なお、今回、ハンダづけをしないということで、UNOを用いましたが、例えばLeonard互換のBeetleなど、
小さいArduinoがあります(Beelteについているスイッチは今回は関係ありません)。
ハンダづけができて、コンパクトに製作したい方は、こういったものを選択されるとよいと思います。
お疲れさまでした。