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

Χρήση Raspberry Pi, μετρήστε υψόμετρο, πίεση και θερμοκρασία με MPL3115A2: 6 βήματα
Χρήση Raspberry Pi, μετρήστε υψόμετρο, πίεση και θερμοκρασία με MPL3115A2: 6 βήματα

Βίντεο: Χρήση Raspberry Pi, μετρήστε υψόμετρο, πίεση και θερμοκρασία με MPL3115A2: 6 βήματα

Βίντεο: Χρήση Raspberry Pi, μετρήστε υψόμετρο, πίεση και θερμοκρασία με MPL3115A2: 6 βήματα
Βίντεο: Γίνεται Πλήρες PC ΜΟΝΟ Με 158,90€? - Raspberry Pi 4 8GB Unboxing & Review 2024, Νοέμβριος
Anonim
Image
Image
Απαραίτητος εξοπλισμός που χρειαζόμαστε
Απαραίτητος εξοπλισμός που χρειαζόμαστε

Μάθετε τι σας ανήκει και ξέρετε γιατί το έχετε

Είναι ενδιαφέρουσα. Ζούμε στην εποχή του αυτοματισμού στο Διαδίκτυο καθώς βυθίζεται σε μια πληθώρα νέων εφαρμογών. Ως λάτρεις των υπολογιστών και των ηλεκτρονικών, μάθαμε πολλά με το Raspberry Pi και αποφασίσαμε να συνδυάσουμε τα ενδιαφέροντά μας. Αυτό το έργο διαρκεί περίπου μία ώρα εάν είστε νέοι σε συνδέσεις I²C και εγκατάσταση λογισμικού και είναι ένας πολύ καλός τρόπος για να επεκτείνετε τις δυνατότητες του MPL3115A2 με το Raspberry Pi στην Java.

Βήμα 1: Απαραίτητος εξοπλισμός που χρειαζόμαστε

Απαραίτητος εξοπλισμός που χρειαζόμαστε
Απαραίτητος εξοπλισμός που χρειαζόμαστε
Απαραίτητος εξοπλισμός που χρειαζόμαστε
Απαραίτητος εξοπλισμός που χρειαζόμαστε
Απαραίτητος εξοπλισμός που χρειαζόμαστε
Απαραίτητος εξοπλισμός που χρειαζόμαστε

1. Raspberry Pi

Το πρώτο βήμα ήταν η απόκτηση ενός πίνακα Raspberry Pi. Αυτή η μικρή ιδιοφυΐα χρησιμοποιείται από χομπίστες, δασκάλους και για τη δημιουργία καινοτόμων περιβαλλόντων.

2. I2C Shield για το Raspberry Pi

Ο INPI2 (προσαρμογέας I2C) παρέχει στο Raspberry Pi 2/3 μια θύρα I²C για χρήση με πολλές συσκευές I2C. Είναι διαθέσιμο στο Dcube Store.

3. Υψόμετρο, Αισθητήρας πίεσης και θερμοκρασίας, MPL3115A2

Το MPL3115A2 είναι ένας αισθητήρας πίεσης MEMS με διεπαφή I²C για να παρέχει δεδομένα πίεσης, υψομέτρου και θερμοκρασίας. Αυτός ο αισθητήρας χρησιμοποιεί το πρωτόκολλο I²2 για επικοινωνία. Αγοράσαμε αυτόν τον αισθητήρα από το Dcube Store.

4. Καλώδιο σύνδεσης

Χρησιμοποιήσαμε το καλώδιο σύνδεσης I²C που διατίθεται στο Dcube Store.

5. Καλώδιο Micro USB

Το Raspberry Pi τροφοδοτείται από τροφοδοσία micro USB.

6. Βελτίωση πρόσβασης στο Διαδίκτυο - Ethernet Cable/WiFi Module

Ένα από τα πρώτα πράγματα που θα θέλετε να κάνετε είναι να συνδέσετε το Raspberry Pi στο Διαδίκτυο. Μπορείτε να συνδεθείτε χρησιμοποιώντας καλώδιο Ethernet ή με προσαρμογέα ασύρματου USB Nano WiFi.

7. Καλώδιο HDMI (προαιρετικό, η επιλογή σας)

Μπορείτε να συνδέσετε το Raspberry Pi σε μια οθόνη χρησιμοποιώντας καλώδιο HDMI. Επίσης, μπορείτε να έχετε απομακρυσμένη πρόσβαση στο Raspberry Pi σας χρησιμοποιώντας SSH/PuTTY.

Βήμα 2: Συνδέσεις υλικού για να συνδυάσετε το κύκλωμα

Συνδέσεις υλικού για να συνδυάσετε το κύκλωμα
Συνδέσεις υλικού για να συνδυάσετε το κύκλωμα
Συνδέσεις υλικού για να συνδυάσετε το κύκλωμα
Συνδέσεις υλικού για να συνδυάσετε το κύκλωμα

Κάντε το κύκλωμα σύμφωνα με το σχηματικό σχήμα. Γενικά, οι συνδέσεις είναι αρκετά απλές. Ακολουθήστε τις παραπάνω οδηγίες και εικόνες και δεν θα έχετε κανένα πρόβλημα. Ενώ σχεδιάζαμε, εξετάσαμε το υλικό και την κωδικοποίηση καθώς και τα βασικά των ηλεκτρονικών. Θέλαμε να σχεδιάσουμε ένα απλό ηλεκτρονικό σχήμα για αυτό το έργο. Στο διάγραμμα, μπορείτε να παρατηρήσετε τα διαφορετικά μέρη, τα εξαρτήματα ισχύος και τον αισθητήρα I²C που ακολουθούν τα πρωτόκολλα επικοινωνίας I²C. Ας ελπίσουμε ότι αυτό δείχνει πόσο απλά είναι τα ηλεκτρονικά για αυτό το έργο.

Σύνδεση Raspberry Pi και I2C Shield

Για αυτό, Raspberry Pi και τοποθετήστε το I²C Shield σε αυτό. Πιέστε απαλά την ασπίδα (δείτε την εικόνα).

Σύνδεση αισθητήρα και Raspberry Pi

Πάρτε τον αισθητήρα και συνδέστε το καλώδιο I²C με αυτόν. Βεβαιωθείτε ότι η έξοδος I²C συνδέεται ΠΑΝΤΑ με την είσοδο I²C. Το ίδιο θα ακολουθήσει το Raspberry Pi με την ασπίδα I²C τοποθετημένη πάνω του. Έχουμε την I²C Shield και τα καλώδια σύνδεσης I²C από την πλευρά μας ως ένα πολύ μεγάλο πλεονέκτημα, καθώς μας μένει μόνο η επιλογή plug and play. Δεν υπάρχουν πείροι και πρόβλημα καλωδίωσης και ως εκ τούτου, η σύγχυση έχει φύγει. Τι ανακούφιση απλώς να φανταστείτε τον εαυτό σας στον ιστό των καλωδίων και να μπείτε σε αυτό. Τόσο απλό όσο αυτό!

Σημείωση: Το καφέ σύρμα πρέπει πάντα να ακολουθεί τη σύνδεση Ground (GND) μεταξύ της εξόδου μιας συσκευής και της εισόδου μιας άλλης συσκευής

Η συνδεσιμότητα στο Διαδίκτυο είναι ζωτικής σημασίας

Για να πετύχουμε το έργο μας, χρειαζόμαστε πρόσβαση στο Διαδίκτυο για το Raspberry Pi. Σε αυτό, έχετε επιλογές όπως τη σύνδεση καλωδίου Ethernet (LAN). Επίσης, ως εναλλακτικός αλλά εντυπωσιακός τρόπος χρήσης προσαρμογέα WiFi.

Τροφοδοσία του κυκλώματος

Συνδέστε το καλώδιο Micro USB στην υποδοχή τροφοδοσίας του Raspberry Pi. Ενεργοποιήστε το και voila, είμαστε έτοιμοι!

Σύνδεση στην οθόνη

Μπορούμε είτε να έχουμε το καλώδιο HDMI συνδεδεμένο με μια οθόνη είτε να είμαστε λίγο πρωτοποριακοί για να φτιάξουμε το ακέφαλο Pi μας (χρησιμοποιώντας -SSH/PuTTY), κάτι που βοηθά στη μείωση του επιπλέον κόστους επειδή είμαστε κατά κάποιο τρόπο χομπίστες.

Όταν μια συνήθεια αρχίζει να κοστίζει, λέγεται χόμπι

Βήμα 3: Προγραμματισμός Raspberry Pi σε Java

Προγραμματισμός Raspberry Pi σε Java
Προγραμματισμός Raspberry Pi σε Java

Ο κώδικας Java για τον αισθητήρα Raspberry Pi και MPL3115A2. Είναι διαθέσιμο στο αποθετήριο Github.

Πριν προχωρήσετε στον κώδικα, βεβαιωθείτε ότι έχετε διαβάσει τις οδηγίες που δίνονται στο αρχείο Readme και ρυθμίστε το Raspberry Pi σύμφωνα με αυτό. Θα χρειαστεί μόνο μια στιγμή για να το κάνετε. Το υψόμετρο υπολογίζεται από την πίεση χρησιμοποιώντας την παρακάτω εξίσωση:

h = 44330.77 {1 - (p / p0) ^ 0.1902632} + OFF_H (Τιμή καταχώρισης)

όπου p0 = πίεση στάθμης θάλασσας (101326 Pa) και h είναι σε μέτρα. Το MPL3115A2 χρησιμοποιεί αυτήν την τιμή, επειδή ο καταχωρητής μετατόπισης ορίζεται ως 2 Pascals ανά LSB. Ο κώδικας είναι σαφώς μπροστά σας και είναι στην πιο απλή μορφή που μπορείτε να φανταστείτε και δεν πρέπει να έχετε κανένα πρόβλημα.

Μπορείτε επίσης να αντιγράψετε τον λειτουργικό κώδικα Java για αυτόν τον αισθητήρα από εδώ.

// Διανέμεται με άδεια ελεύθερης βούλησης.// Χρησιμοποιήστε το με όποιον τρόπο θέλετε, κέρδος ή δωρεάν, υπό την προϋπόθεση ότι ταιριάζει στις άδειες των σχετικών έργων του. // MPL3115A2 // Αυτός ο κώδικας έχει σχεδιαστεί για να λειτουργεί με το Mini Module MPL3115A2_I2CS I2C που διατίθεται από το ControlEverything.com. //

εισαγωγή 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, συσκευή υψομέτρου συσκευή. Εγγραφή (0x26, (byte) 0xB9); // Επιλογή καταχωρητή διαμόρφωσης δεδομένων // Γεγονός ετοιμότητας δεδομένων ενεργοποιημένο για υψόμετρο, πίεση, θερμοκρασία συσκευής. Εγγραφή (0x13, (byte) 0x07); // Επιλογή καταχωρητή ελέγχου // Ενεργή λειτουργία, OSR = 128, συσκευή υψομέτρου συσκευή. Εγγραφή (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, συσκευή λειτουργίας βαρόμετρου. Εγγραφή (0x26, (byte) 0x39); Thread.sleep (1000); // Διαβάστε 4 byte δεδομένων από τη διεύθυνση 0x00 (00) // status, pres msb1, pres msb, pres lsb device.read (0x00, data, 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: Η πρακτικότητα του κώδικα (εργασίας)

Η πρακτικότητα του κώδικα (εργασίας)
Η πρακτικότητα του κώδικα (εργασίας)

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

Βήμα 5: Εφαρμογές και δυνατότητες

Η κοινή χρήση του αισθητήρα MPL3115A2 Precision Altimeter είναι σε εφαρμογές όπως Map (Map Assist, Navigation), Magnetic Compass, Or GPS (GPS Dead Reckoning, GPS Enhancement For Emergency Services), High Accuracy Altimetry, Smartphones/Tablets, Personal Electronics Altimetry και Δορυφόροι (Εξοπλισμός Μετεωρολογικού Σταθμού/Πρόβλεψη).

Για π.χ. Χρησιμοποιώντας αυτόν τον αισθητήρα και το Rasp Pi, μπορείτε να δημιουργήσετε ένα Visηφιακό Οπτικό Υψόμετρο, το πιο σημαντικό κομμάτι εξοπλισμού αλεξιπτωτιστών, που μπορεί να μετρήσει υψόμετρο, πίεση αέρα και θερμοκρασία. Μπορείτε να προσθέσετε γάζα ανέμου και άλλους αισθητήρες, ώστε να κάνετε πιο ενδιαφέρουσα.

Βήμα 6: Συμπέρασμα

Δεδομένου ότι το πρόγραμμα είναι εκπληκτικά προσαρμόσιμο, υπάρχουν πολλοί ενδιαφέροντες τρόποι με τους οποίους μπορείτε να επεκτείνετε αυτό το έργο και να το κάνετε ακόμα καλύτερο. Για παράδειγμα, ένα υψόμετρο/παρεμβολόμετρο θα περιλάμβανε πολλά υψόμετρα τοποθετημένα σε ιστούς, τα οποία θα αποκτούσαν μετρήσεις ταυτόχρονα, παρέχοντας συνεχή κάλυψη ευρείας περιοχής ενός ή πολλών υψομέτρων. Έχουμε ένα ενδιαφέρον σεμινάριο βίντεο στο YouTube που μπορεί να σας βοηθήσει στην καλύτερη κατανόηση αυτού του έργου.

Συνιστάται: