1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ラズパイPicoで温湿度計を使う

Last updated at Posted at 2024-12-08

ラズパイPicoのI2Cで、温度計・湿度計で測った数値を表示してみよう

温湿度計の説明

温湿度センサー AHT21B は、I2Cで制御される温度と湿度を計測するモジュールです。

I2Cでは、GND、VCC、SCL、SDAと言う、4本のピンで複数の周辺機器を制御します。このひとつにAHT21Bを接続して、温度計・湿度計の値を表示してみましょう。

温湿度センサー AHT21B:
https://akizukidenshi.com/catalog/g/g117394/

※ AHT20、AHT25は、AHT21Bと同じプログラムで動きます。
※ AHT25はピン配列が狭く、そのままではブレッドボードに刺さりません。

準備:AHT21B を GND、VCC、SCL、SDA で接続

前回接続した OLED の配線はそのままにして、AHT21Bを追加で接続します。(OLEDとAHT21Bが両方使える状態になります)

AHT21Bの左から右に向かって:
VCC:+ (3.3V)
SDA:PIN 0
GND:-
SCL:PIN 1

image.png

プログラム

まず、「パッケージを管理」で、ahtx0 をインストール、としたいところですが、パッケージ管理では上手くインストールできないそうです。
以下のファイルを lib フォルダの ahtx0.py ファイルとしてコピーします。

温度と湿度を1秒毎に表示する(f文字列を使用して、小数点以下2桁まで表示)

import time
from machine import Pin, I2C

from ahtx0 import AHT20

i2c = I2C(0, scl=Pin(1), sda=Pin(0)) # I2C初期化
aht21 = AHT20(i2c)

while True:
    temperature = aht21.temperature
    humidity = aht21.relative_humidity
    print(f"おんど: {temperature:0.2f} C")
    print(f"しつど: {humidity:0.2f} %")
    time.sleep(1)

温度と湿度を1秒毎に表示する(f文字列を使用して、小数点以下1桁まで表示)

import time
from machine import Pin, I2C

from ahtx0 import AHT20
from ssd1306 import SSD1306_I2C

i2c = I2C(0, scl=Pin(1), sda=Pin(0)) # I2C初期化
aht21 = AHT20(i2c)
display = SSD1306_I2C(128, 64, i2c)

while True:
    temperature = aht21.temperature
    humidity = aht21.relative_humidity
    temp = f"Temp: {temperature:0.1f}C"
    humi = f"Humi: {humidity:0.1f}%"
    display.fill(0)
    display.text("Hello", 0, 0)
    display.text(temp, 0, 8*1)
    display.text(humi, 0, 8*2)
    display.show()
    time.sleep(1)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?