Raspberry Pi温度モニタを構築する方法

温度と湿度は、今日の産業界で重要なデータポイントです。 サーバールーム、業務用冷凍庫、生産ラインの環境データを監視することは、物事をスムーズに実行し続けるために必要です。 そこに基本的なものから複雑なものに至るまでのソリューションがたくさんあり、それはあなたのビジネスが必要とするものとどこから始ま

異なる温度センサーを使用してRaspberry Pi温度センサーを構築して使用する方法について説明します。 これは、これらのソリューションは安価で簡単に行うことができ、他の環境監視のために構築するための基盤を提供するので、開始するのに適した場

Raspberry Piは安価なシングルボードコンピュータで、温度センサーに接続してデータをデータ可視化ソフトウェアにストリーミングすることができます。 Raspberry Piは学習ツールとして始まり、産業用の職場ツールに進化しました。 最も急速に成長しているプログラミング言語であるPythonでの使いやすさとコード化能力は、それらを解決するためのものにしました。Wi-Fiが組み込まれているRaspberry Piが必要です。 それらの間では、価格と機能に基づいて選択することができます。 ゼロW/WHは最も安いですが、より多くの機能が必要な場合は、3と4の間で選択できます。 Raspberry Pi Foundationの制限により、一度に1つのゼロW/WHのみを購入できます。 どのようなPiを選択しても、raspbianでPiとSDカードに電力を供給して、オペレーティングシステムのインストールをできるだけ簡単にする方法なので、充電器を購入してください。

他にも動作するシングルボードコンピュータがありますが、それは別の時間と別の記事のためです。

センサー

DSB18B20、DHT22、BME280、Raspberry Pi Sense HATの四つのセンサーが安価で接続が容易で、正確な測定値を得ることができるため、使用することをお勧めします。

DHT22—この温度および湿気センサーに+/-0.5Cの温度の正確さおよび0から100%までの湿気範囲がある。 Raspberry Piに配線するのは簡単で、プルアップ抵抗は必要ありません。

DSB18B20—この温度センサーはデジタル出力を備えており、Raspberry Piでうまく動作します。 それは三つのワイヤを有し、接続のためのブレッドボードと抵抗を必要とします。

BME280—温度、湿度、気圧を測定します。 SPIとI2Cの両方で使用できます。

Sense HAT—これは、Led、センサー、および小さなジョイスティックを備えたRaspberry Pi用のアドオンです。 Raspberry PiのGPIOに直接接続しますが、リボンケーブルを使用すると、より正確な温度測定値が得られます。

Raspberry Piセットアップ

Raspbianオペレーティングシステムをインストールし、PiをWiFiに接続する必要があります。 これには、Piに接続するためのモニターとキーボードが必要です。 それを起動して実行し、WiFIに接続すると、Piは準備が整いました。

初期状態アカウント

初期状態を使用するために、履歴ログを保持し、リアルタイムのデータストリームを表示するには、データを送信する場所が必要です。 https://iot.app.initialstate.comに移動し、新しいアカウントを作成するか、既存のアカウントにログインします。

次に、初期状態のPythonモジュールをPiにインストールする必要があります。 コマンドプロンプトで(最初にPiにSSHすることを忘れないでください)、次のコマンドを実行します:

$ cd /home/pi/
$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash

コマンドプロンプトでcurlコマンドを入力すると、次のような出力が画面に表示されます。

スクリプトの例を自動的に取得するように求められたら、yと入力します。これにより、データを初期状態にストリーミングできるようにするために実行できるテストスクリプトが作成されます。 次のプロンプトは、サンプルファイルを保存する場所を尋ねます。 カスタムローカルパスを入力するか、enterキーを押してデフォルトの場所を受け入れることができます。 最後に、使用している初期状態のアプリを尋ねられます。 最近アカウントを作成した場合は、オプション2を選択し、ユーザー名とパスワードを入力します。 その後、インストールが完了します。

作成されたスクリプトの例を見てみましょう。

$ nano is_example.py

15行目にはstreamer = Streamer(bucket_ ...で始まる行が表示されます。 この行は、”Python Stream Example”という名前の新しいデータバケットを作成し、アカウントに関連付けられます。 この関連付けは、同じ行のaccess_key="..."パラメータのために発生します。 文字と数字の長いシリーズは、あなたの初期状態のアカウントのアクセスキーです。 あなたのwebブラウザであなたの初期状態のアカウントに行く場合は、右上のユーザー名をクリックし、”私の設定”に行くと、あなたはここで”ストリーミングアクセスキー”の下に同じアクセスキーを見つけるでしょう。

初期状態ストリームアクセスキー

データストリームを作成するたびに、そのアクセスキーはそのデータストリームをアカウントに送信します(したがって、キーを誰とも共有しないでください)。

テストスクリプトを実行して、初期状態アカウントへのデータストリームを作成できることを確認します。 次のコマンドを実行します:

$ python is_example.py

webブラウザで初期状態のアカウントに戻ります。 “Python Stream Example”と呼ばれる新しいデータバケットがログシェルフの左側に表示されているはずです(ページを更新する必要がある場合があります)。 このバケットをクリックし、テストデータを表示するには、波のアイコンをクリックします。

初期状態Pythonストリーム例ダッシュボード

Python3を使用している場合は、初期状態ストリーマモジュールをインストールできます次のコマンドを使用してイ:

pip3 install ISStreamer

これで、温度センサーをPiで設定して、温度をダッシュボードにストリーミングする準備が整いました。

DHT22ソリューション

このソリューションを構築するには、次の項目が必要です。
-DHT22温度および湿度センサー

DHT22には、5V、Gnd、およびdataの3つのピンがあります。 DHT22の電源にはピンラベルが必要です(例:’+’または’5V’)。 これをPiのピン2(右上のピン、5V)に接続します。 Gndピンは’-‘または’Gnd’または同等のラベルが付いています。 これをPiのピン6Gnd(5Vピンの下の2つのピン)に接続します。 DHT22の残りのピンはデータピンであり、’out’または’s’または’data’というラベルが付けられます。 これをGpio4(ピン7)のようなPi上のGPIOピンの1つに接続します。 これが配線されたら、Piの電源を入れます。このソリューションでは、AdafruitがDHT Pythonライブラリを非推奨にしたため、Python3とCircuitPythonライブラリを使用する必要があります。

コマンド-プロンプトでCircuitPython-DHT Pythonモジュールをインストールして、DHT22センサー-データの読み取りを非常に簡単にします:

$ pip3 install adafruit-circuitpython-dht
$ sudo apt-get install libgpiod2

オペレーティングシステムとセンサーデータを読み取り、データを初期状態に送信するための二つのPythonモジュールがインストールされているので、Pythonスクリプトを書く準備が整いました。 次のスクリプトは、初期状態データバケットを作成/追加し、DHT22センサーデータを読み取り、そのデータをリアルタイムダッシュボードに送信します。 あなたがする必要があるのは、6-11行目を変更することだけです。

  • 7行目-この値は、ノード/温度センサーごとに一意である必要があります。 これは、センサーノードの部屋名、物理的な場所、一意の識別子などです。 このノードからのデータがダッシュボード内の独自のデータストリームに確実に送信されるように、各ノードに固有であることを確認してください。
  • 8行目—これはデータバケットの名前です。 これは、初期状態UIでいつでも変更できます。
  • 9行目—これはあなたのバケットキーです。 これは、同じダッシュボードに表示するすべてのノードに対して同じバケットキーである必要があります。
  • 10行目—これは初期状態のアカウントアクセスキーです。 初期状態のアカウントからこのキーをコピーして貼り付けます。
  • 11行目—これはセンサーの読み取りまでの時間です。 それに応じて変更します。
  • 12行目—11行目にメートル法または帝国単位を指定できます。

PiのPythonスクリプトで行7-12を設定したら、テキストエディタを保存して終了します。 次のコマンドを使用してスクリプトを実行します:

$ python3 tempsensor.py
RASPBERRY Pi

でDHT22センサーを使用する例を次に示します。 ダッシュボードをカスタマイズする方法の詳細については、この記事の最後のセクションを参照してください。

DSB18B20ソリューション

このソリューションを構築するには、次の項目が必要です。
-DSB18B20温度センサー
-10K抵抗
-ブレッドボード
-40ピンブレイクアウトボード+リボンケーブル
-ワイヤ

リボンケーブルはPiのGPIOピンに接続します。 DS18B20には3本のワイヤがあります。 赤線は3.3Vに接続します。青/黒線は地面に接続します。 黄色のワイヤは、プルアップ抵抗/ピン4に接続します。 これが配線されたら、あなたのPiの電源を入れます。

最新バージョンのRaspbian(kernel3.18)には/boot/configを追加する必要があります。PiがDS18B20と通信するためのtxtファイル。 このファイルを編集するには、次のコマンドを実行します:

$ sudo nano /boot/config.txt

次の行がまだこのファイルにない場合(そうであれば、ファイルの一番下にある可能性があります)、それを追加してファイルを保存します。

dtoverlay=w1-gpio,gpiopin=4

変更を有効にするためにPiを再起動します。

$ sudo reboot

温度センサーの読み取りインターフェイスを起動するには、二つのコマンドを実行する必要があります。 Piのコマンドプロンプトに移動するか、PiにSSHで接続します。 次のコマンドを入力します:

$ sudo modprobe w1-gpio$ sudo modprobe w1-therm

温度センサーの出力がPi上のファイルに書き込まれています。 そのファイルを見つけるには:

$ cd /sys/bus/w1/devices

このディレクトリには、”28-“で始まるサブディレクトリがあります。 “28-“の後に来るのは、センサーのシリアル番号です。 cdをそのディレクトリに入れます。 このディレクトリ内には、w1_slaveという名前のファイルにセンサーの出力が含まれています。 ファイルの内容を表示するには、nanoを使用します。 ファイルに入力すると、次のようになります:

a2 01 4b 46 7f ff 0e 10 d8 : crc=d8 YESa2 01 4b 46 7f ff 0e 10 d8 t=26125

“t=”の後の数は、私たちが望む数です。 これは摂氏1/1000度の温度です(上記の例では、温度は26.125℃です)。 このファイルを読み取り、その番号を解析する単純なプログラムが必要です。 私たちはちょうど秒でそれに到達します。

すべてが今、私たちがデータのストリーミングを開始する準備ができています。 テキストエディタを開くには、コマンドプロンプトで次のように入力します:

$ nano temperature.py

以下のコードをコピーしてテキストエディタに貼り付けます。

初期状態のアクセスキーをPUT_YOUR_ACCESS_KEY_HEREの代わりに6行目に配置する必要があります(ストリーミングキーを’My Account’からクリップボードにコピーし、端末のnanoのコードに貼り付

6行目は、初期状態アカウントに”Temperature Stream”という名前のバケットを作成します(この同じ行にaccess_keyを正しく指定したと仮定します)。 このスクリプトの8行目から30行目までは、DS18b20センサーと単純にインタフェースして、前述のw1_slaveファイルから温度を読み取ります。 15行目のread_temp_raw()関数は生のw1_slaveファイルを読み込みます。 21行目のread_temp()関数は、そのファイルから温度を解析します。 34行目では、これらの関数を呼び出して現在の温度を取得します。 35行目は、温度を摂氏から華氏に変換します。 35行目と36行目は、温度を初期状態アカウントにストリーミングします。 37行目は0.5秒間スクリプトを一時停止し、温度センサーの読み取りとストリーミングの頻度を設定します。

ストリーミングを開始する準備が整いました。 次のコマンドを実行します:

$ sudo python temperature.py

webブラウザの初期状態アカウントに戻り、Temperature Streamという新しいデータバケットを探します。 ライブで温度データストリーミングが表示されるはずです。 あなたの手でそれを保持するか、氷のガラスの中に入れて、センサーの温度を変化させます。

これで、初期状態ダッシュボードにデータを送信することができます。 ダッシュボードをカスタマイズする方法の詳細については、この記事の最後のセクションを参照してください。

BME280ソリューション

このソリューションをビルドするには、次のものが必要です:
-BME280圧力、温度、&湿度センサー

Adafruit以外のBME280を使用している場合は、設定とコードが異なります。 クロールスペースの湿度監視に関するこの記事では、BME280センサーの使用方法の例を見つけることができます。

このセンサーには、センサーにはんだ付けする必要があるピンが付属しています。 私ははんだ付けを容易にするために、ブレッドボードにピン長辺を下にしたブレッドボードを使用することをお勧めします。 これを完了したら、センサーをPiに配線する必要があります。

センサのVINピンをPiの3.3Vピン1に接続します。 センサーのGNDピンをpiのグラウンドピン6に接続します。 センサーのSCKピンをPiのSCLピン5に接続します。 センサーのSDIピンをPiのSDAピン3に接続します。

このソリューションにはPython3を使用し、Pip3installメソッドを使用して初期状態ストリーマモジュールをインストールする必要があります。 また、いくつかのAdafruit Pythonライブラリをインストールする必要があります。

pip3 install adafruit-blinka
pip3 install pureio
pip3 install spidev
pip3 install adafruit-GPIO
pip3 install adafruit-circuitpython-bme280

センサーを使用するには、PiでI2Cを有効にする必要があります。

sudo raspi-config

これにより、Raspberry Piソフトウェア設定ツールが開きます。 オプション5インタフェースオプションに移動します。 I2Cを有効にするかどうかを尋ねるプロンプトが表示され、[はい]を選択して終了します。 これで、i2Cがセンサーと通信できるようになりました。

これをテストするには、次のコマンドを実行します:

sudo i2cdetect -y 1

これにより、Piがセンサーを認識していることが確認されます。 接続されている方法では、アドレス77にセンサーが表示されます。 センサーが検出されない場合は、Piを再起動し、PiのI2Cインターフェイスオプションを再度有効にしてから、再試行してください。

センサーが検出されたら、データを初期状態に送信するメインコードを実行します。 というファイルを作成しましたbme280sensor.py nanoコマンドを使用します。 Gistのコードをコピーしてテキストエディタに貼り付けます。 12-19行目を変更する必要があります。

  • 12行目-この値は、ノード/温度センサーごとに一意である必要があります。 これは、センサーノードの部屋名、物理的な場所、一意の識別子などです。 このノードからのデータがダッシュボード内の独自のデータストリームに確実に送信されるように、各ノードに固有であることを確認してください。
  • 13行目—これはデータバケットの名前です。 これは、初期状態UIでいつでも変更できます。
  • 14行目—これはあなたのバケットキーです。 これは、同じダッシュボードに表示するすべてのノードに対して同じバケットキーである必要があります。
  • 15行目—これは初期状態のアカウントアクセスキーです。 初期状態のアカウントからこのキーをコピーして貼り付けます。
  • 17行目—これは海面でのあなたの位置の圧力(hPa)です。 ほとんどの天気のウェブサイトでこの情報を見つけることができます。
  • 18行目—これはセンサーの読み取りまでの時間です。 それに応じて変更します。
  • 19行目—ここではメートル法または帝国単位を指定できます。

PiのPythonスクリプトで行12-19を設定したら、テキストエディタを保存して終了します。 次のコマンドを使用してスクリプトを実行します:

$ python3 bme280sensor.py

これで、初期状態ダッシュボードにデータを送信することができます。 ダッシュボードをカスタマイズする方法の詳細については、この記事の最後のセクションを参照してください。

Sense HAT Solution

このソリューションを構築するには、次の項目が必要です。
-Raspberry Pi Sense HAT
-6″40ピンIDEオス-メス延長ケーブル(温度精度のためにオプション)

Sense HATを使用する Piの電源を切った状態で、以下のように帽子を取り付けました。

Raspberry PiへのSense HAT接続

上記のようにソリューションを使用する場合、Sense HATの温度測定値が少し高くなることがあります—それはそうであるためです。 犯人は、PiのCPUがPiの上に座っているときに、Sense HATの周りの空気を加熱することから発生する熱です。 温度センサーを便利にするには、帽子をPiから離すか、温度センサーの読み取り値を較正する必要があります。 センサーをPiから遠ざけるための良い解決策は、センスハットをPiから遠ざけることができるケーブルです。 6″、女性の延長ケーブルケーブルへの40ピンIDEの男性はトリックをします。

Raspberry Pi sense HAT

に延長ケーブルが接続されている場合2つのオプションを決定したら、Piの電源を入れます。 Sense HATからセンサー値を読みやすくするために、Pythonライブラリをインストールする必要があります。 まず、Raspbianのバージョンですべてが最新であることを確認する必要があります:

$ sudo apt-get update

次に、Sense HAT Pythonライブラリをインストールします:

$ sudo apt-get install sense-hat

Piを再起動します。 センサーデータを読み取り、そのデータを初期状態に送信することで、Sense HATをテストする準備が整いました。

sensehatという名前のファイルを作成し、コマンドプロンプトで次のように入力してテキストエディタで開きます:

$ nano sensehat.py

以下のコードをコピーしてテキストエディタに貼り付けます。

最初の行で、SenseHatライブラリをスクリプトにインポートしていることに注意してください。 このスクリプトを実行する前に、ユーザーパラメータを設定する必要があります。

具体的には、ACCESS_KEYを初期状態のアカウントのアクセスキーに設定する必要があります。 BUCKET_NAMEとSENSOR_LOCATION_NAMEを実際のセンサーの場所に変更できます。 テキストエディタを保存して終了します。

Piのコマンドプロンプトで、スクリプトを実行します:

$ sudo python sensehat.py

これで、初期状態ダッシュボードにデータを送信することができます。 ダッシュボードをカスタマイズする方法の詳細については、この記事の最後のセクションを参照してください。

初期状態ダッシュボードのカスタマイズ

Raspberry Pi温度センサーを内蔵しているので、初期状態アカウントに移動してデータを見ることができます。 タイルを右クリックしてグラフの種類を変更し、[タイルの編集]をクリックしてタイルのサイズを変更して移動することができます。 私は温度のためのゲージのサーモスタットおよび湿気のためのゲージの液体レベルを使用することを推薦する。 温度と湿度の両方の折れ線グラフを作成して、時間の経過とともに変化を確認できます。 ダッシュボードに背景画像を追加することもできます。

温度が一定のしきい値を下回ったり上回ったりした場合にSMSまたは電子メールを取得できるように、トリガアラートを設定できます。 データバケットに移動し、[設定]をクリックします。 そこからTriggersタブに移動します。 監視するストリームキー、使用する演算子、およびしきい値を入力します。 トリガーを追加するには、プラス記号をクリックします。 その後、あなたはでアラートを受信し、プラス記号をクリックするためにあなたの電子メールまたは電話番号を入力します。 すべてのトリガーを設定したら、下部にある[完了]ボタンをクリックします。

初期状態温度ダッシュボード

センサーとRaspberry Piを使用してRaspberry Pi温度センサーを作成したので、次に監視できる他の環境データについて考え始めることがで

コメントを残す

メールアドレスが公開されることはありません。

Previous post マスター庭師:カッシアの木は成長しやすいです
Next post 適応学習