[PROJEKT] KAmodHTS221 – czujnik temperatury i wilgotności powietrza + KAmduino UNO
KAmodHTS221 to kompaktowy moduł czujnika temperatury i wilgotności powietrza. Został zaprojektowany w oparciu o sensor HTS221 firmy STMicroelectronics. Moduł czujnika wykonuje pomiar temperatury powietrza w zakresie -40…120 °C i wilgotności 0…100% RH. Dokładność pomiarów wynosi odpowiednio ±1°C (0…60°C) / ±0,5°C (15…40°C) i ±6% (0…100% RH) / ±4,5% (20…80% RH). Rozdzielczość przetwornika pomiarowego to 16 bitów, co przenosi się na rozdzielczość pomiarową wynoszącą 0,004% RH/LSB. Sensor HTS221 pozwala na wprowadzenie konfiguracji częstotliwości wykonywanego pomiaru i wynosi ona od 1 do 25 Hz. Dostępne są dwa sposoby komunikacji z czujnikiem, poprzez magistralę I2C oraz SPI.
Moduł KAmodHTS221 został wyposażony w stabilizator liniowy co pozwala na zasilanie go napięciem od 2,5 do 5,5 V lub można bezpośrednio zasilać układ czujnika napięciem 3,3 V. Oprócz stabilizatora, na płytce modułu znajduje się konwerter poziomów logicznych, co pozwala na podłączenie modułu do układów o różnych poziomach napięć magistrali komunikacyjnych.
Moduł KAmodHTS221 posiada 8 padów lutowniczych, do których możemy przylutować dołączone złącza goldpin lub przewody. Złącze +3,3 V służy do bezpośredniego zasilania układu czujnika napięciem 3,3 V. Nie należy do tego pinu podawać większego napięcia niż 3,6 V ponieważ spowoduje to trwałe uszkodzenie układu. Złącze +VIN pozwala na zasilanie modułu napięciem z przedziału 2,5-5,5 V, GND to masa układu. Złącza oznaczone jako SDA, SCL, SDO, CS służą do komunikacji z sensorem HTS221. W zależności od wybranego sposobu komunikacji złącza te zmieniają swoje przeznaczenie, inne dla I2C, a inne dla SPI. Ostatnie wyprowadzenie oznaczone jako DRDY jest wyjściem gotowości danych.
W prezentowanym przykładzie została wykorzystana magistrala I2C oraz moduł KAmduino UNO. Podłączenie modułu do płytki z mikrokontrolerem ogranicza się do podłączenia zasilania oraz dwóch linii magistrali, SCL – wyjście zegarowe, oraz SDA – linia danych. Na płytce modułu znajdują się rezystory 4,7 kΩ podciągające linie SDA i SCL do zasilania układu, stąd nie ma potrzeby dodawania już kolejnych na płytce prototypowej. W przykładzie wykorzystano zasilanie 5 V, które można pobrać bezpośrednio z płytki KAmduino UNO (zdjęcie 2).
Na listingu przedstawiono kod przykładowego programu obsługującego czujnik HTS221. Program wykorzystuje bibliotekę HTS221.h, która odpowiada za obsługę rejestrów czujnika. W procedurze setup() przeprowadzana jest inicjalizacja czujnika do pracy.W pętli głównej programu wykorzystywane są dwie metody, readHumidity i readTemperature. Zwracają one dane typu double, które przechowywane są odpowiednio w zmiennych wilgotnosc i temperatura. Dane odczytane z sensora są wypisywane w terminalu. Opóźnienie 500 ms pozwala na łatwiejsze odczytywanie wyników.
#include <Wire.h> #include <Arduino.h> #include <HTS221.h> void setup() { Wire.begin(); smeHumidity.begin(); Serial.begin(9600); } void loop() { double wilgotnosc = 0; double temperatura = 0; data = smeHumidity.readHumidity(); data1 = smeHumidity.readTemperature(); Serial.print("Wilgotnosc : "); Serial.print(wilgotnosc); Serial.print(" % "); Serial.print(" Temperatura: "); Serial.print(temperatura); Serial.println(" *C"); delay(500); }