Domotique/WifiControlSensor/BMP180.ino
2016-06-02 01:28:16 +02:00

55 lines
1.1 KiB
C++

#ifdef CONFIG_ENABLE_BMP180
#include "BMP180.h"
SFE_BMP180 bmp180;
int bmp180Connected = 0;
int BMP180Setup(int sda, int scl) {
//Use BMP fork at https://github.com/mmaret/BMP180_Breakout_Arduino_Library/archive/master.zip
bmp180Connected = bmp180.begin(sda, scl);
if (!bmp180Connected){
SKETCH_DEBUG_PRINTLN("Cannot connect to BMP180");
goto err;
}
return 0;
err:
return -1;
}
bool BMP180IsConnected() {
return bmp180Connected != 0;
}
int BMP180GetTemperature(double &t) {
char status;
if(!BMP180IsConnected())
return -1;
status = bmp180.startTemperature();
if (status != 0)
{
// Wait for the measurement to complete:
delay(status);
status = bmp180.getTemperature(t);
if (status != 0)
return 0;
}
return -1;
}
int BMP180GetTempAndPressure(double &t, double &p) {
if (BMP180GetTemperature(t) == 0) {
char status;
status = bmp180.startPressure(3);
if (status != 0)
{
delay(status);
status = bmp180.getPressure(p, t);
if (status != 0){
p = bmp180.sealevel(p, ALTITUDE);
return 0;
}
}
}
return -1;
}
#endif