ESP32買った(5)BEM280で温湿度気圧読み込み(リハビリ中)
だいぶほったらかしなので、リハビリ
取りあえず、BME280を接続して温湿度気圧を読み込もう。なんか以前プログラムだけは作っているけど、それを確認するために(環境も変わっているので)
接続ですが。少し細身のNodeMCUを使っている。(書き込みをミスるという評判だが)。アンテナを上にして、左側の一番が3.3V、左側の一番下が5Vになっているピン構成だ。
ピン配置の画像は https://www.espboards.dev/esp32/nodemcu-32s/ にある。
BME280は秋月のモジュールでJ3をショートさせてI2C通信ができるようにしてある。
正面からVDD、GND、CSB 、SDI、SDO、SCKとなっている。
VDDをNodeMCUの左の1番目3.3Vに接続
GNDをNodeMCUの左の14番目(下から6番目)GNDに接続
CSBは空き
SDIをNodeMCUの右の6番目 GPIO21に接続
SDOをGNDに接続
SCKをNodeMCUの右の3番目 GPIO22に接続
で接続。
まず、ライブラリーに finitespace/BME280 を使う(使っていた)最新バージョンがDec xx, 2018. - Version 3.0.0 pending (A lot)なので、当時も同じものを使っていたと思う。これをArduino IDEにインストールし以下のほとんどサンプルそのままを記入しコンパイルして書き込む。書き込む際はUSBの右側のIO0を押しながら書き込む
#include <BME280I2C.h>#include <Wire.h>#define SERIAL_BAUD 115200BME280I2C bme;void setup(){Serial.begin(SERIAL_BAUD);Wire.begin();while(!bme.begin()){Serial.println("Could not find BME280 sensor!");delay(1000);}}void loop(){float temp, hum, pres;BME280::TempUnit tu(BME280::TempUnit_Celsius);BME280::PresUnit pu(BME280::PresUnit_hPa);bme.read(pres, temp, hum, tu, pu);Serial.print("Sec: " + String(millis()/1000));Serial.print("\t\tTemp: " + String(temp) + "°C");Serial.print("\t\tHumidity: " + String(hum) + "% RH");Serial.println("\t\tPressure: " + String(pres) + " hPa");delay(5000);}
で取りあえず動いた
コメント
コメントを投稿