Innehållsförteckning:
Video: Raspberry Pi HTS221 Relativ fukt- och temperatursensor Java Handledning: 4 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
HTS221 är en ultrakompakt kapacitiv digital sensor för relativ luftfuktighet och temperatur. Den innehåller ett avkänningselement och en blandad signalapplikationsspecifik integrerad krets (ASIC) för att tillhandahålla mätinformation via digitala seriella gränssnitt. Integrerad med så många funktioner är detta en av de mest lämpliga sensorerna för kritisk fukt- och temperaturmätning. Här är demonstrationen med en Java -kod med Raspberry Pi.
Steg 1: Vad du behöver.. !
1. Hallon Pi
2. HTS221
3. I²C -kabel
4. I²C -sköld för Raspberry Pi
5. Ethernet -kabel
Steg 2: Anslutningar:
Ta en I2C -sköld för hallonpi och tryck den försiktigt över gpio -stiften på hallonpi.
Anslut sedan den ena änden av I2C -kabeln till HTS221 -sensorn och den andra änden till I2C -skärmen.
Anslut också Ethernet -kabeln till pi eller så kan du använda en WiFi -modul.
Anslutningar visas på bilden ovan.
Steg 3: Kod:
Pythonkoden för HTS221 kan laddas ner från vårt github-förråd-Dcube Store
Här är länken till samma:
github.com/DcubeTechVentures/HTS221/blob/master/Java/HTS221.java
Vi har använt pi4j -biblioteket för java -kod, stegen för att installera pi4j på hallon pi beskrivs här:
pi4j.com/install.html
Du kan också kopiera koden härifrån, den ges enligt följande:
// Distribueras med en fri vilja licens.
// Använd den hur du vill, vinst eller gratis, förutsatt att den passar i licensen för dess associerade verk.
// HTS221
// Denna kod är utformad för att fungera med HTS221_I2CS I2C Mini Module.
importera com.pi4j.io.i2c. I2CBus;
importera com.pi4j.io.i2c. I2CDenhet;
importera com.pi4j.io.i2c. I2CFactory;
importera java.io. IOException;
public class HTS221 {public static void main (String args ) kastar undantag
{
// Skapa I2CBus
I2CBus -buss = I2CFactory.getInstance (I2CBus. BUS_1);
// Skaffa I2C -enhet, HTS221 I2C -adress är 0x5F (95)
I2CDevice -enhet = bus.getDevice (0x5F);
// Välj genomsnittligt konfigurationsregister
// Temperatur genomsnittliga prover = 16, fuktmedelsprover = 32
device.write (0x10, (byte) 0x1B);
// Välj kontrollregister1
// Slå på, uppdatera blockdata, datahastighet o/p = 1 Hz
device.write (0x20, (byte) 0x85);
Tråd. Sover (500);
// Läs kalibreringsvärden från enhetens icke-flyktiga minne
// Kalibreringsvärden för luftfuktighet
byte val = ny byte [2];
// Läs 1 byte data från adressen 0x30 (48)
val [0] = (byte) device.read (0x30);
// Läs 1 byte data från adressen 0x31 (49)
val [1] = (byte) device.read (0x31);
int H0 = (val [0] & 0xFF) / 2;
int H1 = (val [1] & 0xFF) / 2;
// Läs 1 byte data från adressen 0x36 (54)
val [0] = (byte) device.read (0x36);
// Läs 1 byte data från adressen 0x37 (55)
val [1] = (byte) device.read (0x37);
int H2 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);
// Läs 1 byte data från adressen 0x3A (58)
val [0] = (byte) device.read (0x3A);
// Läs 1 byte data från adressen 0x3B (59)
val [1] = (byte) device.read (0x3B);
int H3 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);
// Temperaturkalibreringsvärden
// Läs 1 byte data från adressen 0x32 (50)
int T0 = ((byte) device.read (0x32) & 0xFF);
// Läs 1 byte data från adressen 0x33 (51)
int T1 = ((byte) device.read (0x33) & 0xFF);
// Läs 1 byte data från adressen 0x35 (53)
int raw = ((byte) device.read (0x35) & 0x0F);
// Konvertera temperaturkalibreringsvärdena till 10-bitar
T0 = ((rå & 0x03) * 256) + T0;
T1 = ((rå & 0x0C) * 64) + T1;
// Läs 1 byte data från adressen 0x3C (60)
val [0] = (byte) device.read (0x3C);
// Läs 1 byte data från adressen 0x3D (61)
val [1] = (byte) device.read (0x3D);
int T2 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);
// Läs 1 byte data från adressen 0x3E (62)
val [0] = (byte) device.read (0x3E);
// Läs 1 byte data från adressen 0x3F (63)
val [1] = (byte) device.read (0x3F);
int T3 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);
// Läs 4 byte med data
// hum msb, hum lsb, temp msb, temp lsb
byte data = ny byte [4]; device.read (0x28 | 0x80, data, 0, 4);
// Konvertera data
int hum = ((data [1] & 0xFF) * 256) + (data [0] & 0xFF);
int temp = ((data [3] & 0xFF) * 256) + (data [2] & 0xFF);
om (temp> 32767)
{
temp -= 65536;
}
dubbel luftfuktighet = ((1,0 * H1) - (1,0 * H0)) * (1,0 * hum - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0);
dubbel cTemp = ((T1 - T0) / 8.0) * (temp - T2) / (T3 - T2) + (T0 / 8.0);
dubbel fTemp = (cTemp * 1,8) + 32;
// Mata ut data till skärmen
System.out.printf ("Relativ luftfuktighet: %.2f %% RH %n", fuktighet);
System.out.printf ("Temperatur i Celsius: %.2f C %n", cTemp);
System.out.printf ("Temperatur i Fahrenheit: %.2f F %n", fTemp);
}
}
Steg 4: Ansökningar:
HTS221 kan användas i olika konsumentprodukter som luftfuktare och kylskåp etc. Denna sensor hittar också sin tillämpning på en bredare arena, inklusive smart hemautomation, industriell automatisering, andningsutrustning, tillgångs- och varuspårning.
Rekommenderad:
Raspberry Pi MCP9803 Temperatursensor Java Handledning: 4 steg
Raspberry Pi MCP9803 Temperatursensor Java Handledning: MCP9803 är en 2-trådig temperatursensor med hög noggrannhet. De är förkroppsligade med användarprogrammerbara register som underlättar temperaturavkänningstillämpningar. Denna sensor är lämplig för mycket sofistikerade temperaturövervakningssystem med flera zoner. Här
Raspberry Pi MCP9805 Temperatursensor Java Handledning: 4 steg
Raspberry Pi MCP9805 Temperatursensor Java Handledning: MCP9805 är en minnesmodul digital temperatursensor. Det är integrerat med användarprogrammerbara register som ger flexibilitet för temperaturavkännande applikationer. Denna sensor är utformad för att integreras i mobilplattformens minnesmodul
Raspberry Pi - TMP100 Temperatursensor Java Handledning: 4 steg
Raspberry Pi-TMP100 Temperatursensor Java Handledning: TMP100 Hög noggrannhet, låg effekt, digital temperatursensor I2C MINI-modul. TMP100 är idealisk för utökad temperaturmätning. Denna enhet erbjuder en noggrannhet på ± 1 ° C utan att kräva kalibrering eller extern komponentsignalkonditionering. Han
Raspberry Pi TMP112 Temperatursensor Java Handledning: 4 steg
Raspberry Pi TMP112 Temperatursensor Java Handledning: TMP112 Hög noggrannhet, låg effekt, digital temperatursensor I2C MINI-modul. TMP112 är idealisk för utökad temperaturmätning. Denna enhet erbjuder en noggrannhet på ± 0,5 ° C utan att kräva kalibrering eller extern komponentsignalkonditionering.
Raspberry Pi - TCN75A Temperatursensor Java Handledning: 4 steg
Raspberry Pi-TCN75A Temperatursensor Java Handledning: TCN75A är en tvåtrådig seriell temperatursensor med temperatur-till-digital-omvandlare. Det är integrerat med användarprogrammerbara register som ger flexibilitet för temperaturavkännande applikationer. Registerinställningarna tillåter användare