Πίνακας περιεχομένων:
Βίντεο: Arduino Nano - Σεμινάριο αισθητήρα σχετικής υγρασίας και θερμοκρασίας HTS221: 4 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Το HTS221 είναι ένας εξαιρετικά συμπαγής χωρητικός ψηφιακός αισθητήρας για σχετική υγρασία και θερμοκρασία. Περιλαμβάνει ένα στοιχείο ανίχνευσης και ένα ολοκληρωμένο κύκλωμα ειδικής εφαρμογής μικτού σήματος (ASIC) για την παροχή των πληροφοριών μέτρησης μέσω ψηφιακών σειριακών διεπαφών. Ενσωματωμένο με τόσα πολλά χαρακτηριστικά, αυτός είναι ένας από τους πιο κατάλληλους αισθητήρες για κρίσιμες μετρήσεις υγρασίας και θερμοκρασίας. Εδώ είναι η επίδειξη με arduino nano.
Βήμα 1: Αυτό που χρειάζεστε..
1. Arduino Nano
2. HTS221
3. Καλώδιο I²C
4. I²C Shield για Arduino Nano
Βήμα 2: Συνδέσεις:
Πάρτε μια ασπίδα I2C για το Arduino Nano και σπρώξτε την απαλά πάνω από τις ακίδες του Nano.
Στη συνέχεια, συνδέστε το ένα άκρο του καλωδίου I2C στον αισθητήρα HTS221 και το άλλο άκρο στην ασπίδα I2C.
Οι συνδέσεις φαίνονται στην παραπάνω εικόνα.
Βήμα 3: Κωδικός:
Ο κωδικός arduino για το HTS221 μπορεί να μεταφορτωθεί από το αποθετήριο github μας- Κοινότητα DCUBE.
Εδώ είναι ο σύνδεσμος για το ίδιο:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
Περιλαμβάνουμε τη βιβλιοθήκη Wire.h για τη διευκόλυνση της επικοινωνίας I2c του αισθητήρα με την πλακέτα Arduino.
Μπορείτε επίσης να αντιγράψετε τον κώδικα από εδώ, δίνεται ως εξής:
// Διανέμεται με άδεια ελεύθερης βούλησης.
// Χρησιμοποιήστε το με όποιον τρόπο θέλετε, κερδοφόρο ή δωρεάν, υπό την προϋπόθεση ότι ταιριάζει στις άδειες των σχετικών έργων του.
// HTS221
// Αυτός ο κώδικας έχει σχεδιαστεί για να λειτουργεί με το Mini Module HTS221_I2CS I2C
#περιλαμβάνω
// Η διεύθυνση HTS221 I2C είναι 0x5F
#define Addr 0x5F
void setup ()
{
// Αρχικοποίηση επικοινωνίας I2C ως MASTER
Wire.begin ();
// Αρχικοποίηση σειριακής επικοινωνίας, ρυθμισμένος ρυθμός baud = 9600
Serial.begin (9600);
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλέξτε μέσο καταχωρητή διαμόρφωσης
Wire.write (0x10);
// Δείγματα μέσης θερμοκρασίας = 256, δείγματα μέσης υγρασίας = 512
Wire.write (0x1B);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλέξτε καταχωρητή ελέγχου1
Wire.write (0x20);
// Ενεργοποίηση, Συνεχής ενημέρωση, Ρυθμός εξόδου δεδομένων = 1 Hz
Wire.write (0x85);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
καθυστέρηση (300)?
}
κενός βρόχος ()
{
ανυπόγραφα δεδομένα int [2];
ανυπόγραφο int val [4];
ανυπόγραφο int H0, H1, H2, H3, T0, T1, T2, T3, raw;
// Τιμές ψεκασμού υγρασίας
για (int i = 0; i <2; i ++)
{
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Αποστολή μητρώου δεδομένων
Wire.write ((48 + i));
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Αίτημα 1 byte δεδομένων
Wire.requestFrom (Addr, 1)?
// Διαβάστε 1 byte δεδομένων
εάν (Wire.available () == 1)
{
δεδομένα = Wire.read ();
}
}
// Μετατροπή δεδομένων υγρασίας
H0 = δεδομένα [0] / 2;
H1 = δεδομένα [1] / 2;
για (int i = 0; i <2; i ++)
{
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Αποστολή μητρώου δεδομένων
Wire.write ((54 + i));
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Αίτημα 1 byte δεδομένων
Wire.requestFrom (Addr, 1)?
// Διαβάστε 1 byte δεδομένων
εάν (Wire.available () == 1)
{
δεδομένα = Wire.read ();
}
}
// Μετατροπή δεδομένων υγρασίας
H2 = (δεδομένα [1] * 256.0) + δεδομένα [0];
για (int i = 0; i <2; i ++)
{
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Αποστολή μητρώου δεδομένων
Wire.write ((58 + i));
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Αίτημα 1 byte δεδομένων
Wire.requestFrom (Addr, 1)?
// Διαβάστε 1 byte δεδομένων
εάν (Wire.available () == 1)
{
δεδομένα = Wire.read ();
}
}
// Μετατροπή δεδομένων υγρασίας
H3 = (δεδομένα [1] * 256.0) + δεδομένα [0];
// Θερμοκρασία τιμές έκλυσης
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Αποστολή μητρώου δεδομένων
Wire.write (0x32);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Αίτημα 1 byte δεδομένων
Wire.requestFrom (Addr, 1)?
// Διαβάστε 1 byte δεδομένων
εάν (Wire.available () == 1)
{
T0 = Wire.read ();
}
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Αποστολή μητρώου δεδομένων
Wire.write (0x33);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Αίτημα 1 byte δεδομένων
Wire.requestFrom (Addr, 1)?
// Διαβάστε 1 byte δεδομένων
εάν (Wire.available () == 1)
{
T1 = Wire.read ();
}
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Αποστολή μητρώου δεδομένων
Wire.write (0x35);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Αίτημα 1 byte δεδομένων
Wire.requestFrom (Addr, 1)?
// Διαβάστε 1 byte δεδομένων
εάν (Wire.available () == 1)
{
raw = Wire.read ();
}
ακατέργαστο = ακατέργαστο & 0x0F;
// Μετατρέψτε τις τιμές εκπομπής θερμοκρασίας σε 10-bit
T0 = ((ακατέργαστο & 0x03) * 256) + T0;
T1 = ((ακατέργαστο & 0x0C) * 64) + T1;
για (int i = 0; i <2; i ++)
{
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Αποστολή μητρώου δεδομένων
Wire.write ((60 + i));
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Αίτημα 1 byte δεδομένων
Wire.requestFrom (Addr, 1)?
// Διαβάστε 1 byte δεδομένων
εάν (Wire.available () == 1)
{
δεδομένα = Wire.read ();
}
}
// Μετατρέψτε τα δεδομένα
T2 = (δεδομένα [1] * 256.0) + δεδομένα [0];
για (int i = 0; i <2; i ++)
{
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Αποστολή μητρώου δεδομένων
Wire.write ((62 + i));
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Αίτημα 1 byte δεδομένων
Wire.requestFrom (Addr, 1)?
// Διαβάστε 1 byte δεδομένων
εάν (Wire.available () == 1)
{
δεδομένα = Wire.read ();
}
}
// Μετατρέψτε τα δεδομένα
T3 = (δεδομένα [1] * 256.0) + δεδομένα [0];
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Αποστολή μητρώου δεδομένων
Wire.write (0x28 | 0x80);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Ζητήστε 4 byte δεδομένων
Wire.requestFrom (Addr, 4)?
// Διαβάστε 4 byte δεδομένων
// υγρασία msb, υγρασία lsb, temp msb, temp lsb
εάν (Wire.available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// Μετατρέψτε τα δεδομένα
υγρασία επίπλευσης = (val [1] * 256,0) + val [0];
υγρασία = ((1,0 * Η1) - (1,0 * Η0)) * (1,0 * υγρασία - 1,0 * Η2) / (1,0 * Η3 - 1,0 * Η2) + (1,0 * Η0) ·
int temp = (val [3] * 256) + val [2];
float cTemp = (((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);
float fTemp = (cTemp * 1.8) + 32;
// Έξοδος δεδομένων σε σειριακή οθόνη
Serial.print ("Σχετική υγρασία:");
Serial.print (υγρασία)?
Serial.println (" % RH");
Serial.print ("Θερμοκρασία σε Κελσίου:");
Serial.print (cTemp); Serial.println ("C");
Serial.print ("Θερμοκρασία σε Φαρενάιτ:");
Serial.print (fTemp);
Serial.println ("F");
καθυστέρηση (500)?
}
Βήμα 4: Εφαρμογές:
Το HTS221 μπορεί να χρησιμοποιηθεί σε διάφορα καταναλωτικά προϊόντα, όπως υγραντήρες αέρα και ψυγεία κ.λπ.
Συνιστάται:
Αυτόματος ανεμιστήρας ψύξης με αισθητήρα θερμοκρασίας και υγρασίας Servo και DHT11 με Arduino: 8 βήματα
Αυτόματος ανεμιστήρας ψύξης χρησιμοποιώντας αισθητήρα θερμοκρασίας και υγρασίας Servo και DHT11 με Arduino: Σε αυτό το σεμινάριο θα μάθουμε πώς να ξεκινάμε & περιστρέψτε έναν ανεμιστήρα όταν η θερμοκρασία ανέβει πάνω από ένα ορισμένο επίπεδο
Μέτρηση υγρασίας και θερμοκρασίας με χρήση HTS221 και Arduino Nano: 4 βήματα
Μέτρηση υγρασίας και θερμοκρασίας με χρήση HTS221 και Arduino Nano: Το HTS221 είναι ένας εξαιρετικά συμπαγής χωρητικός ψηφιακός αισθητήρας για σχετική υγρασία και θερμοκρασία. Περιλαμβάνει ένα στοιχείο ανίχνευσης και ένα ολοκληρωμένο κύκλωμα ειδικής εφαρμογής μικτού σήματος (ASIC) για την παροχή των πληροφοριών μέτρησης μέσω ψηφιακού σειριακού
Μέτρηση υγρασίας και θερμοκρασίας με χρήση HTS221 και Raspberry Pi: 4 βήματα
Μέτρηση υγρασίας και θερμοκρασίας με χρήση HTS221 και Raspberry Pi: Το HTS221 είναι ένας εξαιρετικά συμπαγής χωρητικός ψηφιακός αισθητήρας για σχετική υγρασία και θερμοκρασία. Περιλαμβάνει ένα στοιχείο ανίχνευσης και ένα ολοκληρωμένο κύκλωμα ειδικής εφαρμογής μικτού σήματος (ASIC) για την παροχή των πληροφοριών μέτρησης μέσω ψηφιακού σειριακού
Μέτρηση υγρασίας και θερμοκρασίας χρησιμοποιώντας το HTS221 και το φωτόνιο σωματιδίων: 4 βήματα
Μέτρηση υγρασίας και θερμοκρασίας χρησιμοποιώντας το HTS221 και το σωματίδιο φωτονίου: Το HTS221 είναι ένας εξαιρετικά συμπαγής χωρητικός ψηφιακός αισθητήρας για σχετική υγρασία και θερμοκρασία. Περιλαμβάνει ένα στοιχείο ανίχνευσης και ένα ολοκληρωμένο κύκλωμα ειδικής εφαρμογής μικτού σήματος (ASIC) για την παροχή των πληροφοριών μέτρησης μέσω ψηφιακού σειριακού
Ένδειξη θερμοκρασίας και υγρασίας και συλλογή δεδομένων με Arduino και επεξεργασία: 13 βήματα (με εικόνες)
Εμφάνιση θερμοκρασίας και υγρασίας και συλλογή δεδομένων με Arduino και επεξεργασία: Εισαγωγή: Πρόκειται για ένα έργο που χρησιμοποιεί έναν πίνακα Arduino, έναν αισθητήρα (DHT11), έναν υπολογιστή Windows και ένα πρόγραμμα επεξεργασίας (δωρεάν λήψη) για την εμφάνιση δεδομένων θερμοκρασίας, υγρασίας σε ψηφιακή και φόρμα γραφήματος, εμφάνιση ώρας και ημερομηνίας και εκτέλεση χρόνου αντίστροφης μέτρησης