Inhaltsverzeichnis:

Raspberry Pi HTS221 Relativer Feuchtigkeits- und Temperatursensor Java Tutorial - Gunook
Raspberry Pi HTS221 Relativer Feuchtigkeits- und Temperatursensor Java Tutorial - Gunook

Video: Raspberry Pi HTS221 Relativer Feuchtigkeits- und Temperatursensor Java Tutorial - Gunook

Video: Raspberry Pi HTS221 Relativer Feuchtigkeits- und Temperatursensor Java Tutorial - Gunook
Video: Arduino Nano SI7021 Humidity & Temperature Sensor Tutorial 2024, Juli
Anonim
Image
Image

HTS221 ist ein ultrakompakter kapazitiver digitaler Sensor für relative Luftfeuchtigkeit und Temperatur. Es enthält ein Sensorelement und einen anwendungsspezifischen integrierten Schaltkreis (ASIC) für gemischte Signale, um die Messinformationen über digitale serielle Schnittstellen bereitzustellen. Integriert mit so vielen Funktionen ist dies einer der am besten geeigneten Sensoren für kritische Feuchtigkeits- und Temperaturmessungen. Hier ist die Demonstration mit einem Java-Code mit Raspberry Pi.

Schritt 1: Was Sie brauchen.

Was du brauchst..!!
Was du brauchst..!!

1. Himbeer-Pi

2. HTS221

3. I²C-Kabel

4. I²C-Shield für Raspberry Pi

5. Ethernet-Kabel

Schritt 2: Anschlüsse:

Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse

Nehmen Sie ein I2C-Schild für Himbeer-Pi und schieben Sie es vorsichtig über die gpio-Pins von Himbeer-Pi.

Verbinden Sie dann das eine Ende des I2C-Kabels mit dem HTS221-Sensor und das andere Ende mit der I2C-Abschirmung.

Verbinden Sie auch das Ethernet-Kabel mit dem Pi oder verwenden Sie ein WiFi-Modul.

Die Anschlüsse sind im Bild oben dargestellt.

Schritt 3: Code:

Code
Code

Der Python-Code für HTS221 kann von unserem Github-Repository-Dcube Store heruntergeladen werden

Hier der Link dazu:

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

Wir haben die pi4j-Bibliothek für Java-Code verwendet, die Schritte zur Installation von pi4j auf Raspberry Pi sind hier beschrieben:

pi4j.com/install.html

Sie können den Code auch von hier kopieren, er wird wie folgt angegeben:

// Wird mit einer frei wählbaren Lizenz vertrieben.

// Verwenden Sie es, wie Sie wollen, gewinnbringend oder kostenlos, sofern es in die Lizenzen der zugehörigen Werke passt.

// HTS221

// Dieser Code wurde entwickelt, um mit dem HTS221_I2CS I2C Mini-Modul zu arbeiten.

com.pi4j.io.i2c. I2CBus importieren;

com.pi4j.io.i2c. I2CDevice importieren;

com.pi4j.io.i2c. I2CFactory importieren;

import java.io. IOException;

public class HTS221{ public static void main(String args) wirft Ausnahme

{

// I2CBus erstellen

I2CBus-Bus = I2CFactory.getInstance(I2CBus. BUS_1);

// I2C-Gerät abrufen, HTS221 I2C-Adresse ist 0x5F(95)

I2CDevice-Gerät = bus.getDevice(0x5F);

// Wählen Sie das durchschnittliche Konfigurationsregister

// Temperaturdurchschnittsproben = 16, Feuchtigkeitsdurchschnittsproben = 32

device.write(0x10, (Byte)0x1B);

// Steuerregister auswählen1

// Einschalten, Blockdatenaktualisierung, Datenrate o/p = 1 Hz

device.write (0x20, (Byte)0x85);

Thread.sleep(500);

// Kalibrierwerte aus dem nichtflüchtigen Speicher des Gerätes lesen

// Feuchtigkeitskalibrierungswerte

byte val = neues Byte[2];

// 1 Byte Daten von Adresse 0x30 (48) lesen

val[0] = (byte)device.read(0x30);

// 1 Byte Daten von Adresse 0x31(49) lesen

val[1] = (byte)device.read(0x31);

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

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

// 1 Byte Daten von Adresse 0x36(54) lesen

val[0] = (byte)device.read(0x36);

// 1 Byte Daten von Adresse 0x37(55) lesen

val[1] = (byte)device.read(0x37);

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

// 1 Byte Daten von Adresse 0x3A (58) lesen

val[0] = (byte)device.read(0x3A);

// 1 Byte Daten von Adresse 0x3B(59) lesen

val[1] = (byte)device.read(0x3B);

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

// Temperaturkalibrierungswerte

// 1 Byte Daten von Adresse 0x32 (50) lesen

int T0 = ((Byte)device.read(0x32) & 0xFF);

// 1 Byte Daten von Adresse 0x33(51) lesen

int T1 = ((Byte)device.read(0x33) & 0xFF);

// 1 Byte Daten von Adresse 0x35 (53) lesen

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

// Konvertieren Sie die Temperaturkalibrierungswerte in 10-Bit

T0 = ((roh & 0x03) * 256) + T0;

T1 = ((roh & 0x0C) * 64) + T1;

// 1 Byte Daten von Adresse 0x3C(60) lesen

val[0] = (byte)device.read(0x3C);

// 1 Byte Daten von Adresse 0x3D(61) lesen

val[1] = (byte)device.read(0x3D);

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

// 1 Byte Daten von Adresse 0x3E(62) lesen

val[0] = (byte)device.read(0x3E);

// 1 Byte Daten von Adresse 0x3F(63) lesen

val[1] = (byte)device.read(0x3F);

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

// 4 Byte Daten lesen

// summe msb, summe lsb, temp msb, temp lsb

Byte Daten = neues Byte[4]; device.read (0x28 | 0x80, Daten, 0, 4);

// Konvertieren Sie die Daten

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

int temp = ((Daten[3] & 0xFF) * 256) + (Daten[2] & 0xFF);

wenn (temp > 32767)

{

Temperatur -= 65536;

}

doppelte Feuchtigkeit = ((1.0 * H1) - (1,0 * H0)) * (1,0 * hum - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0);

doppeltes cTemp = ((T1 - T0) / 8,0) * (Temp - T2) / (T3 - T2) + (T0 / 8,0);

doppeltes fTemp = (cTemp * 1,8) + 32;

// Daten auf Bildschirm ausgeben

System.out.printf("Relative Luftfeuchtigkeit: %.2f %% RH %n", Luftfeuchtigkeit);

System.out.printf("Temperatur in Celsius: %.2f C %n", cTemp);

System.out.printf("Temperatur in Fahrenheit: %.2f F %n", fTemp);

}

}

Schritt 4: Anwendungen:

HTS221 kann in verschiedenen Verbraucherprodukten wie Luftbefeuchtern und Kühlschränken usw. eingesetzt werden. Dieser Sensor findet auch seine Anwendung in einem breiteren Bereich, einschließlich Smart Home Automation, Industrieautomation, Beatmungsgeräte, Asset- und Warenverfolgung.

Empfohlen: