Spisu treści:

Raspberry Pi HTS221 Czujnik wilgotności względnej i temperatury Samouczek Java: 4 kroki
Raspberry Pi HTS221 Czujnik wilgotności względnej i temperatury Samouczek Java: 4 kroki

Wideo: Raspberry Pi HTS221 Czujnik wilgotności względnej i temperatury Samouczek Java: 4 kroki

Wideo: Raspberry Pi HTS221 Czujnik wilgotności względnej i temperatury Samouczek Java: 4 kroki
Wideo: Raspberry Pi HTS221 Relative Humidity and Temperature Sensor Java Tutorial 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. Oto demonstracja z kodem java przy użyciu Raspberry Pi.

Krok 1: Czego potrzebujesz.

Czego potrzebujesz..!!
Czego potrzebujesz..!!

1. Raspberry Pi

2. HTS221

3. Kabel I²C

4. Osłona I²C dla Raspberry Pi

5. Kabel Ethernet

Krok 2: Połączenia:

Znajomości
Znajomości
Znajomości
Znajomości
Znajomości
Znajomości
Znajomości
Znajomości

Weź nakładkę I2C dla raspberry pi i delikatnie nałóż ją na piny gpio raspberry pi.

Następnie podłącz jeden koniec kabla I2C do czujnika HTS221, a drugi koniec do ekranu I2C.

Podłącz również kabel Ethernet do pi lub możesz użyć modułu WiFi.

Połączenia prezentuje powyższy obrazek.

Krok 3: Kod:

Kod
Kod

Kod Pythona dla HTS221 można pobrać z naszego repozytorium github-Dcube Store

Oto link do tego samego:

github.com/DcubeTechVentures/HTS221/blob/master/Java/HTS221.java

Użyliśmy biblioteki pi4j do kodu java, kroki instalacji pi4j na raspberry pi są opisane tutaj:

pi4j.com/install.html

Możesz również skopiować kod stąd, jest on podany w następujący sposób:

// Rozprowadzane z wolną licencją.

// Używaj go w dowolny sposób, z zyskiem lub za darmo, pod warunkiem, że pasuje do licencji powiązanych z nim dzieł.

// HTS221

// Ten kod jest przeznaczony do pracy z minimodułem HTS221_I2CS I2C.

importuj com.pi4j.io.i2c. I2CBus;

importuj com.pi4j.io.i2c. I2CDurządzenie;

importuj com.pi4j.io.i2c. I2CFabryka;

import java.io. IOException;

public class HTS221{ public static void main(String args) wyrzuca wyjątek

{

// Utwórz magistralę I2CBus

Magistrala I2CBus = I2CFactory.getInstance(I2CBus. BUS_1);

// Pobierz urządzenie I2C, adres HTS221 I2C to 0x5F(95)

Urządzenie I2CDevice = bus.getDevice(0x5F);

// Wybierz średni rejestr konfiguracji

// Średnia temperatura próbek = 16, średnia wilgotność próbek = 32

urządzenie.write(0x10, (bajt)0x1B);

// Wybierz rejestr kontrolny1

// Włączanie, aktualizacja danych bloku, szybkość transmisji danych o/p = 1 Hz

urządzenie.write(0x20, (bajt)0x85);

Wątek.sen(500);

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

// Wartości kalibracji wilgotności

bajt val = nowy bajt[2];

// Odczytaj 1 bajt danych z adresu 0x30(48)

val[0] = (bajt)urządzenie.odczyt(0x30);

// Odczytaj 1 bajt danych z adresu 0x31(49)

val[1] = (bajt)urządzenie.odczyt(0x31);

int H0 = (val[0] & 0xFF) / 2;

int H1 = (val[1] & 0xFF) / 2;

// Odczytaj 1 bajt danych z adresu 0x36(54)

val[0] = (bajt)urządzenie.odczyt(0x36);

// Odczytaj 1 bajt danych z adresu 0x37(55)

val[1] = (bajt)urządzenie.odczyt(0x37);

int H2 = ((wart[1] & 0xFF) * 256) + (wart[0] & 0xFF);

// Odczytaj 1 bajt danych z adresu 0x3A(58)

val[0] = (bajt)urządzenie.odczyt(0x3A);

// Odczytaj 1 bajt danych z adresu 0x3B(59)

val[1] = (bajt)urządzenie.odczyt(0x3B);

int H3 = ((wart[1] & 0xFF) * 256) + (wart[0] & 0xFF);

// Wartości kalibracji temperatury

// Odczytaj 1 bajt danych z adresu 0x32(50)

int T0 = ((bajt)urządzenie.odczyt(0x32) & 0xFF);

// Odczytaj 1 bajt danych z adresu 0x33(51)

int T1 = ((bajt)urządzenie.odczyt(0x33) & 0xFF);

// Odczytaj 1 bajt danych z adresu 0x35(53)

int raw = ((byte)device.read(0x35) & 0x0F);

// Konwertuj wartości kalibracji temperatury na 10-bitowe

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

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

// Odczytaj 1 bajt danych z adresu 0x3C(60)

val[0] = (bajt)urządzenie.odczyt(0x3C);

// Odczytaj 1 bajt danych z adresu 0x3D(61)

val[1] = (bajt)urządzenie.odczyt(0x3D);

int T2 = ((val[1] & 0xFF) * 256) + (val[0] & 0xFF);

// Odczytaj 1 bajt danych z adresu 0x3E(62)

val[0] = (bajt)urządzenie.odczyt(0x3E);

// Odczytaj 1 bajt danych z adresu 0x3F(63)

val[1] = (bajt)urządzenie.odczyt(0x3F);

int T3 = ((wartości[1] i 0xFF) * 256) + (wartości[0] i 0xFF);

// Odczytaj 4 bajty danych

// szum msb, szum lsb, temp msb, temp lsb

bajt dane = nowy bajt[4]; urządzenie.odczyt(0x28 | 0x80, dane, 0, 4);

// Konwertuj dane

int szum = ((data[1] & 0xFF) * 256) + (data[0] & 0xFF);

int temp = ((dane [3] i 0xFF) * 256) + (dane [2] i 0xFF);

jeśli (temp > 32767)

{

temp -= 65536;

}

podwójna wilgotność = ((1,0 * H1) - (1,0 * H0)) * (1,0 * szum - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0);

podwójny cTemp = ((T1 - T0) / 8,0) * (temp - T2) / (T3 - T2) + (T0 / 8.0);

podwójne fTemp = (cTemp * 1,8) + 32;

// Prześlij dane na ekran

System.out.printf("Wilgotność względna: %.2f %% RH %n", wilgotność);

System.out.printf("Temperatura w stopniach Celsjusza: %.2f C %n", cTemp);

System.out.printf("Temperatura w stopniach Fahrenheita: %.2f F %n", fTemp);

}

}

Krok 4: 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: