Raspberry Pi スマートホーム化計画 記事一覧
記事の内容を試す場合は自己責任でお願いいたします。
- Raspberry Pi Zero WH OSインストール
- Raspberry Pi Zero WHを使ってAmazon Echo Flexから音を出す
- Raspberry Piと赤外線LEDで家電を操作する
- Raspberry PiとBME280を利用して気温、湿度、気圧を測定する
- Raspberry Pi Zero WHにMackerelを導入して死活監視を行う
- Raspberry Piで照度を取得する TSL2572 TSL2561
- AlexaからRaspberry Piを経由して家電を音声で操作する
- AlexaをRaspberry PiのNodeREDから喋らせる
- Raspberry PiとAlexaでオリジナルスキルを作る 「今日のご飯は?」
- Raspberry Pi とSlackとLINE Messaging APIでLINEから家電を操作する
- Raspberry Piで収集したセンサー情報をMachinistに送信する
- Raspberry Piを使ってAlexaからゴミの日のお知らせをする
- Raspberry Piでダイソーのリモートシャッターを使う
- 2台のRaspberry PiとMySQLでレプリケーションを構成する
- iPhoneからRaspberry Piを経由して家電を操作する
- Raspberry PiでWebサーバを立ててブラウザから家電を操作する
今回はRaspberry Piと温湿度気圧測定モジュールを利用してデータの取得を行います。
BME280は1つのモジュールで温度、湿度、気圧が測定可能で、接続もI2Cなので非常に簡単です。

構成
回路図
つなぎ方
BME280 | Raspberry Pi Zero WH |
SDI | 3番ピン GPIO2 |
SCK | 5番ピン GPIO3 |
GND,SDO | 9番ピン GND |
Vio,CSB | 1番ピン 3.3V |

このような感じで接続します。
Raspberry Piでの準備
ICとRaspberry Piとの通信はI2Cという規格を用います。
使うためにはRaspberry Piの設定をオンにする必要があります。
I2Cを有効にする
sudo raspi-config
5 Interfacing Options Configure connections to peripherals ←選択
P5 I2C Enable/Disable automatic loading of I2C kernel module ←選択
設定が完了したら再起動します。
sudo reboot
次に認識しているか確認します。
I2Cで認識しているかを確認
sudo i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --
76に認識されていればOKです。
I2C用のライブラリをpipでインストールします。
smbus2のインストール
sudo pip3 install smbus2
データ取得用のスクリプトは以下のページのを使用しました。
ありがとうございます。
(Python3 の修正コード)

Raspberry Pi で温湿度気圧センサを使う - Qiita
概要Raspberry Pi でSIM経由で通信する顔認証システムを作成し、認証結果を kintone で管理するシステムを構築します。今回は、顔認証した時のオフィス環境データを取得するため R…
配置するディレクトリはどこでもいいですが今回は/opt配下にします。
bme280のデータを取得する
cd /opt
mkdir bme280
vim bme280.py
上記サイトのpythonスクリプトを貼り付ける
以下のコマンドで実行結果が得られればOK
python3 bme280.py
pressure : 961.11 hPa
temperature : 28.94 ℃
humidity : 55.17 %
この出力結果だと少し使いにくいので、シェルスクリプトを1つ書きました。
bme280.sh
#!/bin/bash
bme280py_path="/opt/bme280/bme280.py"
SECONDS=`date '+%s'`
if [ $# = 1 ]; then
if [ $1 = "temp" ]; then
VALUE=`python3 ${bme280py_path} | awk '{if ($1 == "temperature"){print $3}}'`
NAME='temperature.room'
elif [ $1 = "humi" ]; then
VALUE=`python3 ${bme280py_path} | awk '{if ($1 == "humidity"){print $3}}'`
NAME='humidity.room'
elif [ $1 = "pres" ]; then
VALUE=`python3 ${bme280py_path} | awk '{if ($1 == "pressure"){print $3}}'`
NAME='pressure.room'
else
echo "usage: $0 {temp|humi|pres} "
exit -1
fi
else
echo "usage: $0 {temp|humi|pres} "
exit -1
fi
echo -e "${NAME}\t${VALUE}\t${SECONDS}"
出力形式はMackerel利用を想定した形式にしています。
実行結果はこちら
pi@raspberrypizero:/opt/scripts $ ./bme280.sh temp
temperature.room 29.34 1599296777
pi@raspberrypizero:/opt/scripts $ ./bme280.sh humi
humidity.room 56.11 1599296837
pi@raspberrypizero:/opt/scripts $ ./bme280.sh pres
pressure.room 960.96 1599296846
引数にtempを入れると室温、humiを入れると湿度、presを入れると気圧が表示されます。
これで気温、湿度、気圧が簡単に取得できるようになりました!
Mackerelで簡単にグラフ化した記事はこちら

Raspberry Pi Zero WHにMackerelを導入して死活監視と気温などのグラフ化を行う
Mackerelを導入してできることMackerelは簡単に言うとSaaS型の監視サービスです。疎通確認やCPU使用率などを監視して問題があるとSlackやメールにアラートを飛ばしてくれます。クラウド型なので、自宅が停電した場合も問題なく通...
コメント