8.7 KiB
温度を測定する - 仮想IoTハードウェア
このレッスンでは、仮想IoTデバイスに温度センサーを追加します。
仮想ハードウェア
仮想IoTデバイスでは、シミュレートされたGrove Digital Humidity and Temperatureセンサーを使用します。これにより、物理的なGrove DHT11センサーを使用する場合と同じようにこのラボを進めることができます。
このセンサーは温度センサーと湿度センサーを組み合わせたものですが、このラボでは温度センサーのコンポーネントにのみ注目します。物理的なIoTデバイスでは、温度センサーはサーミスタであり、温度変化による抵抗の変化を感知して温度を測定します。温度センサーは通常デジタルセンサーであり、内部で測定された抵抗を摂氏(またはケルビン、華氏)の温度に変換します。
CounterFitにセンサーを追加する
仮想湿度および温度センサーを使用するには、CounterFitアプリに2つのセンサーを追加する必要があります。
タスク - CounterFitにセンサーを追加する
CounterFitアプリに湿度センサーと温度センサーを追加します。
-
temperature-sensor
というフォルダーに新しいPythonアプリを作成し、app.py
という単一のファイルとPython仮想環境を作成します。そしてCounterFitのpipパッケージを追加します。⚠️ 必要に応じてレッスン1でのCounterFit Pythonプロジェクトの作成と設定手順を参照してください。
-
DHT11センサー用のCounterFitシムをインストールするための追加のPipパッケージをインストールします。この操作は仮想環境が有効化されたターミナルで行ってください。
pip install counterfit-shims-seeed-python-dht
-
CounterFitウェブアプリが実行中であることを確認します。
-
湿度センサーを作成します:
-
SensorsペインのCreate sensorボックスで、Sensor typeドロップダウンを開き、Humidityを選択します。
-
UnitsはPercentageのままにします。
-
Pinが5に設定されていることを確認します。
-
Addボタンを選択して、Pin 5に湿度センサーを作成します。
湿度センサーが作成され、センサーリストに表示されます。
-
-
温度センサーを作成します:
-
SensorsペインのCreate sensorボックスで、Sensor typeドロップダウンを開き、Temperatureを選択します。
-
UnitsはCelsiusのままにします。
-
Pinが6に設定されていることを確認します。
-
Addボタンを選択して、Pin 6に温度センサーを作成します。
温度センサーが作成され、センサーリストに表示されます。
-
温度センサーアプリをプログラムする
CounterFitセンサーを使用して温度センサーアプリをプログラムします。
タスク - 温度センサーアプリをプログラムする
温度センサーアプリをプログラムします。
-
temperature-sensor
アプリがVS Codeで開かれていることを確認します。 -
app.py
ファイルを開きます。 -
CounterFitにアプリを接続するために、以下のコードを
app.py
の先頭に追加します:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
必要なライブラリをインポートするために、以下のコードを
app.py
ファイルに追加します:import time from counterfit_shims_seeed_python_dht import DHT
from seeed_dht import DHT
ステートメントは、counterfit_shims_seeed_python_dht
モジュールからDHT
センサークラスをインポートし、仮想Grove温度センサーとやり取りするためのシムを提供します。 -
仮想湿度および温度センサーを管理するクラスのインスタンスを作成するために、以下のコードを上記のコードの後に追加します:
sensor = DHT("11", 5)
これは仮想Digital Humidity and Temperatureセンサーを管理する
DHT
クラスのインスタンスを宣言します。最初のパラメータは使用しているセンサーが仮想DHT11センサーであることをコードに伝えます。2番目のパラメータはセンサーがポート5
に接続されていることをコードに伝えます。💁 CounterFitはこの湿度と温度センサーを2つのセンサーに接続することでシミュレートします。湿度センサーが指定されたピンに接続され、温度センサーは次のピンで動作します。湿度センサーがピン5にある場合、シムは温度センサーがピン6にあると仮定します。
-
温度センサー値をポーリングしてコンソールに出力するために、以下のコードを上記のコードの後に追加します:
while True: _, temp = sensor.read() print(f'Temperature {temp}°C')
sensor.read()
の呼び出しは湿度と温度のタプルを返します。必要なのは温度値だけなので、湿度は無視されます。その後、温度値がコンソールに出力されます。 -
温度レベルを継続的にチェックする必要がないため、
loop
の最後に10秒間のスリープを追加します。スリープはデバイスの消費電力を削減します。time.sleep(10)
-
VS Codeターミナルで仮想環境が有効化された状態で、以下を実行してPythonアプリを実行します:
python app.py
-
CounterFitアプリから、アプリが読み取る温度センサーの値を変更します。以下の2つの方法で変更できます:
-
温度センサーのValueボックスに数値を入力し、Setボタンを選択します。入力した数値がセンサーから返される値になります。
-
Randomチェックボックスをオンにし、MinとMax値を入力してSetボタンを選択します。センサーが値を読み取るたびに、MinとMaxの間のランダムな数値が返されます。
設定した値がコンソールに表示されるはずです。ValueやRandom設定を変更して値の変化を確認してください。
(.venv) ➜ temperature-sensor python app.py Temperature 28.25°C Temperature 30.71°C Temperature 25.17°C
-
💁 このコードはcode-temperature/virtual-deviceフォルダーにあります。
😀 温度センサーのプログラムが成功しました!
免責事項:
この文書は、AI翻訳サービス Co-op Translator を使用して翻訳されています。正確性を追求しておりますが、自動翻訳には誤りや不正確な表現が含まれる可能性があることをご承知おきください。原文(元の言語で記載された文書)が信頼できる情報源として優先されるべきです。重要な情報については、専門の人間による翻訳をお勧めします。本翻訳の使用に起因する誤解や誤認について、当方は一切の責任を負いかねます。