Zaloguje się
or
Tel +48 698 615 740

Czujnik wilgotności i temperatury Si7021 I2C

26 października, 2021

W artykule omówimy czujnik wilgotności i temperatury, dokładnie model Si7021 I2C, zostanie pokazane podłączenie, odczytywanie z niego wilgotności oraz temperatury panującej w aktualnej lokalizacji czujnika.

Spis treści

  • Opis czujnika
  • Specyfikacja
  • Podłączenie
  • Pobranie i zaimportowanie biblioteki
  • Wykorzystanie przykładu z biblioteki
  • Programowanie arduino

Opis czujnika

Czujnik Si7021 wilgotności i temperatury komunikujący się za pomocą magistrali I2C. Wykorzystywany do kontrolowania warunków na zewnątrz i wewnątrz pomieszczeń.

Specyfikacja

zakres pomiaru Temperatury -40 do +125

Pomiar wilgotności 0-100%

Wymiary 13x14mm

Podłączenie

Zaczniemy od podłączenia czujnika do arduino, SDA podłączamy do A5, SCL do A4, GND do GND i vin do zasialania 3V3. Schemat połączenia znajduje się poniżej

Pobieranie i zaimportowanie biblioteki

Bibiliotekę pobieramy z tego linku (link do pobrania bilbioteki SparkFun_Si7021_Humidity_and_Temperature_Sensor), następnie importujemy ją do arduino i gotowe (dla tych co nie wiedzą jak zaimportować bibliotekę do arduino odsyłam tutaj).

Wykorzystanie przykładu z biblioteki

Po zaimportowaniu naszej biblioteki, skorzystamy z jej przykładu, który od razu pozwoli nam wczytywać wartości z naszego czujnika i wyświetli nam temperaturę i wilgotność. Włączamy program Arduino i wybieramy następująco

Plik → Przykłady → SparkFun Si7021 Humidity and Temperature Sensor → SparkFun_Si7021_Breakout_Example

Po jego wybraniu otworzy nam się nowe okno z napisanym już kodem, wgrajmy go do naszego Arduino i zobaczmy co się wydarzy. Aby zobaczyć efekty musimy otworzyć monitor portu szeregowego, po jego otwarciu powinniśmy ujrzeć następujące wyniki.

Oczywiście widzimy, że stopnie są podane w Fahrenheitach, aby zmienić je na Celsjusza, musimy zmienić funkcję i zamiast literki F podmienić na C, aby wszystko się zgadzało, całość zrobimy w prosty sposób.

W pierwszej podkreślonej linijce usuwamy F i powinniśmy uzyskać sensor.getTemp(), natomiast podkreśloną literkę F usuwamy i wpisujemy C, po poprawkach wgrywamy program na arduino i teraz temperatura powinna być w dobrze nam znanych Celsjuszach.

Programowanie arduino

Teraz napiszemy samodzielnie program który będzie nam zwracał temperaturę oraz wilgotność, przy okazji zostanie wytłumaczone jego działanie.

Zaczniemy od importowania potrzebnych bibliotek

#include "SparkFun_Si7021_Breakout_Library.h"
#include <Wire.h>

Następnie utworzymy obiekt którym będziemy się posługiwać, dodatkowo w funkcji setup rozpoczniemy transmisję na porcie szeregowym, aby później móc wyświetlić dane. Zainicjujemy również działanie czujnika przy pomocy czujnik.begin().

Weather czujnik;//stworzenie obiektu czujnik

void setup() {
  Serial.begin(9600);//rozpoczęcie transmisji na porcie szeregowym
  czujnik.begin();//inicjacja czujnika
}

Tworzymy teraz zmienne które przydadzą nam się do przechowania temperatury, oraz wilgotnosci.

float wilgotnosc = 0;//utworzenie zmiennej wilgotność
float temperatura = 0;//utworzenie zmiennej temperatura

W funkcji loop zajmiemy się przypisaniem do zmiennych danych z czujnika przy pomocy funkcji getRH i getTemp, pozwolą nam na pobranie temperatury i wilgotności. Po pobraniu i wczytaniu do zmiennych, możemy wyświetlić je na ekranie.

void loop() {
  wilgotnosc = czujnik.getRH();//wczytanie do zmiennej procentu wilgotności przy pomocy funkcji getRH()
  temperatura = czujnik.getTemp();//wczytanie do zmiennej stopni Celsjusza przy pomocy funkcji getTemp()

  //wypisanie w monitorze portu szeregowego wilgotności

  Serial.print("Wilgotnosc: ");
  Serial.print(wilgotnosc);
  Serial.print(" %");

  Serial.print(" | ");

  //wypisanie w monitorze portu szeregowego temperatury
  
  Serial.print("Temperatura: ");
  Serial.print(temperatura);
  Serial.println(" °C");
}

Po wgraniu tego programu wyniki z czujnika powinniśmy ujrzeć w monitorze portu szeregowego, tak jak mogliśmy to zobaczyć w wcześniej prezentowanym przykładzie.

Sticky
Możliwość komentowania Czujnik wilgotności i temperatury Si7021 I2C została wyłączona
Adrian Wojtala

Adrian Wojtala

Ma 21 lat. Studiuje informatykę na Uniwersytecie DSW, ukończył technikum o profilu technik-informatyk. Interesuje się programowaniem i w przyszłości ma plan zostać back-end developerem. Swoją przygodę z Arduino rozpoczął podczas praktyk od września 2021 r.

Comments are closed.

Strona korzysta z plików cookies w celu realizacji usługi i zgodnie z Polityką Plików Cookies. Możesz określić warunki przechowywania lub dostępu do plików cookies w Twojej przeglądarce.