Raspberry pi zero 2Wを入手したので備忘録として書きます。
今回は大気圧センサ(BMP280)のGY-BMP280-3.3モジュールを使用して大気圧を測定します。
後々大気圧の変化をLCD上にお知らせできるようにしたいと思います。
大気圧センサ
Amazonで下記の大気圧センサを購入しました。
Raspberry pi zeroとの接続
BMP280 |
|
3.3V(1) |
Vcc |
GND(9) |
GND |
GPIO3(5) |
SCL |
GPIO2(3) |
SDA |
Raspberry Piの設定
I2Cの接続設定
I2Cの接続の設定は前回のブログ(その6)を参考にしてください。
I2Cdetectコマンド実行すると下記のように接続しているI2Cデバイスのアドレスが表示されます。
今回接続した大気圧センサは76hです。
ライブラリのインストール
GitHubのbmp280-pythonを参考にしています。
以下の手順でインストールします。
pip3 install bmp280
git clone https://github.com/pimoroni/bmp280-python
cd bmp280-python
./install.sh --unstable
サンプルプログラムの実行
サンプルプログラムのtemperature-and-pressure.pyは下記です。
#!/usr/bin/env python
import time
from smbus2 import SMBus
from bmp280 import BMP280
print("""temperature-and-pressure.py - Displays the temperature and pressure.
Press Ctrl+C to exit!
""")
# Initialise the BMP280
bus = SMBus(1)
bmp280 = BMP280(i2c_dev=bus)
while True:
temperature = bmp280.get_temperature()
pressure = bmp280.get_pressure()
print(f"{temperature:05.2f}*C {pressure:05.2f}hPa")
time.sleep(1)
実行してみました。
温度と気圧がちょっとおかしいです。
別のライブラリのインストール
別のライブラリでも試してみます。
sudo pip3 install adafruit-circuitpython-bmp280
サンプルプログラム
import board
import busio
import adafruit_bmp280
i2c = busio.I2C(board.SCL, board.SDA)
bmp280 = adafruit_bmp280.Adafruit_BMP280_I2C(i2c,0x76)
print("Temperature: {} degrees Celsius".format(bmp280.temperature))
print("Pressure: {} hPa".format(bmp280.pressure))
print("Altitude: {} meters".format(bmp280.altitude))
実行結果
>>> %Run -c $EDITOR_CONTENT
Temperature: -137.9134765625 degrees Celsius
Pressure: 519.6263066551096 hPa
Altitude: 5294.204771306099 meters
>>>
先ほどと同じ結果です
壊れているたかも別のセンサも確認してみます。
別のセンサで確認しました。
Temperature: 28.447265625 degrees Celsius
Pressure: 1003.9091914551309 hPa
Altitude: 77.97827414697777 meters
期待通りの値を出力しました。
最初に使用したセンサは壊れているようです。
もう一つのライブラリの方も期待通りの値になりました。
・温度の確認:他の温度センサの値は27.4℃でしたのでほぼ同じ結果
・気圧の確認:天気予報を確認したところ、1001hPaでしたのでほぼ同じ結果
この大気圧センサは、3つ購入したのですが正常動作したのは1つでした。
1つ目:測定値異常
2つ目:正常動作
3つ目:反応無し(I2Cdetectコマンド反応なし)
返品することにします。
以上