Arduino Nano 33 BLE Sense tiene dos sensores que permiten leer la temperatura en grados centigrados: HTS221 y LPS22HB.
Leer los dos puede ser una manera de verificar los datos. Dentro del rango de temperatura normales para el ser humano deberían de dar resultados muy parecidos.
Es necesario incluir las librerías para ambos sensores e inicializarlos con begin().
Para poder leer la temperatura del sensor LPS22HB es necesario leer primero la presión.
Si queremos podemos aproximar la temperatura final con una media de ambas temperaturas.
Juntemos todo esto en un ejemplo:
#include <Arduino_LPS22HB.h>
#include <Arduino_HTS221.h>
void setup() {
Serial.begin(9600);
while (!Serial);
if (!BARO.begin() || !HTS.begin()) {
Serial.println("Failed to initialize sensor!");
while (1);
}
}
void loop() {
float temperature1 = HTS.readTemperature();
BARO.readPressure();
float temperature2 = BARO.readTemperature();
float mean = (temperature1+temperature2)/2;
Serial.print("Temperature1 = ");
Serial.print(temperature1);
Serial.println(" C");
Serial.print("Temperature2 = ");
BARO.readPressure();
Serial.print(temperature2);
Serial.println(" C");
Serial.print("Mean = ");
Serial.print(mean);
Serial.println(" C");
Serial.println();
delay(1000);
}
Veamos la salida de ejecutar el código:
Temperature1 = 26.47 C
Temperature2 = 26.41 C
Mean = 26.44 C
Temperature1 = 26.52 C
Temperature2 = 26.41 C
Mean = 26.47 C
Temperature1 = 26.52 C
Temperature2 = 26.42 C
Mean = 26.47 C
Temperature1 = 26.45 C
Temperature2 = 26.42 C
Mean = 26.43 C
Temperature1 = 26.50 C
Temperature2 = 26.42 C
Mean = 26.46 C
Se puede ver que la temperatura no varía demasiado entre ambos sensores.