引き続きESP32です。BOSCH製の温湿度・気圧センサーBME280を接続して値を読み込み、先週のOLEDに表示するまでを頑張ります。
BME280は、秋月で買うと1,080円です。海外通販だと2-300円だそうです。送られてくるまで日数はかかるそうですが。 上位機種のBME680というのもあり3項目に加えて空気中のガス濃度を測定してくれます。
BME280は、ラズパイに接続しAmbientのクラウドへ値を15分周期で送るのに使ってます。linuxでの設定は結構簡単だった記憶です。
BME280のドライバーは先人の知恵をいただきます。 https://github.com/catdog2/mpy_bme280_esp8266/blob/master/bme280.py
参考ページは、この辺で https://qiita.com/tshimizu8/items/e64e1af656b3b00a92d9
I2C接続のマスターはESP32なのでスレーブ側のセンサー等はバス接続でSCLとSDAの2線を共通にどんどん接続できます。 ただし、I2Cアドレスが競合するとよくないので、その辺はそれぞれのデバイスのデーターシートをよく確認する必要があります。
BM280の接続は、以下のとおりです。
いきなり成果写真になってますが、BME280はOLEDの隣に設置し、SDAとSCLをOLEDを経由してバス接続で延ばして接続します。
OLEDにセンサーから読み取った温度、湿度、気圧が30秒更新され表示されてます。
母艦PCのuPyCraftの通信状況部分にも確認のためprint文で表示させ、OLEDの表示とあってるか確認しました。モニター画面反射してますがすいません。
OLEDの日本語化とか最新データのグラフ化とか使い方はまだまだあります。 pythonコードは、以下のとおりです。
|
|