Spisu treści:

Pomiar wilgotności i temperatury za pomocą HTS221 i Raspberry Pi: 4 kroki
Pomiar wilgotności i temperatury za pomocą HTS221 i Raspberry Pi: 4 kroki

Wideo: Pomiar wilgotności i temperatury za pomocą HTS221 i Raspberry Pi: 4 kroki

Wideo: Pomiar wilgotności i temperatury za pomocą HTS221 i Raspberry Pi: 4 kroki
Wideo: Czujnik temperatury i wilgotnosci AM2301 2024, Lipiec
Anonim
Image
Image

HTS221 to ultrakompaktowy pojemnościowy czujnik cyfrowy do pomiaru wilgotności względnej i temperatury. Zawiera element czujnikowy i układ scalony ASIC (ang. Mixed Signal Integrated Circuit) dostarczający informacje pomiarowe za pośrednictwem cyfrowych interfejsów szeregowych. Zintegrowany z tak wieloma funkcjami, jest jednym z najbardziej odpowiednich czujników do krytycznych pomiarów wilgotności i temperatury.

W tym samouczku zademonstrowano interfejs modułu czujnika HTS221 z raspberry pi oraz zilustrowano jego programowanie w języku python. Do odczytu wartości wilgotności i temperatury użyliśmy raspberry pi z adapterem I2C. Ten adapter I2C sprawia, że połączenie z modułem czujnika jest łatwe i bardziej niezawodne.

Krok 1: Wymagany sprzęt:

Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt

Materiały, których potrzebujemy do realizacji naszego celu, obejmują następujące komponenty sprzętowe:

1. HTS221

2. Raspberry Pi

3. Kabel I2C

4. Tarcza I2C dla malinowego pi

5. Kabel Ethernet

Krok 2: Podłączenie sprzętu:

Podłączenie sprzętu
Podłączenie sprzętu
Podłączenie sprzętu
Podłączenie sprzętu

Sekcja dotycząca podłączania sprzętu zasadniczo wyjaśnia połączenia okablowania wymagane między czujnikiem a raspberry pi. Zapewnienie prawidłowych połączeń jest podstawową koniecznością podczas pracy na dowolnym systemie o pożądanej mocy. Tak więc wymagane połączenia są następujące:

HTS221 będzie działał przez I2C. Oto przykładowy schemat okablowania, pokazujący, jak okablować każdy interfejs czujnika.

Po wyjęciu z pudełka, płyta jest skonfigurowana do interfejsu I2C, dlatego zalecamy korzystanie z tego podłączenia, jeśli jesteś agnostykiem.

Wszystko czego potrzebujesz to cztery przewody! Wymagane są tylko cztery połączenia Vcc, Gnd, SCL i SDA, które są połączone za pomocą kabla I2C.

Połączenia te są pokazane na powyższych zdjęciach.

Krok 3: Kod do pomiaru wilgotności i temperatury:

Kod do pomiaru wilgotności i temperatury
Kod do pomiaru wilgotności i temperatury

Zaletą korzystania z raspberry pi jest to, że zapewnia elastyczność języka programowania, w którym chcesz zaprogramować płytkę w celu połączenia z nią czujnika. Wykorzystując tę zaletę tej płyty, demonstrujemy tutaj jej programowanie w pytonie. Kod Pythona dla HTS221 można pobrać z naszej społeczności github, czyli Control Everything Community.

Oprócz ułatwienia użytkownikom wyjaśniamy również kod tutaj:

Jako pierwszy krok kodowania musisz pobrać bibliotekę smbus w przypadku pythona, ponieważ ta biblioteka obsługuje funkcje używane w kodzie. Aby pobrać bibliotekę, możesz odwiedzić poniższy link:

pypi.python.org/pypi/smbus-cffi/0.5.1

Możesz również skopiować działający kod Pythona dla tego czujnika:

importuj smbus

czas importu

# Uzyskaj magistralę I2C

autobus = smbus. SMBus(1)

# Adres HTS221, 0x5F(95)

# Wybierz średni rejestr konfiguracji, 0x10(16)

# 0x1B(27) Średnia temperatura próbek = 256, Średnia wilgotność próbek = 512

bus.write_byte_data(0x5F, 0x10, 0x1B)

# Adres HTS221, 0x5F(95)

# Wybierz rejestr kontrolny1, 0x20(32)

# 0x85(133) Zasilanie włączone, ciągła aktualizacja, szybkość transmisji danych = 1 Hz

bus.write_byte_data(0x5F, 0x20, 0x85)

czas.sen(0.5)

# adres HTS221, 0x5F(95)

# Odczyt wartości kalibracji z nieulotnej pamięci urządzenia

# Wartości kalibracji wilgotności

# Odczytaj dane z powrotem z 0x30(48), 1 bajt

val = magistrala.odczyt_bajtów_danych (0x5F, 0x30)

H0 = wartość / 2

# Odczytaj dane z powrotem z 0x31(49), 1 bajt

val = magistrala.odczyt_bajtów_danych (0x5F, 0x31)

H1 = wartość /2

# Odczytaj dane z powrotem z 0x36(54), 2 bajty

val0 = magistrala.odczyt_bajtów_danych (0x5F, 0x36)

val1 = magistrala.odczyt_bajtów_danych (0x5F, 0x37)

H2 = ((wart1 i 0xFF) * 256) + (wart0 i 0xFF)

# Odczytaj dane z powrotem z 0x3A(58), 2 bajty

val0 = magistrala.odczyt_bajtu_danych (0x5F, 0x3A)

val1 = bus.read_byte_data(0x5F, 0x3B)

H3 = ((wart1 i 0xFF) * 256) + (wart0 i 0xFF)

# Wartości kalibracji temperatury

# Odczytaj dane z powrotem z 0x32(50), 1 bajt

T0 = magistrala.odczyt_bajtów_danych (0x5F, 0x32)

T0 = (T0 i 0xFF)

# Odczytaj dane z powrotem z 0x32(51), 1 bajt

T1 = magistrala.odczyt_bajtów_danych (0x5F, 0x33)

T1 = (T1 i 0xFF)

# Odczytaj dane z powrotem z 0x35(53), 1 bajt

surowy = magistrala.odczyt_bajtów_danych (0x5F, 0x35)

surowy = (surowy i 0x0F)

# Konwertuj wartości kalibracji temperatury na 10 bitów

T0 = ((surowe i 0x03) * 256) + T0

T1 = ((surowy i 0x0C) * 64) + T1

# Odczytaj dane z powrotem z 0x3C(60), 2 bajty

val0 = magistrala.odczyt_bajtu_danych (0x5F, 0x3C)

val1 = bus.read_byte_data(0x5F, 0x3D)

T2 = ((wart1 i 0xFF) * 256) + (wart0 i 0xFF)

# Odczytaj dane z powrotem z 0x3E(62), 2 bajty

val0 = magistrala.odczyt_bajtów_danych (0x5F, 0x3E)

val1 = magistrala.odczyt_bajtów_danych (0x5F, 0x3F)

T3 = ((wart1 i 0xFF) * 256) + (wart0 i 0xFF)

# Odczytaj dane z 0x28(40) za pomocą rejestru poleceń 0x80(128), 4 bajty

# wilgotność msb, wilgotność lsb, temp msb, temp lsb

dane = bus.read_i2c_block_data(0x5F, 0x28 | 0x80, 4)

# Konwertuj dane

wilgotność = (dane[1] * 256) + dane[0]

wilgotność = ((1,0 * H1) - (1,0 * H0)) * (1,0 * wilgotność - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0)

temp = (dane [3] * 256) + dane [2]

jeśli temp > 32767:

temp. -= 65536

cTemp = ((T1 - T0) / 8.0) * (temp - T2) / (T3 - T2) + (T0 / 8.0)

fTemp = (cTemp * 1,8) + 32

# Dane wyjściowe na ekran

print "Wilgotność względna: %.2f %%" %humidity

print "Temperatura w stopniach Celsjusza: %.2f C" %cTemp

print "Temperatura w stopniach Fahrenheita: %.2f F" %fTemp

Wspomniana poniżej część kodu zawiera biblioteki wymagane do poprawnego wykonania kodów Pythona.

importuj smbus

czas importu

Kod można wykonać, wpisując w wierszu polecenia poniższe polecenie.

$> Python HTS221.py

Wyjście czujnika pokazano również na powyższym obrazku w celach informacyjnych dla użytkownika.

Krok 4: Aplikacje:

Aplikacje
Aplikacje

HTS221 może być stosowany w różnych produktach konsumenckich, takich jak nawilżacze powietrza, lodówki itp. Ten czujnik znajduje również zastosowanie w szerszej dziedzinie, w tym w automatyce inteligentnego domu, automatyce przemysłowej, sprzęcie do oddychania, śledzeniu zasobów i towarów.

Zalecana: