- Απαιτούμενα στοιχεία
- Ενότητα αισθητήρα πίεσης BMP280:
- Διάγραμμα κυκλώματος για διασύνδεση BMP280 με Arduino:
- Πρόγραμμα Arduino για διασύνδεση BMP280 με Arduino:
- Εργασία του έργου διασύνδεσης αισθητήρα πίεσης Arduino BMP280
Αν θέλετε να δημιουργήσετε το δικό σας σύστημα παρακολούθησης της θερμοκρασίας ή να μετρήσετε το υψόμετρο του drone σας ή απλά να μετρήσετε την ατμοσφαιρική πίεση στην περιοχή σας, τότε ένα από τα καλύτερα στοιχεία που μπορείτε να χρησιμοποιήσετε στο έργο σας είναι η μονάδα αισθητήρα πίεσης BMP280. Το BMP280 είναι ένας απόλυτος αισθητήρας παρακολούθησης πίεσης και θερμοκρασίας που είναι η αναβαθμισμένη έκδοση των αισθητήρων BMP085, BMP180, BMP183. Γιατί ονομάζεται αναβαθμισμένη έκδοση; Θα συζητηθεί στις ακόλουθες ενότητες. Έχουμε ήδη χρησιμοποιήσει την παλαιότερη έκδοση BMP180 με το Arduino σε ένα από τα προηγούμενα μαθήματά μας.
Η μονάδα αισθητήρα BMP280 μπορεί να χρησιμοποιηθεί μαζί με μικροελεγκτές όπως Arduino, PIC, AVR, κ.λπ. Για αυτό το έργο πρόκειται να χρησιμοποιήσουμε το Arduino Uno με BMP280 μαζί με μια μονάδα οθόνης LCD 16x2, για να εμφανίσουμε τιμές θερμοκρασίας και πίεσης. Πριν από τη διασύνδεση του BMP280 με το Arduino, πρέπει να κατεβάσετε τη βιβλιοθήκη BMP280 Arduino, η οποία αναπτύχθηκε από την Adafruit. Κάντε κλικ σε αυτόν τον σύνδεσμο βιβλιοθήκης Adafruit BMP280 για να ανοίξετε την αντίστοιχη σελίδα Github και να προσθέσετε το αρχείο κεφαλίδας στο Arduino IDE.
Απαιτούμενα στοιχεία
- Arduino
- BMP280
- Σύνδεση καλωδίων
- Πίνακας ψωμιού
- LCD - 16x2
Ενότητα αισθητήρα πίεσης BMP280:
Η μονάδα αισθητήρα BMP280 λειτουργεί με την ελάχιστη τάση (VDD) 1,71V, ενώ οι προηγούμενες μονάδες αισθητήρα έκδοσης λειτουργούν σε 1.8V (VDD). Όσον αφορά την τρέχουσα κατανάλωση, το BMP280 καταναλώνει 2,7uA, ενώ το BMP180 καταναλώνει 12uA, και το BMP183 και το BMP085 καταναλώνουν 5uA το καθένα. Το BMP280 υποστηρίζει επίσης νέες λειτουργίες φίλτρου. Η μονάδα αισθητήρα BMP280 υποστηρίζει πρωτόκολλα I2c και SPI, ενώ ο υπόλοιπος αισθητήρας υποστηρίζει είτε I2c είτε SPI. Η μονάδα αισθητήρα BMP280 έχει ακρίβεια ± 0,12 hPa, το οποίο ισοδυναμεί με διαφορά ύψους ± 1 m. Λόγω αυτών των βασικών χαρακτηριστικών, χρησιμοποιείται κυρίως σε διάφορες εφαρμογές. Ο αισθητήρας BMP αποτελείται από ένα στοιχείο ανίχνευσης πίεσης, ένα στοιχείο ανίχνευσης υγρασίας και ένα στοιχείο ανίχνευσης θερμοκρασίας τα οποία συνδέονται περαιτέρω με το μπροστινό άκρο πίεσης, το μπροστινό άκρο υγρασίας και το μπροστινό άκρο θερμοκρασίας. Αυτά τα μπροστινά σημεία IC είναι αναλογικοί ενισχυτές ευαισθησίας που χρησιμοποιούνται στην ενίσχυση μικρών σημάτων. Η έξοδος αυτών των αναλογικών IC front-end τροφοδοτείται στο ADC ως σήμα εισόδου. Σε αυτό οι αναλογικές τιμές μετατρέπονται σε ψηφιακή τάση και αυτή η τάση τροφοδοτείται στα λογικά κυκλώματα για περαιτέρω διασύνδεση με τον εξωτερικό κόσμο.
Η μονάδα αισθητήρα BMP280 αποτελείται από τρεις τρόπους λειτουργίας ύπνου, αναγκαστικής λειτουργίας και Κανονικής λειτουργίας. Σε κατάσταση αναστολής λειτουργίας, δεν πραγματοποιούνται μετρήσεις και η κατανάλωση ισχύος είναι στο ελάχιστο. Στην αναγκαστική λειτουργία, πραγματοποιείται μία μόνο μέτρηση σύμφωνα με τις επιλεγμένες επιλογές μέτρησης και φίλτρου. Η κανονική λειτουργία περιστρέφεται συνεχώς μεταξύ της μέτρησης και της περιόδου αναμονής και η χρονική περίοδος των κύκλων καθορίζεται από την Tstandby. Το ρεύμα σε κατάσταση αναμονής είναι ελαφρώς υψηλότερο από τη λειτουργία αναμονής.
Διάγραμμα κυκλώματος για διασύνδεση BMP280 με Arduino:
Το διάγραμμα κυκλώματος για τη σύνδεση του Arduino με τον αισθητήρα BMP280 και την οθόνη LCD φαίνεται παρακάτω. Εάν είστε εντελώς νέοι στο Arduino και το LCD, τότε μπορείτε να δείτε αυτό το σεμινάριο LCD Arduino για να κατανοήσετε πώς να χρησιμοποιείτε το Arduino με οθόνες LCD.
Οι ακίδες VCC και GND του αισθητήρα συνδέονται με τους ακροδέκτες 3v3 και GND του Arduino. Οι ακροδέκτες SCL και SDA του αισθητήρα συνδέονται με τα A5 και A4 της πλακέτας Arduino. Οι συνδέσεις LCD έχουν ως εξής
Όνομα Pin LCD |
Arduino Pin |
VSS και RW |
GND |
RS |
Δ9 |
μι |
Δ8 |
D4, D5, D6, D7 |
D5, D4, D3, D2 |
Πρόγραμμα Arduino για διασύνδεση BMP280 με Arduino:
Ο πλήρης κωδικός BMP280 Arduino βρίσκεται στο κάτω μέρος αυτής της σελίδας, ο οποίος μπορεί να φορτωθεί απευθείας στον πίνακα Arduino. Η εξήγηση του ίδιου δίνεται παρακάτω
Αυτές οι βιβλιοθήκες περιλαμβάνονται για την ενεργοποίηση των ειδικών λειτουργιών. Τα αρχεία #include header μπορούμε να διαβάσουμε απευθείας τις τιμές που προέρχονται από τον αισθητήρα. Το # include
#περιλαμβάνω
Δημιουργία αντικειμένου BMP για Adafruit_BMP280. Δημιουργείται ένα αρχείο αντικειμένου για πρόσβαση σε ειδικές λειτουργίες.
Adafruit_BMP280 bmp; // I2C
Ρύθμιση των ακίδων του Arduino για επικοινωνία με την οθόνη LCD. Η χρήση αυτών των καρφιτσών θα μεταφερθεί.
LiquidCrystal LCD (9, 8, 5, 4, 3, 2);
Αρχικοποίηση της LCD και της σειριακής επικοινωνίας.
άκυρη ρύθμιση () {lcd.begin (16,2); Serial.begin (9600); Serial.println (F ("δοκιμή BMP280")); lcd.print ("Καλώς ήλθατε στο"); lcd.setCursor (0,1); lcd.print ("CIRCUIT DIGEST"); καθυστέρηση (1000) lcd.clear (); if (! bmp.begin ()) {Serial.println (F ("Δεν ήταν δυνατή η εύρεση έγκυρου αισθητήρα BMP280, ελέγξτε την καλωδίωση!")); ενώ (1); }
Αυτή η συνάρτηση λειτουργεί όταν η προετοιμασία του αντικειμένου bmp αποτύχει.
/ * Προεπιλεγμένες ρυθμίσεις από το φύλλο δεδομένων. δειγματοληψία * / Adafruit_BMP280:: STANDBY_MS_500); /* Χρόνος αναμονής. * /}
Αυτό το μέρος του κώδικα εκτυπώνει τη θερμοκρασία στη σειριακή οθόνη και προορίζεται για εντοπισμό σφαλμάτων.
κενός βρόχος () {Serial.print (F ("Temperature =")); Serial.print (bmp.readTemperature ()); Serial.println ("* C");
Η συνάρτηση bmp.readPressure και bmp.readTemprature χρησιμοποιούνται για την επίκληση ειδικών λειτουργιών και την επιστροφή των τιμών θερμοκρασίας και πίεσης.
lcd.print (bmp.readTemperature ()); lcd.print (bmp.readPressure ());
Εργασία του έργου διασύνδεσης αισθητήρα πίεσης Arduino BMP280
Οι συναρτήσεις bmp.readTemprature () και bmp.readPressure () χρησιμοποιούνται για την επιστροφή των τιμών θερμοκρασίας και πίεσης. Αυτές οι λειτουργίες είναι μια ομάδα δηλώσεων που εκτελούν μια ειδική εργασία, στην περίπτωσή μας για την επιστροφή αρχείων θερμοκρασίας και πίεσης. Αυτές οι συναρτήσεις ενεργοποιούνται χρησιμοποιώντας συναρτήσεις bmp.readTemprature () και bmp.readPressure () . Το lcd.setCursor ρυθμίζει τον κέρσορα της οθόνης LCD στην απαιτούμενη θέση στην οθόνη. Το lcd.print Η εντολή εκτυπώνει τα δεδομένα από τη θέση που έχει ορίσει ο προγραμματιστής. Εάν δεν έχει οριστεί θέση για την οθόνη LCD από προεπιλογή, παίρνει (0,0) ως την αρχική θέση και συνεχή εκτύπωση των δεδομένων. Τα επόμενα δεδομένα παίρνουν τη θέση της επόμενης στήλης και η διαδικασία συνεχίζεται μέχρι να φτάσει στο τέλος της σειράς και να μετακινηθεί στην επόμενη σειρά.
Το BMP280 μπορεί να χρησιμοποιηθεί σε παιχνίδια που φέρουν, κινητά τηλέφωνα, tablet, υπολογιστές, συσκευές GPS, φορητές συσκευές υγειονομικής περίθαλψης, μετεωρολογικούς σταθμούς σπιτιού κ.λπ. το Arduino. Η πλήρης εργασία μπορεί επίσης να βρεθεί στο παρακάτω βίντεο, ελπίζω να απολαύσατε αυτό το σεμινάριο BMP280 Arduino και να μάθετε κάτι χρήσιμο. Εάν έχετε οποιαδήποτε ερώτηση αφήστε τα στην παρακάτω ενότητα σχολίων ή χρησιμοποιήστε τα φόρουμ για άλλες τεχνικές ερωτήσεις.