Skip to content

Commit

Permalink
Add ifdefs for pressure sensors and rename MPL
Browse files Browse the repository at this point in the history
  • Loading branch information
oscgonfer committed Oct 30, 2023
1 parent 01b42f2 commit 4f4713a
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 21 deletions.
31 changes: 21 additions & 10 deletions lib/Sensors/Sensors.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

#define WITH_PMS // Saves 1504 bytes (this also disables auxiliary external PM sensor from pmboard)
#define WITH_URBAN // Saves 6408 bytes (none of the urban board sensor will be available, it also disables external SHT3X)
#define WITH_AS7331 // Saves xxx bytes
// #define WITH_CCS811 //
//#define WITH_LPS33 //
#define WITH_MPL

// Auxiliary Sensors (ALl this sensors use around 8kb)
// #define WITH_SENSOR_GROVE_OLED // Saves 2496 bytes
Expand Down Expand Up @@ -49,11 +49,17 @@ enum SensorType
SENSOR_NOISE_DBC,
SENSOR_NOISE_DBZ,
SENSOR_NOISE_FFT,
SENSOR_ALTITUDE,
SENSOR_PRESSURE,
SENSOR_PRESSURE_TEMP,

#ifdef WITH_MPL
SENSOR_MPL_ALTITUDE,
SENSOR_MPL_PRESSURE,
SENSOR_MPL_TEMP,
#endif

#ifdef WITH_LPS33
SENSOR_LPS33_PRESS,
SENSOR_LPS33_TEMP,
#endif

#ifdef WITH_CCS811
SENSOR_CCS811_VOCS,
Expand Down Expand Up @@ -316,17 +322,22 @@ class AllSensors
OneSensor { BOARD_URBAN, 100, SENSOR_NOISE_DBC, "NOISE_B", "Noise dBC", 217, false, 1, "dBC" },
OneSensor { BOARD_URBAN, 100, SENSOR_NOISE_DBZ, "NOISE_Z", "Noise dBZ", 218, false, 1, "dB" },
OneSensor { BOARD_URBAN, 100, SENSOR_NOISE_FFT, "NOISE_FFT", "Noise FFT", 0, false, 1, },
OneSensor { BOARD_URBAN, 100, SENSOR_ALTITUDE, "ALT", "Altitude", 219, false, 1, "M" },
OneSensor { BOARD_URBAN, 100, SENSOR_PRESSURE, "PRESS", "Barometric pressure", 58, true, 1, "kPa" },
OneSensor { BOARD_URBAN, 100, SENSOR_PRESSURE_TEMP, "PRESS_TEMP", "Pressure internal temperature", 0, false, 1, "C" },

#ifdef WITH_MPL
OneSensor { BOARD_URBAN, 100, SENSOR_MPL_ALTITUDE, "MPL_ALT", "MPL Altitude", 219, false, 1, "m" },
OneSensor { BOARD_URBAN, 100, SENSOR_MPL_PRESSURE, "MPL_PRESS", "MPL Barometric pressure", 58, true, 1, "kPa" },
OneSensor { BOARD_URBAN, 100, SENSOR_MPL_TEMP, "MPL_TEMP", "MPL internal temperature", 0, false, 1, "C" },
#endif

#ifdef WITH_CCS811
OneSensor { BOARD_URBAN, 100, SENSOR_CCS811_VOCS, "CCS811_VOCS", "VOC Gas CCS811", 113, true, 1, "ppb" },
OneSensor { BOARD_URBAN, 100, SENSOR_CCS811_ECO2, "CCS811_ECO2", "eCO2 Gas CCS811", 112, true, 1, "ppm" },
#endif

OneSensor { BOARD_URBAN, 100, SENSOR_LPS33_PRESS, "PRESS_LPS", "Barometric pressure LPS", 227, true, 1, "kPa" },
OneSensor { BOARD_URBAN, 100, SENSOR_LPS33_TEMP, "PRESS_TEMP_LPS", "Pressure internal temperature LPS", 0, false, 1, "C" },
#ifdef WITH_LPS33
OneSensor { BOARD_URBAN, 100, SENSOR_LPS33_PRESS, "LPS33_PRESS", "LPS33 Barometric pressure", 227, true, 1, "kPa" },
OneSensor { BOARD_URBAN, 100, SENSOR_LPS33_TEMP, "LPS33_TEMP", "LPS33 internal temperature", 0, false, 1, "C" },
#endif

#ifdef WITH_PMS
// TODO cambiar los nombres a este pm para que no se confunda con los demas
Expand Down
2 changes: 1 addition & 1 deletion sam/src/SckAux.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2571,7 +2571,7 @@ bool Sck_SCD30::start(SckBase *base, SensorType wichSensor)
#ifdef WITH_URBAN
// TODO Add here LPS pressure sensor
// Ambient pressure compensation
OneSensor *pressureSensor = &base->sensors[SENSOR_PRESSURE];
OneSensor *pressureSensor = &base->sensors[SENSOR_MPL_PRESSURE];

if (pressureSensor->enabled && base->getReading(pressureSensor)) {
float pressureReading = pressureSensor->reading.toFloat();
Expand Down
35 changes: 25 additions & 10 deletions sam/src/SckUrban.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,15 @@ bool SckUrban::start(SensorType wichSensor)
case SENSOR_NOISE_DBC:
case SENSOR_NOISE_DBZ:
case SENSOR_NOISE_FFT: return sck_noise.start();
case SENSOR_ALTITUDE:
case SENSOR_PRESSURE:
case SENSOR_PRESSURE_TEMP: return sck_mpl3115A2.start();
#ifdef WITH_MPL
case SENSOR_MPL_ALTITUDE:
case SENSOR_MPL_PRESSURE:
case SENSOR_MPL_TEMP: return sck_mpl3115A2.start();
#endif
#ifdef WITH_LPS33
case SENSOR_LPS33_PRESS:
case SENSOR_LPS33_TEMP: return sck_lps33.start();
#endif
#ifdef WITH_CCS811
case SENSOR_CCS811_VOCS: return sck_ccs811.start();
case SENSOR_CCS811_ECO2: return sck_ccs811.start();
Expand Down Expand Up @@ -111,11 +115,15 @@ bool SckUrban::stop(SensorType wichSensor)
case SENSOR_NOISE_DBC:
case SENSOR_NOISE_DBZ:
case SENSOR_NOISE_FFT: return sck_noise.stop();
case SENSOR_ALTITUDE:
case SENSOR_PRESSURE:
case SENSOR_PRESSURE_TEMP: return sck_mpl3115A2.stop();
#ifdef WITH_MPL
case SENSOR_MPL_ALTITUDE:
case SENSOR_MPL_PRESSURE:
case SENSOR_MPL_TEMP: return sck_mpl3115A2.stop();
#endif
#ifdef WITH_LPS33
case SENSOR_LPS33_PRESS:
case SENSOR_LPS33_TEMP: return sck_lps33.stop();
#endif
#ifdef WITH_CCS811
case SENSOR_CCS811_VOCS:
case SENSOR_CCS811_ECO2: return sck_ccs811.stop();
Expand Down Expand Up @@ -202,11 +210,15 @@ void SckUrban::getReading(SckBase *base, OneSensor *wichSensor)
case SENSOR_CCS811_VOCS: if (sck_ccs811.getReading(base)) { wichSensor->reading = String(sck_ccs811.VOCgas); return; } break;
case SENSOR_CCS811_ECO2: if (sck_ccs811.getReading(base)) { wichSensor->reading = String(sck_ccs811.ECO2gas); return; } break;
#endif
case SENSOR_ALTITUDE: if (sck_mpl3115A2.getAltitude()) { wichSensor->reading = String(sck_mpl3115A2.altitude); return; } break;
case SENSOR_PRESSURE: if (sck_mpl3115A2.getPressure()) { wichSensor->reading = String(sck_mpl3115A2.pressure); return; } break;
case SENSOR_PRESSURE_TEMP: if (sck_mpl3115A2.getTemperature()) { wichSensor->reading = String(sck_mpl3115A2.temperature); return; } break;
#ifdef WITH_MPL
case SENSOR_MPL_ALTITUDE: if (sck_mpl3115A2.getAltitude()) { wichSensor->reading = String(sck_mpl3115A2.altitude); return; } break;
case SENSOR_MPL_PRESSURE: if (sck_mpl3115A2.getPressure()) { wichSensor->reading = String(sck_mpl3115A2.pressure); return; } break;
case SENSOR_MPL_TEMP: if (sck_mpl3115A2.getTemperature()) { wichSensor->reading = String(sck_mpl3115A2.temperature); return; } break;
#endif
#ifdef WITH_LPS33
case SENSOR_LPS33_PRESS: if (sck_lps33.getPressure()) { wichSensor->reading = String(sck_lps33.pressure); return; } break;
case SENSOR_LPS33_TEMP: if (sck_lps33.getTemperature()) { wichSensor->reading = String(sck_lps33.temperature); return; } break;
#endif
#ifdef WITH_PMS
case SENSOR_PMS_PM_1: if (sck_pms.getReading(wichSensor, base)) { wichSensor->reading = String(sck_pms.pm1); return; } break;
case SENSOR_PMS_PM_25: if (sck_pms.getReading(wichSensor, base)) { wichSensor->reading = String(sck_pms.pm25); return; } break;
Expand Down Expand Up @@ -1156,6 +1168,7 @@ void Sck_Noise::fft2db()
}
}

#ifdef WITH_MPL
// Barometric pressure and Altitude
bool Sck_MPL3115A2::start()
{
Expand Down Expand Up @@ -1203,7 +1216,8 @@ bool Sck_MPL3115A2::getTemperature()

return true;
}

#endif
#ifdef WITH_LPS33
// Barometric pressure and Altitude
bool Sck_LPS33::start()
{
Expand Down Expand Up @@ -1241,6 +1255,7 @@ bool Sck_LPS33::getTemperature()

return true;
}
#endif

#ifdef WITH_PMS
// PM sensor
Expand Down
14 changes: 14 additions & 0 deletions sam/src/SckUrban.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,12 @@
#include <Sensors.h>
#include "Pins.h"
#ifdef WITH_URBAN
#ifdef WITH_MPL
#include <Adafruit_MPL3115A2.h>
#endif
#ifdef WITH_LPS33
#include <Adafruit_LPS35HW.h>
#endif
#include "SckSoundTables.h"
#include <I2S.h>

Expand Down Expand Up @@ -146,6 +150,7 @@ class Sck_Noise

};

#ifdef WITH_MPL
// Barometric pressure and Altitude
class Sck_MPL3115A2
{
Expand All @@ -166,7 +171,9 @@ class Sck_MPL3115A2
bool getPressure();
bool getTemperature();
};
#endif

#ifdef WITH_LPS33
// Barometric pressure and Altitude LPS33K
class Sck_LPS33
{
Expand All @@ -185,6 +192,7 @@ class Sck_LPS33
bool getPressure();
bool getTemperature();
};
#endif

#ifdef WITH_PMS
//PM sensors
Expand Down Expand Up @@ -482,6 +490,7 @@ class Sck_SEN5X
bool vocStateFromSensor();
};
#endif

#ifdef WITH_BME68X
class Sck_BME68X
{
Expand All @@ -505,6 +514,7 @@ class Sck_BME68X
bool alreadyStarted = false;
};
#endif

#ifdef WITH_AS7331
// UVA
class Sck_AS7331
Expand Down Expand Up @@ -648,11 +658,15 @@ class SckUrban
// Noise
Sck_Noise sck_noise;

#ifdef WITH_MPL
// Barometric pressure and Altitude
Sck_MPL3115A2 sck_mpl3115A2;
#endif

#ifdef WITH_LPS33
// Barometric pressure LPS
Sck_LPS33 sck_lps33;
#endif

#ifdef WITH_CCS811
// VOC and ECO2
Expand Down

0 comments on commit 4f4713a

Please sign in to comment.