mirror of https://github.com/arendst/Tasmota.git
76 lines
2.1 KiB
C++
76 lines
2.1 KiB
C++
#include <LOLIN_HP303B.h>
|
|
|
|
// HP303B Opject
|
|
LOLIN_HP303B HP303BPressureSensor;
|
|
|
|
|
|
void setup()
|
|
{
|
|
Serial.begin(115200);
|
|
while (!Serial);
|
|
|
|
|
|
//Call begin to initialize HP303BPressureSensor
|
|
//The parameter 0x76 is the bus address. The default address is 0x77 and does not need to be given.
|
|
//HP303BPressureSensor.begin(Wire, 0x76);
|
|
//Use the commented line below instead of the one above to use the default I2C address.
|
|
//if you are using the Pressure 3 click Board, you need 0x76
|
|
HP303BPressureSensor.begin();
|
|
|
|
Serial.println("Init complete!");
|
|
}
|
|
|
|
|
|
|
|
void loop()
|
|
{
|
|
int32_t temperature;
|
|
int32_t pressure;
|
|
int16_t oversampling = 7;
|
|
int16_t ret;
|
|
Serial.println();
|
|
|
|
//lets the HP303B perform a Single temperature measurement with the last (or standard) configuration
|
|
//The result will be written to the paramerter temperature
|
|
//ret = HP303BPressureSensor.measureTempOnce(temperature);
|
|
//the commented line below does exactly the same as the one above, but you can also config the precision
|
|
//oversampling can be a value from 0 to 7
|
|
//the HP303B will perform 2^oversampling internal temperature measurements and combine them to one result with higher precision
|
|
//measurements with higher precision take more time, consult datasheet for more information
|
|
ret = HP303BPressureSensor.measureTempOnce(temperature, oversampling);
|
|
|
|
if (ret != 0)
|
|
{
|
|
//Something went wrong.
|
|
//Look at the library code for more information about return codes
|
|
Serial.print("FAIL! ret = ");
|
|
Serial.println(ret);
|
|
}
|
|
else
|
|
{
|
|
Serial.print("Temperature: ");
|
|
Serial.print(temperature);
|
|
Serial.println(" degrees of Celsius");
|
|
}
|
|
|
|
//Pressure measurement behaves like temperature measurement
|
|
//ret = HP303BPressureSensor.measurePressureOnce(pressure);
|
|
ret = HP303BPressureSensor.measurePressureOnce(pressure, oversampling);
|
|
if (ret != 0)
|
|
{
|
|
//Something went wrong.
|
|
//Look at the library code for more information about return codes
|
|
Serial.print("FAIL! ret = ");
|
|
Serial.println(ret);
|
|
}
|
|
else
|
|
{
|
|
Serial.print("Pressure: ");
|
|
Serial.print(pressure);
|
|
Serial.println(" Pascal");
|
|
}
|
|
|
|
//Wait some time
|
|
delay(500);
|
|
}
|