IoTで水耕栽培 番外編1。Arduinoと防水温度センサーで液肥の温度を測りましょう。

f:id:haruirosoleil:20200426064731j:plain
 水耕栽培では液肥の温度が大切です。低すぎる分はともかく、熱すぎると根腐れを起こしてしまい、栄養や水を吸う機能を失ってしまいます。

 以前、料理用の温度計を使って液肥の温度変化を調べたことがあります《参考記事:真夏に液肥の温度変化を調べました。我が家の場合、15時の40.1℃が最も高かったです》。この時は数十分ごとに測定値をメモ帳に書いていたので非常に大変でした。そこでArduinoに温度計をつなげば、自動的に測定と記録ができるのではないか?と考えました。

 液体の温度を測るためには防水型のセンサーが必要です。通販サイトで探すと手頃な商品を見つけたので早速注文し、すでに手元に届いています。今回はこの温度センサーと無線通信機能を持つesp32開発ボードを繋げ、液肥の温度を無人で測れるようにします。それでは作業を始めましょう。 

 

 

 

 

用意するもの
  • ESP32-WROOM-32 開発ボード(DOIT社 V1互換機)
  • 防水温度センサー DS18B20
  • 抵抗器(1kΩ)

  

準備
  • 温度センサーの配線にQIコネクタを付ける
  • 開発ボードと温度センサーを配線で繋ぐ(VCC,GND,15pin)
    ※電源線と信号線の間に1kΩの抵抗器を挟む
  • 2つのライブラリ「OneWire」「DallasTemperature」をインストールする 

 

スケッチ

#include <OneWire.h>
#include <DallasTemperature.h>

const int PIN_SENSER = 15;

OneWire oneWire(PIN_SENSER);
DallasTemperature sensors(&oneWire);

void setup(void) {
Serial.begin(115200);
sensors.begin();
}

void loop(void) {
sensors.requestTemperatures();
float sensor_data = sensors.getTempCByIndex(0); //温度の取得
Serial.println(sensor_data);
delay(5000);
}

 

 ※ブログの書式の関係でtabは入れていません。申し訳ないですがIDEに貼り付け後、見やすいように調整し直して下さい。

 

解説

f:id:haruirosoleil:20200425195217j:plain
 写真が購入した防水温度センサーDS18B20です。先端にある金属製のスリーブの中に温度を感知する部品が入っています。
 この温度計センサーはモジュール化されておらず、配線の末端は切りっぱなしの状態です。このままではブレッドボードに挿せませんので、端子を取り付けましょう。端子には様々な種類がありますが、今回は「QIコネクタ」を使用します。

f:id:haruirosoleil:20200425195143j:plain
 まずは配線の被覆を剝いて、専用の道具で金属端子をカシメます。そしてプラスチックでできた3連のケースに入れて完成です。これで扱いやすくなりました。 

f:id:haruirosoleil:20200426064942j:plainf:id:haruirosoleil:20200426064947j:plain
 次に開発ボードと温度センサーを繋ぎます。仕様書によると配線は、

黒:グランド(GND)
赤:電源(VCC)
黄:データ線

となっていますので、黒線と赤線を開発ボードのGNDとVCC(3.3V)に接続します。データ線にはプルアップ抵抗を挟んで本体と繋ぎます。今回は手持ちにあった1kΩの抵抗器を使いました。 

f:id:haruirosoleil:20200425184917p:plain
 スケッチを本体に書き込むと、指定した間隔で温度がシリアルモニタに表示されます。試しにセンサーの金属筒を握ってみると、30℃を超える温度まで上がりました。

f:id:haruirosoleil:20200425211648p:plain
 このままではただ温度が表示されるだけです。そこで《IoTで水耕栽培 第6回目》の記事を参考にして、インターネット経由でデータの保存ができるようにスケッチを改良します。

f:id:haruirosoleil:20200426064705j:plain
 次に電源・開発ボード・温度センサーを繋ぎます。ESP32開発ボードはUSB充電器から電源を取ると再起動ループが起きるので、ACアダプターからVINに直接供給します。試運転をすると、データの抜けもなく連続して水温を記録できました。

f:id:haruirosoleil:20200426064731j:plainf:id:haruirosoleil:20200426064751j:plain
 それではできあがった水温計を使って、実際に液肥温度を測定しましょう。測るのは窓際で育苗中のルッコラです。センサーを液肥に入れて、温度がどのように変化するのかを30分間隔で24時間記録していきます(測定日時:2020年4月26日6:00〜2020年4月27日6:00)。

f:id:haruirosoleil:20200427201806p:plain
※クリックで拡大

 測定結果が上のグラフになります。朝、液肥に光が当たり始めると水温は上昇し、2時間後には20℃近くとなりました。その後、換気のために窓を開けた8時頃から温度は下がり始め、13時に閉めると再び上昇に転じました。日没後は徐々に下降し、測定終了時の液温は約16℃でした。
 意外だったのは、窓の開け閉めだけで液肥の温度が変化したことです。大きい変化ではないですが、確実に温度の上昇と下降が見て取れます。機会があれば真夏の直射日光が当たる栽培装置でも測定して、どのように変化するのか確かめたいと思います。

 

まとめ

f:id:haruirosoleil:20200426064942j:plain
 今回は防水型温度センサーを使った液肥の温度測定にチャレンジしました。スケッチに難しいところはなく、すんなりとデータ取りまで行けました。私の使い方では水温を測定して眺めるだけですが、他のセンサーと組み合わせたら液肥の温度を一定に保つ装置を作れそうですね。

 この記事が皆さまのIoT水耕栽培のお役に立てたら幸いです。それでは水耕栽培ライフを楽しみましょう。

 


HiLetgo® 5個セット DS18B20温度センサー サーマルプローブセンサー ステンレス スチール プローブ長さ1M
《Amazonでの検索結果はこちら

水耕栽培では水温を測定したい時があります。市販品の水温記録計では高価過ぎたり、欲しい機能がなかったりします。そこで今回はArduinoと防水温度センサーを使って自作しました。自分でプログラムを書き換えられるので、自由度が高いことが利点です。

 


waves 2550/QIコネクタ/デュポンコネクタ セット 計620個
《Amazonでの検索結果はこちら

QIコネクタを使えばブレットボートに直接挿せますから、何かと作業がしやすくなります。このタイプの他にも『JST XHコネクタ』と呼ばれる端子もあります。端子の種類は色々ありますが、小物作成ではこの2つで大抵のことは解決するのではと思います。

 


エンジニア 精密圧着ペンチ オープンバレル端子用 PA-20
《Amazonでの検索結果はこちら
《楽天市場での検索結果はこちら

QIコネクタなどの端子を取り付ける際には、その端子に合った圧着ペンチが必要です。どのくらいの力でカシメたら良いのか分かりにくいので、最初は何回か練習をして本番に挑みましょう。