Senzor vlhkosti a teploty si7021 – Arduino

Senzor si7021 měří teplotu a vlhkost a využívá I2C, což umožňuje připojit více senzoru na stejný spoj, za předpokladu, že umožňuje změnit adresu. Senzor je docela přesný a výhoda je jeho spotřeba, když neměří nic, tak se přepne do režimu nečinnosti, kde už je odběr proudu jen několik uA. Některé senzory mají i ochranu proti prachu a nečistotám.

Vlastnosti senzoru:

  • ± 3% vlhkost přesnosti s rozsahem 0-80%.
  • Přesnost teploty ± 0,4 ° C v rozsahu –10 do 85 ° C .
  • Pracuje v plném rozsahu vlhkosti 0 až 100% a od -40 do 125 ° C .
  • Sériové rozhraní I2C.

Připojení senzoru k arduinu.

Senzor pracuje mezi 1.9 až 3.6 voltů, více není možné. Některé moduly mají řešení, že je možné napájet senzor i 5 volty. Senzor má 3.3 V logiku, takže jestli není na modulu řešené, že se může připojit na 5 V logiku, tak to nedělejte. Jestli je modul tedy bez úpravy, tak při připojení k arduinu je potřeba převodník úrovní I2C.

SenzorArduino unoDalší informace
GNDGND
+ nebo vinNapájení 3.3VU varianty 5V VIN , může být připojený i na 5V.
SDAA4U verze 3.3V vyžaduje převodník úrovní.
SCLA5U verze 3.3V vyžaduje převodník úrovní.

Uvedené piny SCL a SDA jsou k dispozici na A5 a A4 na Arduino Uno, Nano a Pro Mini. Ostatní desky používají různé piny. Moduly kompatibilní s 3,3 V obvykle neobsahují žádné další komponenty na spodní straně své desky s obvody. Na jiných populárních mikrokontrolérech, jako je ESP8266, můžete přímo určit, který pin chcete použít pro SDA a SCL .

Čtení dat ze senzoru.

#include "Si7021.h"

Si7021 si7021;


void setup() {

  Serial.begin(115200);
  si7021.begin();
}

void loop() {

  Serial.print("Vlhkost: ");
  Serial.print(si7021.measureHumidity());
  Serial.print("%");
  Serial.println("Teplota: ");
     Serial.print(si7021.getTemperatureFromPreviousHumidityMeasurement());
  Serial.println("C");
  delay(2000);


}

Stažení knihovny si7021: