Πίνακας περιεχομένων:
Βίντεο: Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Java Tutorial: 4 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Το MPL3115A2 χρησιμοποιεί έναν αισθητήρα πίεσης MEMS με διεπαφή I2C για να παρέχει ακριβή δεδομένα πίεσης/υψομέτρου και θερμοκρασίας. Οι έξοδοι του αισθητήρα ψηφιοποιούνται με ADC υψηλής ανάλυσης 24-bit. Η εσωτερική επεξεργασία αφαιρεί εργασίες αντιστάθμισης από το κεντρικό σύστημα MCU. Είναι ικανό να ανιχνεύσει μια μεταβολή μόνο σε 0,05 kPa που ισοδυναμεί με μια αλλαγή ύψους 0,3 m. Εδώ είναι η επίδειξή του με raspberry pi χρησιμοποιώντας κώδικα java.
Βήμα 1: Αυτό που χρειάζεστε..
1. Raspberry Pi
2. MPL3115A2
3. Καλώδιο I²C
4. I²C Shield για το Raspberry Pi
5. Καλώδιο Ethernet
Βήμα 2: Συνδέσεις:
Πάρτε μια ασπίδα I2C για raspberry pi και σπρώξτε την απαλά πάνω από τις καρφίτσες gpio του raspberry pi.
Στη συνέχεια, συνδέστε το ένα άκρο του καλωδίου I2C στον αισθητήρα MPL3115A2 και το άλλο άκρο στην ασπίδα I2C.
Συνδέστε επίσης το καλώδιο Ethernet στο pi ή μπορείτε να χρησιμοποιήσετε μια μονάδα WiFi.
Οι συνδέσεις φαίνονται στην παραπάνω εικόνα.
Βήμα 3: Κωδικός:
Μπορείτε να κατεβάσετε τον κώδικα java για MPL3115A2 από το αποθετήριο github μας- DCUBE Store.
Εδώ είναι ο σύνδεσμος για το ίδιο:
github.com/DcubeTechVentures/MPL3115A2/tree/master/Java
Χρησιμοποιήσαμε τη βιβλιοθήκη pi4j για κώδικα java, τα βήματα για την εγκατάσταση του pi4j στο raspberry pi περιγράφονται εδώ:
pi4j.com/install.html
Μπορείτε επίσης να αντιγράψετε τον κώδικα από εδώ, δίνεται ως εξής:
// Διανέμεται με άδεια ελεύθερης βούλησης.
// Χρησιμοποιήστε το με όποιον τρόπο θέλετε, κερδοφόρο ή δωρεάν, υπό την προϋπόθεση ότι ταιριάζει στις άδειες των σχετικών έργων του.
// MPL3115A2
// Αυτός ο κώδικας έχει σχεδιαστεί για να λειτουργεί με το Mini Module MPL3115A2_I2CS I2C διαθέσιμο από
εισαγωγή com.pi4j.io.i2c. I2CBus;
εισαγωγή com.pi4j.io.i2c. I2CDevice;
εισαγωγή com.pi4j.io.i2c. I2CFactory?
εισαγωγή java.io. IOException;
δημόσια τάξη MPL3115A2
{
public static void main (String args ) ρίχνει Εξαίρεση
{
// Δημιουργία διαύλου I2C
I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1);
// Λήψη συσκευής I2C, η διεύθυνση MPL3115A2 I2C είναι 0x60 (96)
I2CDevice device = Bus.getDevice (0x60);
// Επιλέξτε μητρώο ελέγχου
// Ενεργή λειτουργία, OSR = 128, λειτουργία υψομέτρου
device.write (0x26, (byte) 0xB9);
// Επιλέξτε μητρώο διαμόρφωσης δεδομένων
// Το συμβάν ετοιμότητας δεδομένων ενεργοποιήθηκε για υψόμετρο, πίεση, θερμοκρασία
device.write (0x13, (byte) 0x07);
// Επιλέξτε μητρώο ελέγχου
// Ενεργή λειτουργία, OSR = 128, λειτουργία υψομέτρου
device.write (0x26, (byte) 0xB9);
Thread.sleep (1000);
// Διαβάστε 6 byte δεδομένων από τη διεύθυνση 0x00 (00)
// κατάσταση, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
byte data = new byte [6];
device.read (0x00, δεδομένα, 0, 6);
// Μετατρέψτε τα δεδομένα σε 20-bit
int tHeight = ((((δεδομένα [1] & 0xFF) * 65536) + ((δεδομένα [2] & 0xFF) * 256) + (δεδομένα [3] & 0xF0)) / 16);
int temp = ((δεδομένα [4] * 256) + (δεδομένα [5] & 0xF0)) / 16;
διπλό υψόμετρο = tHightight / 16.0;
διπλό cTemp = (temp / 16.0);
διπλό fTemp = cTemp * 1,8 + 32;
// Επιλέξτε μητρώο ελέγχου
// Ενεργή λειτουργία, OSR = 128, λειτουργία βαρόμετρου
device.write (0x26, (byte) 0x39);
Thread.sleep (1000);
// Διαβάστε 4 byte δεδομένων από τη διεύθυνση 0x00 (00)
// κατάσταση, pres msb1, pres msb, pres lsb
device.read (0x00, δεδομένα, 0, 4);
// Μετατρέψτε τα δεδομένα σε 20-bit
int pres = (((δεδομένα [1] & 0xFF) * 65536) + ((δεδομένα [2] & 0xFF) * 256) + (δεδομένα [3] & 0xF0)) / 16;
διπλή πίεση = (pres / 4.0) / 1000.0;
// Έξοδος δεδομένων στην οθόνη
System.out.printf ("Πίεση: %.2f kPa %n", πίεση);
System.out.printf ("Υψόμετρο: %.2f m %n", υψόμετρο);
System.out.printf ("Θερμοκρασία σε Κελσίου: %.2f C %n", cTemp);
System.out.printf ("Θερμοκρασία σε Φαρενάιτ: %.2f F %n", fTemp);
}
}
Βήμα 4: Εφαρμογές:
Διάφορες εφαρμογές του MPL3115A2 περιλαμβάνουν υψομετρία υψηλής ακρίβειας, Smartphones/Tablets, Personal Electronics Altimetry κ.λπ. Μπορεί επίσης να ενσωματωθεί σε GPS Dead Reckoning, GPS Enhancement for Emergency Services, Map Assist, Navigation καθώς και Εξοπλισμός Μετεωρολογικού Σταθμού.
Συνιστάται:
Raspberry Pi - TSL45315 Ambient Light Sensor Java Tutorial: 4 Βήματα
Raspberry Pi - TSL45315 Ambient Light Sensor Java Tutorial: Το TSL45315 είναι ένας ψηφιακός αισθητήρας φωτισμού περιβάλλοντος. Προσαρμόζει την ανταπόκριση των ανθρώπινων ματιών υπό διάφορες συνθήκες φωτισμού. Οι συσκευές έχουν τρεις επιλεγόμενους χρόνους ενσωμάτωσης και παρέχουν άμεση έξοδο lux 16-bit μέσω διεπαφής διαύλου I2C. Η συσκευή συνεργάζεται
Raspberry Pi MCP9803 Temperature Sensor Java Tutorial: 4 Βήματα
Raspberry Pi MCP9803 Temperature Sensor Java Tutorial: Το MCP9803 είναι ένας αισθητήρας θερμοκρασίας υψηλής ακρίβειας 2 συρμάτων. Είναι ενσωματωμένα με προγραμματιζόμενους από τον χρήστη καταχωρητές που διευκολύνουν τις εφαρμογές ανίχνευσης θερμοκρασίας. Αυτός ο αισθητήρας είναι κατάλληλος για εξαιρετικά εξελιγμένο σύστημα παρακολούθησης θερμοκρασίας πολλαπλών ζωνών. Εδώ
Raspberry Pi MCP9805 Temperature Sensor Java Tutorial: 4 Βήματα
Raspberry Pi MCP9805 Temperature Sensor Java Tutorial: Το MCP9805 είναι ένας ψηφιακός αισθητήρας θερμοκρασίας μονάδας μνήμης. Ενσωματώνεται με προγραμματιζόμενους καταχωρητές χρήστη που παρέχουν ευελιξία για εφαρμογές ανίχνευσης θερμοκρασίας. Αυτός ο αισθητήρας έχει σχεδιαστεί για να ενσωματώνεται στη μονάδα μνήμης πλατφόρμας κινητής τηλεφωνίας
Raspberry Pi - TMP100 Temperature Sensor Java Tutorial: 4 Βήματα
Raspberry Pi-TMP100 Temperature Sensor Java Tutorial: TMP100 Υψηλής ακρίβειας, χαμηλής ισχύος, Temηφιακός αισθητήρας θερμοκρασίας I2C MINI μονάδα. Το TMP100 είναι ιδανικό για εκτεταμένη μέτρηση θερμοκρασίας. Αυτή η συσκευή προσφέρει ακρίβεια ± 1 ° C χωρίς να απαιτείται βαθμονόμηση ή ρύθμιση εξωτερικού σήματος εξαρτήματος. Αυτός
Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java Tutorial: 4 Βήματα
Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java Tutorial: Το A1332 είναι ένας 360 ° χωρίς επαφή προγραμματιζόμενος αισθητήρας θέσης μαγνητικής γωνίας υψηλής ανάλυσης. Έχει σχεδιαστεί για ψηφιακά συστήματα που χρησιμοποιούν διεπαφή I2C. Είναι βασισμένο στην τεχνολογία Circular Vertical Hall (CVH) και ένα προγραμματιζόμενο σήμα βασισμένο σε μικροεπεξεργαστή