Πίνακας περιεχομένων:

Raspberry Pi HTS221 Relative Humidity and Temperature Sensor Java Tutorial: 4 βήματα
Raspberry Pi HTS221 Relative Humidity and Temperature Sensor Java Tutorial: 4 βήματα

Βίντεο: Raspberry Pi HTS221 Relative Humidity and Temperature Sensor Java Tutorial: 4 βήματα

Βίντεο: Raspberry Pi HTS221 Relative Humidity and Temperature Sensor Java Tutorial: 4 βήματα
Βίντεο: Raspberry Pi HTS221 Relative Humidity and Temperature Sensor Java Tutorial 2024, Νοέμβριος
Anonim
Image
Image

Το HTS221 είναι ένας εξαιρετικά συμπαγής χωρητικός ψηφιακός αισθητήρας για σχετική υγρασία και θερμοκρασία. Περιλαμβάνει ένα στοιχείο ανίχνευσης και ένα ολοκληρωμένο κύκλωμα ειδικής εφαρμογής μικτού σήματος (ASIC) για την παροχή των πληροφοριών μέτρησης μέσω ψηφιακών σειριακών διεπαφών. Ενσωματωμένο με τόσα πολλά χαρακτηριστικά, αυτός είναι ένας από τους πιο κατάλληλους αισθητήρες για κρίσιμες μετρήσεις υγρασίας και θερμοκρασίας. Εδώ είναι η επίδειξη με έναν κώδικα java χρησιμοποιώντας το Raspberry Pi.

Βήμα 1: Αυτό που χρειάζεστε..

Ο, τι χρειάζεσαι..!!
Ο, τι χρειάζεσαι..!!

1. Raspberry Pi

2. HTS221

3. Καλώδιο I²C

4. I²C Shield για το Raspberry Pi

5. Καλώδιο Ethernet

Βήμα 2: Συνδέσεις:

Συνδέσεις
Συνδέσεις
Συνδέσεις
Συνδέσεις
Συνδέσεις
Συνδέσεις
Συνδέσεις
Συνδέσεις

Πάρτε μια ασπίδα I2C για raspberry pi και σπρώξτε την απαλά πάνω από τις καρφίτσες gpio του raspberry pi.

Στη συνέχεια, συνδέστε το ένα άκρο του καλωδίου I2C στον αισθητήρα HTS221 και το άλλο άκρο στην ασπίδα I2C.

Συνδέστε επίσης το καλώδιο Ethernet στο pi ή μπορείτε να χρησιμοποιήσετε μια μονάδα WiFi.

Οι συνδέσεις φαίνονται στην παραπάνω εικόνα.

Βήμα 3: Κωδικός:

Κώδικας
Κώδικας

Μπορείτε να κατεβάσετε τον κώδικα python για το HTS221 από το αποθετήριο github-Dcube Store

Εδώ είναι ο σύνδεσμος για το ίδιο:

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

Χρησιμοποιήσαμε τη βιβλιοθήκη pi4j για κώδικα java, τα βήματα για την εγκατάσταση του pi4j στο raspberry pi περιγράφονται εδώ:

pi4j.com/install.html

Μπορείτε επίσης να αντιγράψετε τον κώδικα από εδώ, δίνεται ως εξής:

// Διανέμεται με άδεια ελεύθερης βούλησης.

// Χρησιμοποιήστε το με όποιον τρόπο θέλετε, κερδοφόρο ή δωρεάν, υπό την προϋπόθεση ότι ταιριάζει στις άδειες των σχετικών έργων του.

// HTS221

// Αυτός ο κώδικας έχει σχεδιαστεί για να λειτουργεί με το Mini Module HTS221_I2CS I2C.

εισαγωγή com.pi4j.io.i2c. I2CBus;

εισαγωγή com.pi4j.io.i2c. I2CDevice;

εισαγωγή com.pi4j.io.i2c. I2CFactory?

εισαγωγή java.io. IOException;

public class HTS221 {public static void main (String args ) ρίχνει Εξαίρεση

{

// Δημιουργία I2CBus

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

// Λήψη συσκευής I2C, η διεύθυνση HTS221 I2C είναι 0x5F (95)

I2CDevice device = bus.getDevice (0x5F);

// Επιλέξτε μέσο καταχωρητή διαμόρφωσης

// Δείγματα μέσης θερμοκρασίας = 16, δείγματα μέσης υγρασίας = 32

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

// Επιλέξτε καταχωρητή ελέγχου1

// Ενεργοποίηση, αποκλεισμός ενημέρωσης δεδομένων, ρυθμός δεδομένων o/p = 1 Hz

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

Thread.sleep (500);

// Διαβάστε τιμές βαθμονόμησης από τη μη πτητική μνήμη της συσκευής

// Τιμές βαθμονόμησης υγρασίας

byte val = νέο byte [2];

// Διαβάστε 1 byte δεδομένων από τη διεύθυνση 0x30 (48)

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

// Διαβάστε 1 byte δεδομένων από τη διεύθυνση 0x31 (49)

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

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

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

// Διαβάστε 1 byte δεδομένων από τη διεύθυνση 0x36 (54)

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

// Διαβάστε 1 byte δεδομένων από τη διεύθυνση 0x37 (55)

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

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

// Διαβάστε 1 byte δεδομένων από τη διεύθυνση 0x3A (58)

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

// Διαβάστε 1 byte δεδομένων από τη διεύθυνση 0x3B (59)

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

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

// Τιμές βαθμονόμησης θερμοκρασίας

// Διαβάστε 1 byte δεδομένων από τη διεύθυνση 0x32 (50)

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

// Διαβάστε 1 byte δεδομένων από τη διεύθυνση 0x33 (51)

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

// Διαβάστε 1 byte δεδομένων από τη διεύθυνση 0x35 (53)

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

// Μετατρέψτε τις τιμές βαθμονόμησης θερμοκρασίας σε 10-bit

T0 = ((ακατέργαστο & 0x03) * 256) + T0;

T1 = ((ακατέργαστο & 0x0C) * 64) + T1;

// Διαβάστε 1 byte δεδομένων από τη διεύθυνση 0x3C (60)

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

// Διαβάστε 1 byte δεδομένων από τη διεύθυνση 0x3D (61)

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

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

// Διαβάστε 1 byte δεδομένων από τη διεύθυνση 0x3E (62)

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

// Διαβάστε 1 byte δεδομένων από τη διεύθυνση 0x3F (63)

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

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

// Διαβάστε 4 byte δεδομένων

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

byte data = new byte [4]; device.read (0x28 | 0x80, δεδομένα, 0, 4);

// Μετατρέψτε τα δεδομένα

int hum = ((δεδομένα [1] & 0xFF) * 256) + (δεδομένα [0] & 0xFF);

int temp = ((δεδομένα [3] & 0xFF) * 256) + (δεδομένα [2] & 0xFF);

εάν (θερμοκρασία> 32767)

{

θερμοκρασία -= 65536;

}

διπλή υγρασία = ((1,0 * Η1) - (1,0 * Η0)) * (1,0 * βουητό - 1,0 * Η2) / (1,0 * Η3 - 1,0 * Η2) + (1,0 * Η0) ·

διπλό cTemp = ((T1 - T0) / 8.0) * (temp - T2) / (T3 - T2) + (T0 / 8.0);

διπλό fTemp = (cTemp * 1.8) + 32;

// Έξοδος δεδομένων στην οθόνη

System.out.printf ("Σχετική υγρασία: %.2f %% RH %n", υγρασία);

System.out.printf ("Θερμοκρασία σε Κελσίου: %.2f C %n", cTemp);

System.out.printf ("Θερμοκρασία σε Φαρενάιτ: %.2f F %n", fTemp);

}

}

Βήμα 4: Εφαρμογές:

Το HTS221 μπορεί να χρησιμοποιηθεί σε διάφορα καταναλωτικά προϊόντα, όπως υγραντήρες αέρα και ψυγεία κ.λπ.

Συνιστάται: