Raspberry Pi Picoで室温と湿度を計ってみた
Raspberry Pi Pico、安いし簡単にいろいろ試せるのでとても良いですね。
Raspberry Pi Zero WH を買った時にセンサー類をいろいろとそろえていたので Raspberry Pi Pico でも DHT11 で室温と湿度を計ってみました。
Raspberry Pi Zero WH では、DHT11からデータ(温度、湿度)を読み取るのにライブラリが必要でしたが、micropython にはすでにライブラリが組み込まれているので、とてもシンプルにこんな感じで温度と湿度を取得できます。
少しカスタマイズして不快指数も表示されるようにしてみました。
ちなみにパソコンから Thonny(Python IDE)を使って Raspberry Pi Picoを操作しているときは、Thonnyが日時を Pico に設定してくれます。
なので、
とやると日時を shellに表示できますよ。
以上、ご参考になれば幸いです。
参考:
追記:(2022/08/02)
Raspberry Pi Pico ラズベリーパイピコ マイコンRP2040(Arm Cortex-M0+デュアルコア@133MHz (1個)
Rasbee DHT11 温度と湿度センサー デジタル出力 DHT-11 DHT22 並行輸入品
Raspberry Pi Zero WH を買った時にセンサー類をいろいろとそろえていたので Raspberry Pi Pico でも DHT11 で室温と湿度を計ってみました。
Raspberry Pi Zero WH では、DHT11からデータ(温度、湿度)を読み取るのにライブラリが必要でしたが、micropython にはすでにライブラリが組み込まれているので、とてもシンプルにこんな感じで温度と湿度を取得できます。
from machine import Pin
import dht
# センサーの取得
sensor = dht.DHT11(Pin(2, Pin.IN, Pin.PULL_UP)) #DHT11の場合
#sensor = dht.DHT11(Pin(2, Pin.IN, Pin.PULL_UP)) #DHT22の場合
sensor.measure() #計測
temp = sensor.temperature() #温度
hum = sensor.humidity() # 湿度
print("Temperature: {:.1f}°C Humidity: {:.1f}%".format(temp,
hum))
少しカスタマイズして不快指数も表示されるようにしてみました。
from machine import Pin
import dht
from time import sleep
def judgeDI(di):
if di < 50:
return "寒くてたまらない"
elif di < 55:
return "寒い"
elif di < 60:
return "肌寒い"
elif di < 65:
return "なにも感じない"
elif di < 70:
return "快い"
elif di < 75:
return "暑くない"
elif di < 80:
return "やや暑い"
elif di < 85:
return "暑くて汗が出る"
else:
return "暑くてたまらない"
# センサーの取得
sensor = dht.DHT11(Pin(2, Pin.IN, Pin.PULL_UP))
#sensor = dht.DHT11(Pin(2, Pin.IN, Pin.PULL_UP))
while True:
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
di = 0.81 * temp + 0.01 * hum * ( 0.99 * temp - 14.3) + 46.3
print("Temperature: {:.1f}°C Humidity: {:.1f}% DI: {:.1f} ".format(temp,
hum, di) + judgeDI(di))
sleep(10)
ちなみにパソコンから Thonny(Python IDE)を使って Raspberry Pi Picoを操作しているときは、Thonnyが日時を Pico に設定してくれます。
なので、
import utime
time=utime.localtime()
print("{year:>04d}/{month:>02d}/{day:>02d} {HH:>02d}:{MM:>02d}:
{SS:>02d}".format( year=time[0], month=time[1], day=time[2],
HH=time[3], MM=time[4], SS=time[5]))
とやると日時を shellに表示できますよ。
以上、ご参考になれば幸いです。
参考:
"13. 温度と湿度 — MicroPython 1.19.1 ドキュメント"
https://micropython-docs-ja.readthedocs.io/ja/latest/esp8266/tutorial/dht.html
DHTライブラリのソースコード
"micropython/dht.py at master · micropython/micropython · GitHub"
https://github.com/micropython/micropython/blob/master/drivers/dht/dht.py
追記:(2022/08/02)
GitHubでコードを公開しました。
https://github.com/backy0175/pico-examples
Raspberry Pi Pico ラズベリーパイピコ マイコンRP2040(Arm Cortex-M0+デュアルコア@133MHz (1個)
Rasbee DHT11 温度と湿度センサー デジタル出力 DHT-11 DHT22 並行輸入品
この記事へのコメント