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

Arduino Altimeter Using BMP and SPI or I2C OLED: 5 Steps
Arduino Altimeter Using BMP and SPI or I2C OLED: 5 Steps

Βίντεο: Arduino Altimeter Using BMP and SPI or I2C OLED: 5 Steps

Βίντεο: Arduino Altimeter Using BMP and SPI or I2C OLED: 5 Steps
Βίντεο: MS5611 Barometer/Altimeter Tutorial with Arduino || BME280 vs MS5611 Comparison 2024, Ιούλιος
Anonim
Υψόμετρο Arduino με χρήση BMP και SPI ή I2C OLED
Υψόμετρο Arduino με χρήση BMP και SPI ή I2C OLED

Για πολύ καιρό έψαχνα για υψόμετρο και θερμοκρασία χρησιμοποιώντας έναν μόνο αισθητήρα και τον εμφάνιζα σε OLED με βάση SPI. Καθώς δεν μπορούσα να βρω κάτι ακριβές, σκέφτηκα ότι θα φτιάξω τη δική μου χρησιμοποιώντας τη βιβλιοθήκη U8glib. Υπάρχει ένα σεμινάριο στο youtube αλλά πραγματικά μισώ τα σεμινάρια βίντεο, προτιμώ κείμενα με απλές οδηγίες και χωρίς εμπορικούς συνδέσμους.

Βήμα 1: Πρώτα πράγματα πρώτα

Πριν κάνετε αυτό το έργο, σας συνιστώ ανεπιφύλακτα να ολοκληρώσετε το σεμινάριο SSD1306/OLED για I2C ή SPI (όποιο θέλετε να χρησιμοποιήσετε). Αυτό θα διασφαλίσει ότι γνωρίζετε πώς να συνδέετε/συνδέετε την οθόνη σας, καθώς και ότι η οθόνη σας λειτουργεί. Κάντε το σεμινάριο adafruit ή/και παραδείγματα u8glib. Θα χρησιμοποιούμε το u8glib εδώ, έτσι συνιστάται για προχωρημένους χρήστες.

Βήμα 2: Απαραίτητα Hardwares

Απαραίτητα Hardwares
Απαραίτητα Hardwares

1. Arduino UNO ή Nano ή παρόμοια.

2. Αισθητήρας βαρομετρικής πίεσης BMP085 ή BMP180.

3. SSD1306 I2C ή SPI Bus (Διαμορφώσιμο σε σκίτσο).

4. Καλώδια βραχυκυκλωτήρων και πλάκα ψωμιού ή πίνακας vero για συνδέσεις.

Βήμα 3: Βιβλιοθήκες Arduino IDE για μεταγλώττιση

1. Σύρμα.η

2. Adafruit_BMP085.h (θα λειτουργήσει και για το BMP180)

3. U8glib.h

Βήμα 4: Συνδέσεις

Οι συνδέσεις είναι όλες ίδιες τόσο για την οθόνη I2C όσο και για την οθόνη SPI OLED. Μόνο η σύνδεση με την οθόνη θα είναι διαφορετική.

1. BMP προς Arduino:

VCC> 3,3V

GND> Ground

SCL> A5/SCL

SDA> A4/SDA

SCK = 12, MOSI = 11, CS = 10, A0 = 9, Reset = 13

2. SPI OLED στο Arduino

VDD> 5V

GND> Ground

SCK/D0> D12 (Digitalηφιακό 12)

SDA/D1/Mosi> D11

CS/Chip Select> D10

A0/DC> D9

ΑΠΕ/Επαναφορά> D13

(Εάν το SPI OLED σας δεν έχει Επαναφορά καρφίτσα, απλώς αφαιρέστε την καρτέλα επαναφοράς και επαναφοράς από την οθόνη σκίτσου, επιλέξτε τις παραμέτρους)

3. I2C OLED

Όπως και η καλωδίωση BMP, χρησιμοποιούν τις ίδιες θύρες και τύπο διαύλου.

Βήμα 5: Μεταφόρτωση σκίτσων

Αρκετά απλή. Απλώς κατεβάστε το αρχείο zip και ανοίξτε το στο Arduino IDE. Όλα έχουν ρυθμιστεί στο σκίτσο. Οι χρήστες SPI OLED μπορούν απλώς να ανεβάσουν το σκίτσο χωρίς καμία επεξεργασία και θα λειτουργήσει. Για χρήστες OLED I2C, απλώς αποσυνδέστε το εμφανιζόμενο όνομα/επιλογή από την επιλογή Display Select του σκίτσου, και σχολιάστε και κλείστε το μοντέλο/παράμετρο Display SPI για να απενεργοποιήσετε το SPI OLED.

Παράμετρος οθόνης SPI:

// U8GLIB_SSD1306_128X64 u8g (12, 11, 10, 9, 13); // SW SPI Com: SCK = 12, MOSI = 11, CS = 10, A0 = 9, Reset = 13

Παράμετρος οθόνης I2C:

// U8GLIB_SSD1306_128X64 u8g (U8G_I2C_OPT_NO_ACK); // Οθόνη που δεν στέλνει AC

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

Συμβουλές:

1. Οι αισθητήρες BMP είναι ευαίσθητοι στον άνεμο, τη θερμότητα και τα φώτα. Φροντίστε να το καλύψετε, τα καλύτερα αποτελέσματα επιτυγχάνονται με την τοποθέτηση αφρού με σωστό εξαερισμό. Τα πράγματα όπως η ταινία πάπιας θα λειτουργήσουν επίσης αλλά δεν θα είναι ακριβή.

2. Η BMP χρησιμοποιεί συνήθως 3.3V εκτός αν ο κατασκευαστής σας λέει διαφορετικά. Το OLED μπορεί να λειτουργεί από 3.3v-5.5V (συνιστάται 4-5V)

3. Συνιστάται ανεπιφύλακτα να τοποθετήσετε τα πάντα στο breadboard.

4. Εάν είστε νέοι στο OLED, δοκιμάστε πρώτα απλά πράγματα όπως κείμενο και εικονικά buffer για να βεβαιωθείτε ότι η οθόνη σας λειτουργεί καθώς και οι συνδέσεις σας είναι ακριβείς.

Συνιστάται: