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

Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Java Tutorial: 4 βήματα
Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Java Tutorial: 4 βήματα

Βίντεο: Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Java Tutorial: 4 βήματα

Βίντεο: Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Java Tutorial: 4 βήματα
Βίντεο: Arduino Nano - MPL3115A2 Precision Altimeter Sensor Tutorial 2024, Νοέμβριος
Anonim
Image
Image

Το 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 καθώς και Εξοπλισμός Μετεωρολογικού Σταθμού.

Συνιστάται: