注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!
6.2 温度・湿度センサー
湿度と温度は、物理量自体から日常生活まで密接に関連しています。 人間の環境の温度と湿度は、体温調節機能や熱伝達の効果に直接影響を与えます。 さらに、これは思考活動や精神状態にも影響を与え、学習や仕事の効率にも影響を与えます。
温度は、国際単位系(SI)での7つの基本的な物理量の一つであり、物体の熱さや寒さを測るために使用されます。 摂氏度は、世界でよく使用される温度の尺度の一つで、"℃"という記号で表されます。
湿度は、空気中に存在する水蒸気の濃度です。 一般的には相対湿度が使用され、%RHで表されます。相対湿度は温度に密接に関連しています。 密閉された一定量のガスに対して、温度が高いほど相対湿度は低く、温度が低いほど相対湿度は高くなります。

このキットには基本的なデジタル温度・湿度センサー、 DHT11 が付属しています。 このセンサーは、周囲の空気の温度と湿度を測るために、容量性湿度センサーとサーミスターを使用し、データピンでデジタル信号を出力します(アナログ入力ピンは不要です)。
必要なコンポーネント
このプロジェクトでは、以下のコンポーネントが必要です。
一式をまとめて購入すると便利です、リンクはこちら:
名前 |
このキットに含まれるアイテム |
リンク |
|---|---|---|
ケプラーキット |
450+ |
以下のリンクから個別にも購入できます。
SN |
コンポーネント |
数量 |
リンク |
|---|---|---|---|
1 |
1 |
||
2 |
Micro USBケーブル |
1 |
|
3 |
1 |
||
4 |
いくつか |
||
5 |
1 |
回路図

配線

コード
注釈
kepler-kit-main/micropythonフォルダ内の6.2_temperature_humidity.pyファイルを開くか、このコードをThonnyにコピーしてから、「Run Current Script」をクリックするか、F5キーを押して実行してください。右下の角にある「MicroPython(Raspberry Pi Pico)」のインタープリターを選択することを忘れないでください。
詳細なチュートリアルは、 コードを直接開いて実行する を参照してください。
ここでは
dht.pyというライブラリを使用する必要があります。Pico Wにアップロードされているか確認してください。詳細なチュートリアルは 1.4 Picoにライブラリをアップロード を参照してください。
from machine import Pin
import utime as time
from dht import DHT11, InvalidPulseCount
pin = Pin(16, Pin.IN)
sensor = DHT11(pin)
time.sleep(5) # 初期遅延
while True:
try:
sensor.measure()
string = "Temperature:{}\nHumidity: {}".format(sensor.temperature, sensor.humidity)
print(string)
time.sleep(4)
except InvalidPulseCount as e:
print('Bad pulse count - retrying ...')
コードを実行すると、シェルには温度と湿度が継続して表示され、プログラムが安定して動作するにつれて、これらの値はますます正確になります。
仕組み
dhtライブラリでは、関連する機能を DHT11 クラスに統合しています。
from dht import DHT11, InvalidPulseCount
DHT11 オブジェクトを初期化します。このデバイスは、デジタル入力だけで使用できます。
pin = Pin(16, Pin.IN)
sensor = DHT11(pin)
sensor.measure() を使用して現在の温度と湿度を読み取り、 sensor.temperature 、 sensor.humidity に保存されます。
それらはその後、出力されます。
最後に、DHT11のサンプリングレートは1HZなので、ループ内で time.sleep(1) が必要です。
while True:
try:
sensor.measure()
string = "Temperature:{}\nHumidity: {}".format(sensor.temperature, sensor.humidity)
print(string)
time.sleep(4)
except InvalidPulseCount as e:
print('Bad pulse count - retrying ...')