- Raspberry Pi 4とsensor類をつなげてみる
- bme280から気圧・温度・湿度 / mh_z19からCO2濃度を取得する@多摩川あたり
- 取得したデータを使って線グラフを生成
- データ取得と線グラフ生成は以下タイミングで実行し、ツイート
- 毎日09:00/18:00
- Bluetoothリモコンシャッターのボタン押下時
- 画像の金色のセンサー
- 2022/05/03購入。3899円
- https://www.amazon.co.jp/dp/B07B3VGGNL?psc=1&ref=ppx_pop_dt_b_product_details
- https://pypi.org/project/mh-z19/
- 画像の紫色のセンサー
- 2022/05/03購入。4個で5099円
- 書籍で使われてるものと違うものを購入したよう。が、読み替えて利用できそう。
- https://www.amazon.co.jp/dp/B08L6J5MLM?ref=ppx_pop_dt_b_product_details&th=1
- https://github.com/nozo-moto/mhz19-bme280-go#how-to-move
-
「エキスパートたちのGo言語」の「Raspberry PiによるCO2、温湿度、気圧のモニタリング」p219~ をやっていく。
-
- I2C(p159~)
- シリアル通信と呼ばれるデータ通信方式の一つ
- I2C通信を使うと、デジタル値を出力するセンサを多数扱える
- センサに、センサとADコンバータが内臓されているため、内部のセンサが出力するアナログ値->ADコンバータ->デジタル値出力、となるから、I2Cで扱える
- マスター・スレーブというふうにデバイスを捉える
- 今回なら、RaspberryPiがマスターで、BME280がスレーブ
- スレーブにはアドレスという概念がある
- マスター・スレーブの各デバイスは、SDAとSCLの2線で接続される
- SDA: シリアルデータ
- SCL: シリアルクロック
- (本来、I2C接続にはプルアップ抵抗なるものが必要だが、RaspberryPiに内蔵されている)
- マスター・スレーブを接続し、
i2cdetect -y 1
コマンドをマスターで実行すると、スレーブのアドレスを取得できる、と理解- 今回なら、
76
がBME280のアドレス
- 今回なら、
- 各センサの仕様を確認しないと、そのセンサのアドレスや、どのレジスタ(のアドレス)からデータの読み書きをすればいいかわからない
- I2C(p159~)
-
mh-z19を利用可能にする
- ref: https://rcmdnk.com/blog/2021/02/18/computer-iot-raspberrypi/
- /boot/config.txtに以下を追記しrebootする
dtoverlay=disable-bt
- 2022/10/01 に「Bluetoothリモコンシャッター」を使いたいため、コメントアウトした。
- そのままの状態で、uartではなくpwmで通信することで対処した。
- 2022/10/01 に「Bluetoothリモコンシャッター」を使いたいため、コメントアウトした。