Sommario:
- Passaggio 1: ciò di cui hai bisogno.
- Passaggio 2: connessioni:
- Passaggio 3: codice:
- Passaggio 4: applicazioni:
Video: Esercitazione Java sul sensore di umidità relativa e temperatura Raspberry Pi HTS221: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
HTS221 è un sensore digitale capacitivo ultra compatto per umidità relativa e temperatura. Include un elemento di rilevamento e un circuito integrato specifico per applicazioni a segnale misto (ASIC) per fornire le informazioni di misurazione tramite interfacce seriali digitali. Integrato con così tante funzioni, questo è uno dei sensori più appropriati per misurazioni critiche di umidità e temperatura. Ecco la dimostrazione con un codice java utilizzando Raspberry Pi.
Passaggio 1: ciò di cui hai bisogno.
1. Lampone Pi
2. HTS221
3. Cavo I²C
4. Scudo I²C per Raspberry Pi
5. Cavo Ethernet
Passaggio 2: connessioni:
Prendi uno scudo I2C per lampone pi e spingilo delicatamente sui pin gpio di lampone pi.
Quindi collegare un'estremità del cavo I2C al sensore HTS221 e l'altra estremità allo schermo I2C.
Collega anche il cavo Ethernet al pi oppure puoi utilizzare un modulo WiFi.
I collegamenti sono mostrati nell'immagine sopra.
Passaggio 3: codice:
Il codice Python per HTS221 può essere scaricato dal nostro repository github-Dcube Store
Ecco il link per lo stesso:
github.com/DcubeTechVentures/HTS221/blob/master/Java/HTS221.java
Abbiamo usato la libreria pi4j per il codice java, i passaggi per installare pi4j su raspberry pi sono descritti qui:
pi4j.com/install.html
Puoi anche copiare il codice da qui, è fornito come segue:
// Distribuito con una licenza libera.
// Usalo come vuoi, a scopo di lucro o gratuito, a condizione che rientri nelle licenze delle opere associate.
// HTS221
// Questo codice è progettato per funzionare con il Mini Modulo HTS221_I2CS I2C.
import com.pi4j.io.i2c. I2CBus;
import com.pi4j.io.i2c. I2CDevice;
import com.pi4j.io.i2c. I2CFactory;
import java.io. IOException;
public class HTS221{ public static void main(String args) genera un'eccezione
{
// Crea I2CBus
I2CBus bus = I2CFactory.getInstance(I2CBus. BUS_1);
// Ottieni il dispositivo I2C, l'indirizzo I2C di HTS221 è 0x5F(95)
I2CDevice device = bus.getDevice(0x5F);
// Seleziona il registro di configurazione medio
// Campioni medi di temperatura = 16, campioni medi di umidità = 32
device.write(0x10, (byte)0x1B);
// Seleziona il registro di controllo1
// Accensione, blocco aggiornamento dati, velocità dati o/p = 1 Hz
device.write(0x20, (byte)0x85);
Thread.sleep(500);
// Legge i valori di calibrazione dalla memoria non volatile del dispositivo
// Valori di calibrazione dell'umidità
byte val = nuovo byte[2];
// Legge 1 byte di dati dall'indirizzo 0x30(48)
val[0] = (byte)device.read(0x30);
// Legge 1 byte di dati dall'indirizzo 0x31(49)
val[1] = (byte)device.read(0x31);
int H0 = (val[0] & 0xFF) / 2;
int H1 = (val[1] & 0xFF) / 2;
// Legge 1 byte di dati dall'indirizzo 0x36(54)
val[0] = (byte)device.read(0x36);
// Legge 1 byte di dati dall'indirizzo 0x37(55)
val[1] = (byte)device.read(0x37);
int H2 = ((val[1] & 0xFF) * 256) + (val[0] & 0xFF);
// Legge 1 byte di dati dall'indirizzo 0x3A(58)
val[0] = (byte)device.read(0x3A);
// Legge 1 byte di dati dall'indirizzo 0x3B(59)
val[1] = (byte)device.read(0x3B);
int H3 = ((val[1] & 0xFF) * 256) + (val[0] & 0xFF);
// Valori di calibrazione della temperatura
// Legge 1 byte di dati dall'indirizzo 0x32(50)
int T0 = ((byte)device.read(0x32) & 0xFF);
// Legge 1 byte di dati dall'indirizzo 0x33(51)
int T1 = ((byte)device.read(0x33) & 0xFF);
// Legge 1 byte di dati dall'indirizzo 0x35(53)
int raw = ((byte)device.read(0x35) & 0x0F);
// Converti i valori di calibrazione della temperatura a 10 bit
T0 = ((grezzo & 0x03) * 256) + T0;
T1 = ((grezzo & 0x0C) * 64) + T1;
// Legge 1 byte di dati dall'indirizzo 0x3C(60)
val[0] = (byte)device.read(0x3C);
// Legge 1 byte di dati dall'indirizzo 0x3D(61)
val[1] = (byte)device.read(0x3D);
int T2 = ((val[1] & 0xFF) * 256) + (val[0] & 0xFF);
// Legge 1 byte di dati dall'indirizzo 0x3E(62)
val[0] = (byte)device.read(0x3E);
// Legge 1 byte di dati dall'indirizzo 0x3F(63)
val[1] = (byte)device.read(0x3F);
int T3 = ((val[1] & 0xFF) * 256) + (val[0] & 0xFF);
// Legge 4 byte di dati
// ronzio msb, ronzio lsb, temp msb, temp lsb
byte dati = nuovo byte[4]; device.read(0x28 | 0x80, data, 0, 4);
// Converti i dati
int ronzio = ((data[1] & 0xFF) * 256) + (data[0] & 0xFF);
int temp = ((data[3] & 0xFF) * 256) + (data[2] & 0xFF);
if(temp > 32767)
{
temperatura -= 65536;
}
doppia umidità = ((1.0 * H1) - (1.0 * H0)) * (1.0 * ronzio - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);
doppia cTemp = ((T1 - T0) / 8.0) * (temp - T2) / (T3 - T2) + (T0 / 8.0);
doppia fTemp = (cTemp * 1.8) + 32;
// Invia i dati allo schermo
System.out.printf("Umidità relativa: %.2f %% RH %n", umidità);
System.out.printf("Temperatura in gradi Celsius: %.2f C %n", cTemp);
System.out.printf("Temperatura in Fahrenheit: %.2f F %n", fTemp);
}
}
Passaggio 4: applicazioni:
HTS221 può essere impiegato in vari prodotti di consumo come umidificatori d'aria e frigoriferi, ecc. Questo sensore trova anche la sua applicazione in un'arena più ampia tra cui l'automazione domestica intelligente, l'automazione industriale, le apparecchiature respiratorie, il monitoraggio di beni e beni.
Consigliato:
Arduino Nano - Tutorial del sensore di umidità relativa e temperatura HTS221: 4 passaggi
Arduino Nano - Tutorial sensore di umidità relativa e temperatura HTS221: HTS221 è un sensore digitale capacitivo ultra compatto per umidità relativa e temperatura. Include un elemento di rilevamento e un circuito integrato specifico per l'applicazione del segnale misto (ASIC) per fornire le informazioni di misurazione tramite seriale digitale
Esercitazione Java sul sensore di temperatura Raspberry Pi MCP9803: 4 passaggi
Esercitazione Java sul sensore di temperatura Raspberry Pi MCP9803: MCP9803 è un sensore di temperatura ad alta precisione a 2 fili. Sono dotati di registri programmabili dall'utente che facilitano le applicazioni di rilevamento della temperatura. Questo sensore è adatto per sistemi di monitoraggio della temperatura multizona altamente sofisticati. Qui
Esercitazione Java sul sensore di temperatura Raspberry Pi MCP9805: 4 passaggi
Esercitazione Java sul sensore di temperatura Raspberry Pi MCP9805: MCP9805 è un sensore di temperatura digitale con modulo di memoria. È integrato con registri programmabili dall'utente che forniscono flessibilità per le applicazioni di rilevamento della temperatura. Questo sensore è progettato per essere incorporato nel modulo di memoria della piattaforma mobile tem
Esercitazione Java sul sensore di temperatura Raspberry Pi TMP112: 4 passaggi
Esercitazione Java sul sensore di temperatura Raspberry Pi TMP112: modulo I2C MINI del sensore di temperatura digitale TMP112 ad alta precisione, bassa potenza. Il TMP112 è ideale per la misurazione della temperatura estesa. Questo dispositivo offre una precisione di ±0,5°C senza richiedere calibrazione o condizionamento del segnale di componenti esterni
Esercitazione Java sul sensore di pressione Raspberry Pi CPS120: 4 passaggi
Esercitazione Java sul sensore di pressione Raspberry Pi CPS120: CPS120 è un sensore di pressione assoluta capacitivo di alta qualità ea basso costo con uscita completamente compensata. Consuma molto meno energia e comprende un sensore microelettromeccanico (MEMS) ultra piccolo per la misurazione della pressione. Un sigma-delta basato