Inhoudsopgave:
Video: Raspberry Pi HTS221 Relatieve vochtigheid en temperatuursensor Java-zelfstudie - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
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.
1. Raspberry Pi
2. HTS221
3. I²C-kabel
4. I²C-schild voor Raspberry Pi
5. Ethernet-kabel
Stap 2: 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:
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:
Berekening van vochtigheid, druk en temperatuur met behulp van BME280 en Photon Interfacing: 6 stappen
Berekening van vochtigheid, druk en temperatuur met behulp van BME280 en Photon Interfacing. We komen verschillende projecten tegen die temperatuur-, druk- en vochtigheidsbewaking vereisen. We realiseren ons dus dat deze parameters eigenlijk een cruciale rol spelen bij het hebben van een schatting van de werkefficiëntie van een systeem bij verschillende atmosferische cond
Een kas automatiseren met LoRa! (Deel 1) -- Sensoren (temperatuur, vochtigheid, bodemvocht): 5 stappen
Een kas automatiseren met LoRa! (Deel 1) || Sensoren (Temperatuur, Vochtigheid, Bodemvocht): In dit project laat ik zien hoe ik een kas heb geautomatiseerd. Dat betekent dat ik je laat zien hoe ik de kas heb gebouwd en hoe ik de stroom- en automatiseringselektronica heb aangesloten. Ik zal je ook laten zien hoe je een Arduino-bord programmeert dat L
Meting van temperatuur en vochtigheid met HDC1000 en Arduino Nano: 4 stappen
Meting van temperatuur en vochtigheid met HDC1000 en Arduino Nano: De HDC1000 is een digitale vochtigheidssensor met geïntegreerde temperatuursensor die een uitstekende meetnauwkeurigheid biedt bij een zeer laag stroomverbruik. Het apparaat meet de vochtigheid op basis van een nieuwe capacitieve sensor. De vochtigheids- en temperatuursensoren zijn fa
Meting van temperatuur en vochtigheid met HDC1000 en Raspberry Pi: 4 stappen:
Meting van temperatuur en vochtigheid met HDC1000 en Raspberry Pi: De HDC1000 is een digitale vochtigheidssensor met geïntegreerde temperatuursensor die een uitstekende meetnauwkeurigheid biedt bij een zeer laag vermogen. Het apparaat meet de vochtigheid op basis van een nieuwe capacitieve sensor. De vochtigheids- en temperatuursensoren zijn fa
Meting van vochtigheid en temperatuur met behulp van HTS221 en Particle Photon: 4 stappen
Vocht- en temperatuurmeting met HTS221 en Particle Photon: 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