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.
Senzor | Arduino uno | Další informace |
GND | GND | |
+ nebo vin | Napájení 3.3V | U varianty 5V VIN , může být připojený i na 5V. |
SDA | A4 | U verze 3.3V vyžaduje převodník úrovní. |
SCL | A5 | U 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);
}