Obsah:

Raspberry Pi HTS221 Senzor relativní vlhkosti a teploty Java Výukový program: 4 kroky
Raspberry Pi HTS221 Senzor relativní vlhkosti a teploty Java Výukový program: 4 kroky

Video: Raspberry Pi HTS221 Senzor relativní vlhkosti a teploty Java Výukový program: 4 kroky

Video: Raspberry Pi HTS221 Senzor relativní vlhkosti a teploty Java Výukový program: 4 kroky
Video: Raspberry Pi HTS221 Relative Humidity and Temperature Sensor Java Tutorial 2024, Červenec
Anonim
Image
Image

HTS221 je ultra kompaktní kapacitní digitální senzor pro relativní vlhkost a teplotu. Obsahuje snímací prvek a integrovaný obvod specifický pro smíšený signál (ASIC), který poskytuje informace o měření prostřednictvím digitálních sériových rozhraní. Integrovaný s tolika funkcemi je jedním z nejvhodnějších senzorů pro kritická měření vlhkosti a teploty. Zde je ukázka s kódem Java pomocí Raspberry Pi.

Krok 1: Co potřebujete..

Co potřebuješ..!!
Co potřebuješ..!!

1. Raspberry Pi

2. HTS221

3. I²C kabel

4. I²C štít pro Raspberry Pi

5. Ethernetový kabel

Krok 2: Připojení:

Připojení
Připojení
Připojení
Připojení
Připojení
Připojení
Připojení
Připojení

Vezměte I2C štít pro malinový pi a jemně jej zatlačte přes gpio piny malinového pi.

Poté připojte jeden konec kabelu I2C k senzoru HTS221 a druhý konec ke stínění I2C.

Připojte také ethernetový kabel k pí nebo můžete použít modul WiFi.

Připojení jsou znázorněna na obrázku výše.

Krok 3: Kód:

Kód
Kód

Pythonový kód pro HTS221 lze stáhnout z našeho úložiště github-Dcube Store

Zde je odkaz na totéž:

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

Pro java kód jsme použili knihovnu pi4j, kroky k instalaci pi4j na raspberry pi jsou popsány zde:

pi4j.com/install.html

Odtud můžete také zkopírovat kód, který je uveden následovně:

// Distribuováno s licencí svobodné vůle.

// Používejte jej jakýmkoli způsobem, ať už ziskem nebo zdarma, za předpokladu, že se vejde do licencí souvisejících děl.

// HTS221

// Tento kód je navržen tak, aby fungoval s mini modulem HTS221_I2CS I2C.

importovat com.pi4j.io.i2c. I2CBus;

importovat com.pi4j.io.i2c. I2CDevice;

importovat com.pi4j.io.i2c. I2CFactory;

import java.io. IOException;

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

{

// Vytvořte I2CBus

Sběrnice I2CBus = I2CFactory.getInstance (I2CBus. BUS_1);

// Získejte zařízení I2C, adresa I2C HTS221 je 0x5F (95)

I2CDevice zařízení = bus.getDevice (0x5F);

// Vyberte průměrný konfigurační registr

// Průměrné teplotní vzorky = 16, průměrné vlhkostní vzorky = 32

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

// Vyberte řídicí registr1

// Zapnutí, aktualizace blokových dat, datový tok o/p = 1 Hz

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

Thread.sleep (500);

// Přečtěte hodnoty kalibrace z energeticky nezávislé paměti zařízení

// Kalibrační hodnoty vlhkosti

byte val = nový byte [2];

// Přečíst 1 byte dat z adresy 0x30 (48)

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

// Přečíst 1 byte dat z adresy 0x31 (49)

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

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

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

// Přečíst 1 byte dat z adresy 0x36 (54)

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

// Přečíst 1 byte dat z adresy 0x37 (55)

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

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

// Přečíst 1 byte dat z adresy 0x3A (58)

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

// Přečíst 1 byte dat z adresy 0x3B (59)

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

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

// Hodnoty kalibrace teploty

// Přečíst 1 byte dat z adresy 0x32 (50)

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

// Přečíst 1 byte dat z adresy 0x33 (51)

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

// Přečíst 1 byte dat z adresy 0x35 (53)

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

// Převeďte kalibrační hodnoty teploty na 10 bitů

T0 = ((surový & 0x03) * 256) + T0;

T1 = ((surový & 0x0C) * 64) + T1;

// Přečíst 1 byte dat z adresy 0x3C (60)

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

// Přečíst 1 byte dat z adresy 0x3D (61)

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

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

// Přečíst 1 byte dat z adresy 0x3E (62)

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

// Přečíst 1 byte dat z adresy 0x3F (63)

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

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

// Přečíst 4 bajty dat

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

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

// Převod dat

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

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

if (teplota> 32767)

{

teplota -= 65536;

}

dvojnásobná vlhkost = ((1,0 * H1) - (1,0 * H0)) * (1,0 * hučení - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0);

dvojnásobek cTemp = ((T1 - T0) / 8,0) * (teplota - T2) / (T3 - T2) + (T0 / 8,0);

dvojnásobek fTemp = (cTemp * 1,8) + 32;

// Výstup dat na obrazovku

System.out.printf ("Relativní vlhkost: %.2f %% RH %n", vlhkost);

System.out.printf ("Teplota ve stupních Celsia: %.2f C %n", cTemp);

System.out.printf ("Teplota ve stupních Fahrenheita: %.2f F %n", fTemp);

}

}

Krok 4: Aplikace:

HTS221 lze použít v různých spotřebních výrobcích, jako jsou zvlhčovače vzduchu a chladničky atd. Tento senzor také nachází své uplatnění v širších oblastech, včetně inteligentní domácí automatizace, průmyslové automatizace, respiračních zařízení, sledování majetku a zboží.

Doporučuje: