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で。

 

 

 

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Arduino互換 DHT11 ベーシック 温度&湿度センサー
価格:520円(税込、送料別) (2020/3/9時点)

楽天で購入

 

 

ホームページ “THE POOH FILES”にも是非お立ち寄り下さい。
Adobe Stock“でベストショットな写真素材を販売中です。是非ご覧下さい。

tomohiko

長年に渡りMacintosh向けの自作アプリを作り続けているPOOHです。最近はiPhone,iPad向けアプリ開発にも挑戦中。グルメ、旅行、露天風呂、写真、サイクリング、映画、STAR TREKが大好き。レトロでSFなおもちゃを大量にコレクション。プレーリードッグと同居中。

おすすめ

コメントを残す