MxChip czujnik wilgotności powietrza

Level 5 - MxChip czujnik wilgotności powietrza

Mamy już opanowany ekran, przyciski, dodajmy sobie teraz do tego sensor znaczy czujnik. Ponieważ mam w domu problem ze zbyt suchym powietrzem (i elektryzującymi się przez to kotami) to dostanę się do czujnika temperatury i wilgotności dokumentacja tutaj.

Samo odczytanie czujnika wygląda tak

  // enable
  sensorHnT -> enable();
  // read id
  sensorHnT -> readId(&id);
  // get humidity
  sensorHnT -> getHumidity(&humidity);
  // get temperature
  sensorHnT -> getTemperature(&temperature);
  // disable the sensor
  sensorHnT -> disable();
  // reset
  sensorHnT -> reset();

natomiast inicjalizacja

#include "HTS221Sensor.h"
#include "OledDisplay.h"

// humidity related
DevI2C *i2c;
HTS221Sensor *sensorHnT;
float humidity = 0;
float temperature = 0;
unsigned char id;

void setup() {
  // humidity and temperature related
  i2c = new DevI2C(D14, D15);
  sensorHnT = new HTS221Sensor(*i2c);
    // init the sensor
  sensorHnT -> init(NULL);

  //screen
  Screen.init();
}

Największy problem miałam z jak zwykle wyświetleniem danych. Odczyty są typu float więc formatowanie ich do decimala daje niemiły efekt. Dlatego lepiej użyć formatowania
%.2f

Według dokumentacji restart czujnika powinien być po jego odczytaniu. Ale z innych programów startowych wynika, że lepiej zrestartować czujnik przed odczytem. Wydaje się to dawać stabilniejsze wyniki.
Pod przyciskiem B dodałam jeszcze wyłączanie i włączanie pomiarów i ich wyświetlania.
Tutaj cały program.




Komentarze

Popularne posty