LeifESPBaseHomieというオープンライブラリを使ったDHT11センサーノードを作ったのですが、そこに、BMP180も追加します。
使っているボードは、NodeMCU1.0です。
なので、I2C通信のピンは、デフォルトでは、SDA -> Pin4(D2), SCL -> Pin5(D1)でした。
ちょうど空いていたのでよかった!
ほとんど、サンプルコードのままですが、以下が使っているコードです。
初期化部分@グローバル変数定義
Adafruit_BMP085 bmp;
接続確認@setupの中
// check BMP180
if (!bmp.begin()) {
Serial.print("something is wrong for BMP180");
}
LeifESPBaseHomieプロパティ登録@setupの中
// pressure sensor
pPropAirPressure = pProp = pNode->NewProperty();
pProp->strFriendlyName = "AirPressure";
pProp->strID = "airpressure";
pProp->strUnit = "Pa";
pProp->bRetained = true;
pProp->bSettable = false;
pProp->datatype = homieInt;
pProp->SetValue("101325.0"); // default value? = Pa at sea level
気圧Publish@loopの中のどこか
// update with BMP180 for AirPressure
int airPressure = bmp.readPressure();
sprintf(pressureChar, "%10d", airPressure);
pPropAirPressure->SetValue(pressureChar);
Serial.print("AirPressure : ");
Serial.println(airPressure);
Sponsor Link