Raspberry Pi + Node-RED + DS18B20 防水型温度センサー でメダカ水槽の温度を管理する (1)
季節が夏に向かうと気になるのが、リビングルームで飼育しているメダカが住んでいる水槽の水温です。我が家はマンション住まいなので、冬場は水槽用のヒーター要らずなのですが、夏場は気を付けていないと水温が高くなってしまいます。
そんなわけで、今回は、“Node-RED”をインストールした“Raspberry Pi”で、メダカ水槽の温度を管理する仕組みを作っていきます。
< Raspberry PiにNode-REDをインストールする >
・先日のTALk (““Raspberry Pi + Node-RED + Google Home で明日の天気を定刻にアナウンス””)をご覧下さい。
< 温度センサー周りをセットアップする >
・水槽の水温に加えて、室内の温度変化も合わせて管理したいので、DHT11 温度センサー モジュール (DHT11 温度センサー)を用意します。
・温度センサーの取り扱いについては、”ワンコインでお部屋の温度をHomeKitをベースに外出先でもモニターできるようにしてみました“をご覧下さい。
・DHT11 温度センサー モジュールと”Node-RED”の”node-red-contrib-dht-sensor“ノードのセットアップについては、先日のTALk (“Raspberry Pi + Node-RED + ダッシュボード でお部屋の温度と湿度を可視化“)をご覧下さい。
< 防水型温度センサー周りをセットアップする >
・水槽の水温を計測するために、“Aideepen 5個セット DS18B20 防水型温度センサ サーミスタ温度コントローラ 長さ1M プローブ付き” (DS18B20 防水型温度センサー)を購入しました。何と5本セットです。
・”DS18B20 防水型温度センサー”をラズパイに接続するためには、電子工作でお馴染みの抵抗が必要です。個々に抵抗を用意するのも面倒なので、この機会にいろいろな抵抗がセットになった“OSOYOO(オソヨー)金属皮膜抵抗器 抵抗セット 10Ω~1MΩ 30種類 各20本入り 合計600本 (600本セット)”を購入しました。
今回は、”4.7KΩ”の抵抗を使用します。(“DS18B20 Programmable Resolution 1-Wire Digital Thermometer“)
赤いケーブルと黄色いケーブルの間に4.7KΩの抵抗 (プルアップ抵抗)をブリッジします。電子工作的には”ブレッドボード“を利用するのが定石かと思いますが、コストを抑えるために写真のようにハンダで直付けしました。(素人なので下手くそですが…)
具体的な接続方法は、”こちら” (“Connecting DS18B20 temperature sensor with RJ45 connector?“)を見ると分かりやすいかと思います。
水の近くで使用するので、簡易的ではありますが”ヒートシュリンクチューブ“で絶縁&防水対策をしておきました。
“DS18B20 防水型温度センサー”をラズパイのGPIOのピンヘッドに接続します。
“DS18B20 防水型温度センサー”の赤いケーブル VCC —> pin1 3.3v DC Power
“DS18B20 防水型温度センサー”の黄色いケーブル データ—> pin7 GPIO04
“DS18B20 防水型温度センサー”の黒いケーブル GND —> pin9 Ground
< ラズパイの1-Wire周りをセットアップする >
“DS18B20 防水型温度センサー”は”1-Wire“Busを使ってデータ通信をしますので、ラズパイの環境セットアップを行います。
“Raspberry Pi の設定”->”インターフェイス”画面で、”1-Wire”項目を有効にします。(“sudo raspi-config”コマンドでも可能。)
ラズパイの設定ファイルを開き、下線の部分を追記します。
※ “DS18B20 防水型温度センサー”の黄色いケーブルをpin7 GPIO04に接続したので、”gpiopin=4″と設定しました。
sudo nano /boot/config.txt
ラズパイを再起動後、ラズパイが”DS18B20 防水型温度センサー”を認識できていることを確認します。
lsmod | grep w1
“w1_gpio”と”w1_therm”の両方が表示されていれば、1-Wireが認識されている。
cd /sys/bus/w1/devices/
ls -al
“DS18B20 防水型温度センサー”が認識されている場合は以下のように、”28-01191c13b8f4” (28- 以降の文字列は環境により異なります。)といったディレクトリができている。
< 防水型温度センサーの動作テストを行う >
“DS18B20 防水型温度センサー”が計測した温度データは、以下のパスにある”w1_slave”ファイルに記錄されます。
※ 28- 以降の文字列は環境により異なります。
/sys/devices/w1_bus_master1/28-01191c13b8f4/w1_slave
温度データをチェックしてみましょう。
cat /sys/devices/w1_bus_master1/28-01191c13b8f4/w1_slave
“t=”以降の数字が温度です。実際の温度は1/1000して求めるので、この例では21.3℃になります。
今回のテーマからすると余談になりますが、”Python”スクリプトで温度データを表示してみましょう。
nano /home/pi/water_temp.py
chmod +x /home/pi/water_temp.py
python /home/pi/water_temp.py
おっと! 話がかなり長くなってしまいましたので、続きは次回のTALKで。
|
|
|
ホームページ “THE POOH FILES”にも是非お立ち寄り下さい。
“Adobe Stock“でベストショットな写真素材を販売中です。是非ご覧下さい。