Πίνακας περιεχομένων:
Βίντεο: Particle Photon - MPL3115A2 Precision Altimeter Sensor Sutorial: 4 Steps
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Το MPL3115A2 χρησιμοποιεί έναν αισθητήρα πίεσης MEMS με διεπαφή I2C για να παρέχει ακριβή δεδομένα πίεσης/υψομέτρου και θερμοκρασίας. Οι έξοδοι του αισθητήρα ψηφιοποιούνται με ADC υψηλής ανάλυσης 24-bit. Η εσωτερική επεξεργασία αφαιρεί εργασίες αντιστάθμισης από το κεντρικό σύστημα MCU. Είναι ικανό να ανιχνεύσει μια μεταβολή μόνο σε 0,05 kPa που ισοδυναμεί με μια αλλαγή ύψους 0,3 m. Εδώ είναι η επίδειξή του με το φωτόνιο σωματιδίων.
Βήμα 1: Αυτό που χρειάζεστε..
1. Φωτόνιο σωματιδίων
2. MPL3115A2
3. Καλώδιο I²C
4. I²C Shield for Particle Photon
Βήμα 2: Συνδέσεις:
Πάρτε μια ασπίδα I2C για το σωματίδιο φωτονίου και σπρώξτε την απαλά πάνω από τις ακίδες του σωματιδίου φωτονίου.
Στη συνέχεια, συνδέστε το ένα άκρο του καλωδίου I2C στον αισθητήρα MPL3115A2 και το άλλο άκρο στην ασπίδα I2C.
Οι συνδέσεις φαίνονται στην παραπάνω εικόνα.
Βήμα 3: Κωδικός:
Μπορείτε να κατεβάσετε τον κωδικό σωματιδίων για το MPL3115A2 από το αποθετήριο Github-DCUBE Store.
Ορίστε ο σύνδεσμος.
Έχουμε χρησιμοποιήσει δύο βιβλιοθήκες για κώδικα σωματιδίων, οι οποίες είναι οι εφαρμογές.h και spark_wiring_i2c.h. Η βιβλιοθήκη Spark_wiring_i2c απαιτείται για τη διευκόλυνση της επικοινωνίας I2C με τον αισθητήρα.
Μπορείτε επίσης να αντιγράψετε τον κώδικα από εδώ, δίνεται ως εξής:
// Διανέμεται με άδεια ελεύθερης βούλησης.
// Χρησιμοποιήστε το με όποιον τρόπο θέλετε, κερδοφόρο ή δωρεάν, υπό την προϋπόθεση ότι ταιριάζει στις άδειες των σχετικών έργων του.
// MPL3115A2
// Αυτός ο κώδικας έχει σχεδιαστεί για να λειτουργεί με το Mini Module MPL3115A2_I2CS I2C
#περιλαμβάνω
#περιλαμβάνω
// Η διεύθυνση MPL3115A2 I2C είναι 0x60 (96)
#define Addr 0x60
float cTemp = 0.0, fTemp = 0.0, πίεση = 0.0, υψόμετρο = 0.0;
int temp = 0, tHeight = 0; long pres = 0;
void setup ()
{
// Ορισμός μεταβλητής
Particle.variable ("i2cdevice", "MPL3115A2");
Particle.variable ("cTemp", cTemp);
Particle.variable ("πίεση", πίεση).
Particle.variable ("υψόμετρο", υψόμετρο);
// Αρχικοποίηση επικοινωνίας I2C
Wire.begin ();
// Αρχικοποίηση Σειριακής Επικοινωνίας, ρυθμισμένος ρυθμός baud = 9600
Serial.begin (9600);
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλέξτε μητρώο ελέγχου
Wire.write (0x26);
// Ενεργή λειτουργία, OSR = 128, λειτουργία υψομέτρου
Wire.write (0xB9);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλέξτε μητρώο διαμόρφωσης δεδομένων
Wire.write (0x13);
// Το συμβάν ετοιμότητας δεδομένων ενεργοποιήθηκε για υψόμετρο, πίεση, θερμοκρασία
Wire.write (0x07);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
καθυστέρηση (300)?
}
κενός βρόχος ()
{
ανυπόγραφα δεδομένα int [6];
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλέξτε μητρώο ελέγχου
Wire.write (0x26);
// Ενεργή λειτουργία, OSR = 128, λειτουργία υψομέτρου
Wire.write (0xB9);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
καθυστέρηση (1000)?
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλέξτε μητρώο δεδομένων
Wire.write (0x00);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Ζητήστε 6 byte δεδομένων
Wire.requestFrom (Addr, 6)?
// Διαβάστε 6 byte δεδομένων από τη διεύθυνση 0x00 (00)
// κατάσταση, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
εάν (Wire.available () == 6)
{
δεδομένα [0] = Wire.read ();
δεδομένα [1] = Wire.read ();
δεδομένα [2] = Wire.read ();
δεδομένα [3] = Wire.read ();
δεδομένα [4] = Wire.read ();
δεδομένα [5] = Wire.read ();
}
// Μετατρέψτε τα δεδομένα σε 20-bit
tHeight = ((((μακρύ) δεδομένα [1] * (μακρύ) 65536) + (δεδομένα [2] * 256) + (δεδομένα [3] & 0xF0)) / 16);
temp = ((δεδομένα [4] * 256) + (δεδομένα [5] & 0xF0)) / 16;
υψόμετρο = tHightight / 16.0;
cTemp = (temp / 16.0);
fTemp = cTemp * 1.8 + 32;
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλέξτε μητρώο ελέγχου
Wire.write (0x26);
// Ενεργή λειτουργία, OSR = 128, λειτουργία βαρόμετρου
Wire.write (0x39);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλέξτε μητρώο δεδομένων
Wire.write (0x00);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
καθυστέρηση (1000)?
// Ζητήστε 4 byte δεδομένων
Wire.requestFrom (Addr, 4)?
// Διαβάστε 4 byte δεδομένων
// κατάσταση, pres msb1, pres msb, pres lsb
εάν (Wire.available () == 4)
{
δεδομένα [0] = Wire.read ();
δεδομένα [1] = Wire.read ();
δεδομένα [2] = Wire.read ();
δεδομένα [3] = Wire.read ();
}
// Μετατρέψτε τα δεδομένα σε 20-bit
pres = (((μακρύ) δεδομένα [1] * (μακρύ) 65536) + (δεδομένα [2] * 256) + (δεδομένα [3] & 0xF0)) / 16;
πίεση = (pres / 4.0) / 1000.0;
// Έξοδος δεδομένων στον πίνακα ελέγχου
Particle.publish ("Altitude:", String (altitude));
Particle.publish ("Πίεση:", Χορδή (πίεση));
Particle.publish ("Temperature in Celsius:", String (cTemp));
Particle.publish ("Temperature in Fahrenheit:", String (fTemp));
καθυστέρηση (1000)?
}
Βήμα 4: Εφαρμογές:
Διάφορες εφαρμογές του MPL3115A2 περιλαμβάνουν υψομετρία υψηλής ακρίβειας, Smartphones/Tablets, Personal Electronics Altimetry κ.λπ. Μπορεί επίσης να ενσωματωθεί σε GPS Dead Reckoning, GPS Enhancement for Emergency Services, Map Assist, Navigation καθώς και Εξοπλισμός Μετεωρολογικού Σταθμού.
Συνιστάται:
Particle Photon IoT Personal Weather Station: 4 Βήματα (με Εικόνες)
Particle Photon IoT Personal Weather Station:
Particle Photon - TCN75A Temperature Sensor Sutorial: 4 Βήματα
Particle Photon-TCN75A Temperature Sensor Tutorial: Το TCN75A είναι ένας σειριακός αισθητήρας θερμοκρασίας δύο συρμάτων ενσωματωμένος με μετατροπέα θερμοκρασίας σε ψηφιακό. Ενσωματώνεται με προγραμματιζόμενους καταχωρητές χρήστη που παρέχουν ευελιξία για εφαρμογές ανίχνευσης θερμοκρασίας. Οι ρυθμίσεις εγγραφής επιτρέπουν στους χρήστες
Particle Photon - ADT75 Αισθητήρας θερμοκρασίας σεμινάριο: 4 βήματα
Particle Photon - ADT75 Temperature Sensor Tutorial: Το ADT75 είναι ένας πολύ ακριβής, ψηφιακός αισθητήρας θερμοκρασίας. Αποτελείται από αισθητήρα θερμοκρασίας διακένου ζώνης και μετατροπέα αναλογικού σε ψηφιακό 12-bit για παρακολούθηση και ψηφιοποίηση της θερμοκρασίας. Ο εξαιρετικά ευαίσθητος αισθητήρας του το καθιστά αρκετά ικανό για μένα
Particle Photon - STS21 Temperature Sensor Tutorial: 4 Βήματα
Particle Photon - STS21 Temperature Sensor Tutorial: Ο STS21 Digital Temperature Sensor προσφέρει κορυφαία απόδοση και εξοικονόμηση χώρου. Παρέχει βαθμονομημένα, γραμμικά σήματα σε ψηφιακή μορφή I2C. Η κατασκευή αυτού του αισθητήρα βασίζεται στην τεχνολογία CMOSens, η οποία αποδίδει στην ανώτερη
Particle Photon - TMP100 Temperature Sensor Tutorial: 4 βήματα
Particle Photon-TMP100 Temperature Sensor Tutorial: TMP100 Υψηλής ακρίβειας, χαμηλής ισχύος, Temηφιακός αισθητήρας θερμοκρασίας I2C MINI μονάδα. Το TMP100 είναι ιδανικό για εκτεταμένη μέτρηση θερμοκρασίας. Αυτή η συσκευή προσφέρει ακρίβεια ± 1 ° C χωρίς να απαιτείται βαθμονόμηση ή ρύθμιση εξωτερικού σήματος εξαρτήματος. Αυτός