KAmod Si7021 (PL)
From Kamamilabs.com - Wiki

Opis
KAmod Si7021 - Moduł z czujnikiem temperatury i wilgotności Si7021
Moduł z niedrogim i łatwym w użyciu czujnikiem temperatury i wilgotności Si7021 firmy Sillicon Labs. Sensor komunikuje się przez interfejs I2C i umożliwia pomiar temperatury w zakresie -40 do 125 °C oraz wilgotności względnej w zakresie od 0 do 100% RH. Płytka została wyposażona w złącza I2C Qwire (kompatybilne z Qwiic/STEMMA QT) oraz 1-rzędowe złącze o rastrze 2,54 mm. Na płytce znajduje się dioda LED sygnalizująca obecność napięcia zasilania oraz rezystory podciągające 4,7 kΩ dla linii interfejsu I2C, które w razie potrzeby można łatwo odłączyć.

Podstawowe parametry
- Bazuje na układzie Si7021 firmy Sillicon Labs
- Zakres pomiaru wilgotności: 0-80 % RH
- Dokładność pomiaru wilgotności: ±3 % (w zakresie 0-80 %RH)
- Rozdzielczość pomiaru wilgotności: ±0,025%RH
- Zakres pomiaru temperatury: -40...125 °C
- Dokładność pomiaru temperatury: ± 0,4°C (w zakresie -10...+85 °C)
- Rozdzielczość pomiaru temperatury: ±0,01°C
- Komunikacja za pomocą interfejsu I2C (adres układu: 0x40)
- Złącza I2C Qwire typu JST SH 4-pin 1 mm (kompatybilne z Qwiic / STEMMA QT)
- Napięcie zasilania: 3,3 V
- Wymiary: 25 x 15 x 4,7 mm
Wyposażenie standardowe
| Kod | Opis |
|---|---|
| KAmod Si7021 |
|

Schemat elektryczny

Rozmieszczenie sygnałów na płytce
Moduł KAmod Si7021 zawiera dwa 4-pinowe złącza I2C Qwire (JST SH 1 mm) zgodne ze standardem Qwiic / STEMMA QT, które umożliwiają szybkie podłączanie i rozszerzanie funkcji modułów wyposażonych w interfejs I2C, bez potrzeby lutowania. Dodatkowo linie zasilania i I2C są wyprowadzone na 1-rzędowym złączu J1 o rastrze 2,54 mm. Rozmieszczenie poszczególnych sygnałów zostało opisane na płytce drukowanej.

Zasilanie
Moduł KAmod Si7021 powinien być zasilany napięciem stałym o wartości 3,3 V (1,9...3,6V).
Zasilanie płytki odbywa się poprzez złącze Qwire (kompatybilny z Qwiic / STEMMA QT) lub złącze szpilkowe na stykach +3V3 oraz GND. Obecność napięcia zasilania sygnalizuje świecenie diody LED oznaczonej PWR.

Zworki konfiguracyjne
Moduł KAmod Si7021 wyposażony został w zworkę SMD umożliwiającą odłączenie diody LED "PWR LED" (JP1) oraz zworki "I2C PULLUPS" (JP2, JP3) pozwalające na niezależne odłączenie rezystorów podciągających (do dodatniego bieguna zasilania), od linii magistrali I2C.
Zworki znajdują się na dolnej stronie płytki (bottom) i są fabrycznie zwarte (ścieżka miedzi pomiędzy padami). Aby rozłączyć zworki, należy przeciąć ostrym narzędziem powierzchnię płytki – tak jak wskazują czerwone linie na poniższym rysunku. Ponowne połączenie zworek jest możliwe poprzez naniesienie kropelki spoiwa lutowniczego, które połączy oba, przecięte pady zworki.

Wymiary
Wymiary płytki KAmod Si7021 to 25x15 mm. Na płytce znajdują się 2 otwory montażowe o średnicy 3,2 mm.

Program testowy
Program testowy został napisany w środowisku Arduino dla płytki KAmodESP32 POW RS485.
//ino board: ESP32-WROOM-DA Module
//Hardware Connections:
// KAmod Si7021 ------------- KAmodESP32 POW RS485
// GND ---------------------------- GND
// 3V3 ---------------------------- 3.3V
// SDA ---------------------------- SDA/IO-33
// SCL ---------------------------- SCL/IO-32
#include <Wire.h>
#include <SPI.h>
#include "Adafruit_Si7021.h"
bool enableHeater = false;
uint8_t loopCnt = 0;
Adafruit_Si7021 sensor = Adafruit_Si7021();
void setup() {
Serial.begin(115200);
// wait for serial port to open
while (!Serial) {
delay(10);
}
Serial.println("Si7021 test!");
if (!sensor.begin()) {
Serial.println("Did not find Si7021 sensor!");
while (true)
;
}
Serial.print("Found model ");
switch(sensor.getModel()) {
case SI_Engineering_Samples:
Serial.print("SI engineering samples"); break;
case SI_7013:
Serial.print("Si7013"); break;
case SI_7020:
Serial.print("Si7020"); break;
case SI_7021:
Serial.print("Si7021"); break;
case SI_UNKNOWN:
default:
Serial.print("Unknown");
}
Serial.print(" Rev(");
Serial.print(sensor.getRevision());
Serial.print(")");
Serial.print(" Serial #"); Serial.print(sensor.sernum_a, HEX); Serial.println(sensor.sernum_b, HEX);
}
void loop() {
Serial.print("Humidity: ");
Serial.print(sensor.readHumidity(), 2);
Serial.print("\tTemperature: ");
Serial.println(sensor.readTemperature(), 2);
delay(1000);
// Toggle heater enabled state every 30 seconds
// An ~1.8 degC temperature increase can be noted when heater is enabled
if (++loopCnt == 30) {
enableHeater = !enableHeater;
sensor.heater(enableHeater);
Serial.print("Heater Enabled State: ");
if (sensor.isHeaterEnabled())
Serial.println("ENABLED");
else
Serial.println("DISABLED");
loopCnt = 0;
}
}