diff --git a/WifiControlSensor/BMP180.ino b/WifiControlSensor/BMP180.ino index 078e496..811b6b8 100644 --- a/WifiControlSensor/BMP180.ino +++ b/WifiControlSensor/BMP180.ino @@ -1,3 +1,15 @@ +SFE_BMP180 bmp180; +int bmp180Connected = 0; + +int setupBMP180() { + bmp180Connected = bmp180.begin(SDA, SCL); + return bmp180Connected; +} + +bool isBMPConnected() { + return bmp180Connected != 0; +} + int getTemperature(double &t) { char status; status = bmp180.startTemperature(); diff --git a/WifiControlSensor/WebServer.ino b/WifiControlSensor/WebServer.ino index d835c87..c696495 100644 --- a/WifiControlSensor/WebServer.ino +++ b/WifiControlSensor/WebServer.ino @@ -5,6 +5,7 @@ void handleRoot() { "Current temperature " + String(temp, 2) + "C
" "Current pressure " + String(pressure, 2) + "mB
" "MQTT Status: " + (MQTT_isConnected() ? "Connected" : "Disconnected") + "
" + "BMP 180 (Temp+Pression) Status: " + (isBMPConnected() ? "Connected" : "Disconnected") + "
" "Free space: "+ ESP.getFreeSketchSpace() +"
" "Free heap: "+ ESP.getFreeHeap() +"
" "Setup
" diff --git a/WifiControlSensor/WifiControlSensor.ino b/WifiControlSensor/WifiControlSensor.ino index 9e64a8d..d780d8c 100644 --- a/WifiControlSensor/WifiControlSensor.ino +++ b/WifiControlSensor/WifiControlSensor.ino @@ -28,7 +28,7 @@ //#define ENABLE_EXTRA_GPIO -#define EEPROM_SIZE 512 +#define EEPROM_SIZE 256 char eeprom[EEPROM_SIZE]; #define WEB_DELAY_MS 100 @@ -49,7 +49,6 @@ uint8_t mode; const char *ssid = "ESPConfigurator"; ESP8266WebServer server(80); -SFE_BMP180 bmp180; /* WebServer decl*/ void handleRoot(); @@ -68,6 +67,9 @@ void readEEPROM(uint8_t &bootMode, char **ssid, char **password, char **host, ch /* BMP180 decl */ int getTemperature(double &t); int getTempAndPressure(double &t, double &p); +int setupBMP180(); +bool isBMPConnected(); + /* MQTT decl */ int MQTT_connect(); @@ -195,7 +197,7 @@ void setup() { if (mode == BOOTMODE_OTA) { setupOTA(); } else { - if (bmp180.begin(SDA, SCL)) + if (setupBMP180()) Serial.println("BMP180 init success"); setupWebServer(mode); } @@ -210,7 +212,7 @@ void loop() { delay(WEB_DELAY_MS); nbCycle++; if (nbCycle > SAMPLING_PERIODE_MS / WEB_DELAY_MS) { - if (getTempAndPressure(temp, pressure) == 0) { + if (isBMPConnected() && getTempAndPressure(temp, pressure) == 0) { Serial.print("Current T°C "); Serial.print(temp); Serial.print( " Pressure mB ");