Inhoudsopgave:

Raspberry Pi HTS221 Relatieve vochtigheid en temperatuursensor Java-zelfstudie - Ajarnpa
Raspberry Pi HTS221 Relatieve vochtigheid en temperatuursensor Java-zelfstudie - Ajarnpa

Video: Raspberry Pi HTS221 Relatieve vochtigheid en temperatuursensor Java-zelfstudie - Ajarnpa

Video: Raspberry Pi HTS221 Relatieve vochtigheid en temperatuursensor Java-zelfstudie - Ajarnpa
Video: Raspberry Pi HTS221 Relative Humidity and Temperature Sensor Java Tutorial 2024, November
Anonim
Image
Image

HTS221 is een ultracompacte capacitieve digitale sensor voor relatieve vochtigheid en temperatuur. Het bevat een detectie-element en een mixed signal application specific integrated circuit (ASIC) om de meetinformatie te leveren via digitale seriële interfaces. Geïntegreerd met zoveel functies is dit een van de meest geschikte sensoren voor kritische vochtigheids- en temperatuurmetingen. Hier is de demonstratie met een Java-code met Raspberry Pi.

Stap 1: Wat je nodig hebt.

Wat je nodig hebt..!!
Wat je nodig hebt..!!

1. Raspberry Pi

2. HTS221

3. I²C-kabel

4. I²C-schild voor Raspberry Pi

5. Ethernet-kabel

Stap 2: Aansluitingen:

Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen

Neem een I2C-schild voor Raspberry Pi en duw het voorzichtig over de gpio-pinnen van Raspberry Pi.

Sluit vervolgens het ene uiteinde van de I2C-kabel aan op de HTS221-sensor en het andere uiteinde op de I2C-afscherming.

Sluit ook de Ethernet-kabel aan op de pi of u kunt een WiFi-module gebruiken.

De aansluitingen zijn weergegeven in de afbeelding hierboven.

Stap 3: Coderen:

Code
Code

De python-code voor HTS221 kan worden gedownload van onze github-repository-Dcube Store

Hier is de link voor hetzelfde:

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

We hebben de pi4j-bibliotheek gebruikt voor java-code, de stappen om pi4j op raspberry pi te installeren worden hier beschreven:

pi4j.com/install.html

U kunt de code ook hier kopiëren, deze wordt als volgt gegeven:

// Gedistribueerd met een vrije wilslicentie.

// Gebruik het zoals je wilt, winst of gratis, op voorwaarde dat het past in de licenties van de bijbehorende werken.

// HTS221

// Deze code is ontworpen om te werken met de HTS221_I2CS I2C Mini Module.

com.pi4j.io.i2c. I2CBus importeren;

com.pi4j.io.i2c. I2CDevice importeren;

importeer com.pi4j.io.i2c. I2CFactory;

import java.io. IOException;

public class HTS221{ public static void main(String args) gooit Exception

{

// I2CBus maken

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

// Krijg I2C-apparaat, HTS221 I2C-adres is 0x5F (95)

I2CDevice-apparaat = bus.getDevice (0x5F);

// Selecteer gemiddeld configuratieregister

// Temperatuur gemiddelde monsters = 16, gemiddelde vochtigheid monsters = 32

apparaat.schrijven (0x10, (byte)0x1B);

// Selecteer controleregister1

// Inschakelen, data-update blokkeren, datasnelheid o/p = 1 Hz

apparaat.schrijven (0x20, (byte)0x85);

Draad.slaap(500);

// Lees kalibratiewaarden uit het niet-vluchtige geheugen van het apparaat

// Vochtigheid Kalibratiewaarden

byte val = nieuwe byte[2];

// Lees 1 byte aan gegevens van adres 0x30(48)

val[0] = (byte)apparaat.lezen(0x30);

// Lees 1 byte aan gegevens van adres 0x31(49)

val[1] = (byte)apparaat.lezen(0x31);

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

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

// Lees 1 byte aan gegevens van adres 0x36 (54)

val[0] = (byte)apparaat.lezen(0x36);

// Lees 1 byte aan gegevens van adres 0x37 (55)

val[1] = (byte)apparaat.lezen(0x37);

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

// Lees 1 byte aan gegevens van adres 0x3A (58)

val[0] = (byte)apparaat.lezen(0x3A);

// Lees 1 byte aan gegevens van adres 0x3B(59)

val[1] = (byte)apparaat.lezen(0x3B);

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

// Temperatuur Kalibratiewaarden

// Lees 1 byte aan gegevens van adres 0x32 (50)

int T0 = ((byte)apparaat.lezen (0x32) & 0xFF);

// Lees 1 byte aan gegevens van adres 0x33 (51)

int T1 = ((byte)apparaat.lezen (0x33) & 0xFF);

// Lees 1 byte aan gegevens van adres 0x35 (53)

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

// Converteer de temperatuurkalibratiewaarden naar 10-bits

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

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

// Lees 1 byte aan gegevens van adres 0x3C (60)

val[0] = (byte)apparaat.lezen(0x3C);

// Lees 1 byte aan gegevens van adres 0x3D (61)

val[1] = (byte)apparaat.lezen(0x3D);

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

// Lees 1 byte aan gegevens van adres 0x3E (62)

val[0] = (byte)apparaat.lezen(0x3E);

// Lees 1 byte aan gegevens van adres 0x3F (63)

val[1] = (byte)apparaat.lezen(0x3F);

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

// Lees 4 bytes aan gegevens

// hum msb, hum lsb, temp msb, temp lsb

byte gegevens = nieuwe byte[4]; device.read(0x28 | 0x80, data, 0, 4);

// Converteer de gegevens

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

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

als (temp > 32767)

{

temperatuur -= 65536;

}

dubbele vochtigheid = ((1,0 * H1) - (1,0 * H0)) * (1,0 * brom - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0);

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

dubbele fTemp = (cTemp * 1.8) + 32;

// Gegevens uitvoeren naar scherm

System.out.printf("Relatieve vochtigheid: %.2f %% RH %n", vochtigheid);

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

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

}

}

Stap 4: Toepassingen:

HTS221 kan worden gebruikt in verschillende consumentenproducten zoals luchtbevochtigers en koelkasten enz. Deze sensor vindt ook zijn toepassing in een breder gebied, waaronder slimme domotica, industriële automatisering, beademingsapparatuur, het volgen van activa en goederen.

Aanbevolen: