Πίνακας περιεχομένων:
- Βήμα 1: Προετοιμάστε το Pi
- Βήμα 2: Συνδέστε τα όλα επάνω
- Βήμα 3: Δοκιμάστε το I2C σας
- Βήμα 4: Εγκαταστήστε το MySQL και το PhpMyAdmin
- Βήμα 5: Εγκαταστήστε μονάδες Python
- Βήμα 6: Κωδικοποιήστε για να συνδεθείτε στη βάση δεδομένων
- Βήμα 7: Κωδικοποίηση θερμοκρασίας εμφάνισης
- Βήμα 8: Περιεχόμενο με 3D εκτύπωση
- Βήμα 9: Δραστηριότητες
Βίντεο: Ρολόι καιρού Βαρόμετρο Raspberry Pi: 9 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:33
Σε αυτό το διδακτικό θα σας δείξω πώς να φτιάξετε ένα βασικό ρολόι θερμόμετρου / βαρόμετρου χρησιμοποιώντας ένα Raspberry Pi 2 με αισθητήρα BMP180 I2C που εμφανίζεται σε τετραψήφια οθόνη Adafruit 7 τμημάτων I2C. Το Pi χρησιμοποιεί επίσης μια μονάδα ρολογιού I2C πραγματικού χρόνου DS3231 για να κρατήσει χρόνο κατά την επανεκκίνηση του Pi.
Το ρολόι βγαίνει σε 4 στάδια για 5 δευτερόλεπτα το καθένα. Πρώτα δείχνει τη θερμοκρασία σε Κελσίου, στη συνέχεια σε Φαρενάιτ, στη συνέχεια τη βαρομετρική πίεση σε kPa *(περνάει αυτόν τον αριθμό προς τα αριστερά λόγω περιορισμένου αριθμού ψηφίων) και τέλος δείχνει μια τάση μεταβολής της βαρομετρικής πίεσης από τώρα έως τον μέσο όρο της προηγούμενη ώρα.
Αυτό που κάνει αυτό το ρολόι διαφορετικό από τα περισσότερα είναι ότι χρησιμοποιεί μια βάση δεδομένων MySQL στο Pi για να καταγράφει δεδομένα από το BMP180 κάθε λεπτό. Δεδομένου ότι η τρέχουσα βαρομετρική πίεση δεν είναι τόσο πολύτιμη όσο η κίνησή της προς τα πάνω ή προς τα κάτω για μια δεδομένη χρονική περίοδο, χρησιμοποιεί αυτήν τη βάση δεδομένων για να υπολογίσει ένα μέσο όρο για ένα διάστημα μεταξύ 2 ωρών και 1 ώρας πριν και το συγκρίνει με την τρέχουσα πίεση. Μια σημαντική αύξηση της βαρομετρικής πίεσης συνήθως υποδηλώνει βελτίωση των καιρικών συνθηκών έναντι μεγάλης πτώσης που θα μπορούσε να προειδοποιήσει για επικείμενη καταιγίδα.
Το ρολόι βρίσκεται σε ένα τρισδιάστατο τυπωμένο περίβλημα ABS με το BMP180 σε ένα εξαερισμένο πώμα στο πίσω μέρος του ρολογιού για να αποτρέψει τη θερμότητα που παράγεται από το Pi να επηρεάσει τις ενδείξεις θερμοκρασίας. Θα δώσω το σχηματικό Autodesk 123D Design εάν θέλετε να εκτυπώσετε το δικό σας.
Το ρολόι τροφοδοτείται με ένα τυπικό κονδυλώματος τοίχου USB και αντλεί συνολικά περίπου 450 mA.
Δεν θα αναφερθώ σε πάρα πολλές λεπτομέρειες σχετικά με τη βασική ρύθμιση του Pi και του I2C, καθώς αυτό έχει καλυφθεί σε πολλά άλλα εγχειρίδια με τα οποία θα παράσχω συνδέσμους.
Βήμα 1: Προετοιμάστε το Pi
Ρυθμίστε το Raspberry Pi - Λεπτομέρειες στο Raspberrypi.org
- Κατεβάστε και εγκαταστήστε την επιλεγμένη διανομή Linux σε κάρτα SD - χρησιμοποίησα το Raspbian
- Συνδέστε το pi και ξεκινήστε το
- Χρησιμοποίησα έναν προσαρμογέα micro WiFi για να συνδέσω το pi στο δρομολογητή μου καθώς το περίβλημα του ρολογιού αποκρύπτει τη θύρα Ethernet.
- Χρησιμοποίησα τη λειτουργία ακέφαλου όπου συνδέεστε στο pi χρησιμοποιώντας SSH, οπότε το μόνο που χρειάζεστε είναι να συνδέσετε το ρεύμα.
-
Διαμόρφωση του I2C στο Pi - Ακολούθησα αυτές τις οδηγίες στον ιστότοπο του Adafruit.
Βήμα 2: Συνδέστε τα όλα επάνω
Όλες οι μονάδες που χρησιμοποιώ σε αυτό το έργο είναι ανεκτές στα 5V και χρησιμοποιούν I2C, το οποίο είναι ένα πρωτόκολλο 2 καλωδίων που χρησιμοποιείται για τα IC για να επικοινωνούν μεταξύ τους, οπότε η καλωδίωση είναι αρκετά απλή. Συνδέστε όλα τα VCC σε 5V, όλα τα Grounds μαζί και όλες τις γραμμές SCA και SCL μαζί σύμφωνα με το σχηματικό σχήμα. Η δουλειά έγινε.
Βήμα 3: Δοκιμάστε το I2C σας
Μέρος της εγκατάστασης του I2C είναι η εκτέλεση του i2cdetect, το οποίο θα πρέπει να μοιάζει με τη συνημμένη εικόνα, εάν όλα είναι συνδεδεμένα σωστά.
Παρακάτω είναι οι αντίστοιχες διευθύνσεις
- 0x70 = 7 Εμφάνιση τμήματος
- 0x77 = BMP180 Αισθητήρας θερμόμετρου / βαρόμετρου
- 0x68 = Ενότητα ρολογιού πραγματικού χρόνου DS3231
- 0x57 = DS3231 επί του σκάφους EEPROM για αποθήκευση δεδομένων συναγερμού.
Βήμα 4: Εγκαταστήστε το MySQL και το PhpMyAdmin
Η εγκατάσταση του mySQL είναι αρκετά απλή αν ακολουθήσετε το σεμινάριο εδώ
sudo apt-get install mysql-server
Εγκατέστησα επίσης το phpMyAdmin που είναι ένας ιστότοπος που τρέχει σε Apache τον οποίο μπορείτε να χρησιμοποιήσετε για να δημιουργήσετε και να διαχειριστείτε βάσεις δεδομένων mySQL. Φροντιστήριο εδώ
sudo apt-get install phpmyadmin
Μόλις εγκατασταθεί, δημιούργησα μια βάση δεδομένων που ονομάζεται BP180 χρησιμοποιώντας phpMyAdmin με τη δομή σύμφωνα με την εικόνα.
Χρησιμοποιώ επίσης μια ενότητα python που ονομάζεται mysqlDB την οποία μπορείτε να εγκαταστήσετε χρησιμοποιώντας
sudo apt-get install python-mysqldb
Βήμα 5: Εγκαταστήστε μονάδες Python
Κατεβάστε και εγκαταστήστε τις παρακάτω μονάδες python που θα χρησιμοποιήσετε για να συνδεθείτε με τους αισθητήρες.
- Ενότητα Adafruit_BMP085
- Μονάδα SDL_DS3231
- Ενότητα Adafruit 7 Segment
Βήμα 6: Κωδικοποιήστε για να συνδεθείτε στη βάση δεδομένων
Το παρακάτω απόσπασμα κώδικα χρησιμοποιείται για την καταγραφή της θερμοκρασίας και της βαρομετρικής πίεσης και καλείται από ένα σενάριο cron (προγραμματισμένες εργασίες Linux) που εκτελείται κάθε 5 λεπτά. Για να μάθετε πώς να χρησιμοποιείτε το crond, δείτε αυτό το σεμινάριο.
ΣΗΜΕΙΩΣΗ! Μην ενοχλείτε να απορρίπτω τις ικανότητές μου για κωδικοποίηση, δεν είμαι προγραμματιστής, οπότε ναι πιθανότατα υπάρχουν ένα εκατομμύριο καλύτεροι, γρηγορότεροι, πιο ομαλοί, πιο καθαροί τρόποι για να το κάνετε αυτό
Θα παρατηρήσετε στον κωδικό ότι η θερμοκρασία μειώνεται κατά 7 μοίρες που ισοδυναμεί με τη θερμότητα που παράγεται από το Raspberry Pi ακόμη και με το BMP180 τοποθετημένο στο εξωτερικό του περιβλήματος. Όταν το είχα αρχικά μέσα στο περίβλημα ήταν περίπου 15 μοίρες πιο ζεστό από το περιβάλλον. Φαίνεται να είναι αρκετά γραμμικό, αλλά δεν είχα την ευκαιρία να δοκιμάσω κανένα άκρο. Η ανατροφοδότηση των εμπειριών σας θα εκτιμηθεί.
Βήμα 7: Κωδικοποίηση θερμοκρασίας εμφάνισης
Αυτός ο κωδικός καλείται να κάνει κύκλο στην οθόνη σύμφωνα με την εισαγωγή.
Και πάλι, δεν είμαι προγραμματιστής, οπότε ο κώδικας είναι πραγματικά τραχύς, αλλά λειτουργεί
Βήμα 8: Περιεχόμενο με 3D εκτύπωση
Ακολουθεί ο σχεδιασμός του περιβλήματος. Αυτό ήταν αρκετά προκλητικό καθώς το σχήμα είναι επιρρεπές σε στρέβλωση επειδή τμήματα του εξωτερικού κελύφους έχουν πάχος μόνο 2 mm. Πρώτα σχεδίασα χλευαστικά στοιχεία του Pi και όλων των τμημάτων και στη συνέχεια σχεδίασα το περίβλημα γύρω από αυτό. Η εκτύπωση κράτησε περίπου 7 ώρες στο RapMan 3.2 μου (που είναι αρκετά αργός εκτυπωτής) σε βάθος 0,25 στρώσεων.
Το συνημμένο σχήμα γίνεται στο Autodesk 123D Design το οποίο νομίζω ότι είναι ένα φανταστικό κομμάτι δωρεάν λογισμικού.
Σημειώστε ότι μερικές από τις τρύπες όπως αυτές που απαιτούνται για την τοποθέτηση του Pi δεν είναι στο σχεδιασμό, καθώς είναι καλύτερο να τις ανοίξετε αργότερα, σε περίπτωση που η εκτύπωση σας στρεβλώσει λίγο. Σταθερό χέρι ένα τρυπάνι 3 mm είναι το μόνο που χρειάζεστε. Σημειώστε το βάθος στο κομμάτι με κάποια ταινία κάλυψης για να μην περάσετε κατά λάθος κατευθείαν από την εκτύπωση 7 ωρών όπως έκανα εγώ.
Βήμα 9: Δραστηριότητες
- Το ρολόι πραγματικού χρόνου ήταν μια προσθήκη μετά την εκτύπωση του περιβλήματος για 5η φορά, έτσι είναι επί του παρόντος ζεστό κολλημένο στο πλάι του περιβλήματος που δεν φαίνεται καλό, έτσι θα ήθελα να ξανακάνω το σχέδιο και να προσθέσω μια θέση για αυτό.
- Η φωτεινότητα της οθόνης των 7 τμημάτων έχει ρυθμιστεί προς το παρόν στην πιο ελαφριά, η οποία δεν είναι η βέλτιστη για συνθήκες ισχυρού φωτισμού. Θα ήθελα να προσθέσω μια αντίσταση φωτογραφιών στην κορυφή του περιβλήματος και να προσαρμόσω τη φωτεινότητα των 7 τμημάτων με βάση τις συνθήκες φωτισμού περιβάλλοντος.
- Υπάρχουν μερικά μικρά ζητήματα σχεδιασμού με τη ρωγμή της βάσης, τα οποία επίσης θα διορθωθούν.
- Οποιεσδήποτε ιδέες είναι ευπρόσδεκτες.
Ελπίζω να σας άρεσε αυτό το διδακτικό και το βρήκατε αρκετά εμπνευστικό για να ξεκινήσετε. Η ιδέα είναι να παρέχετε μια πλατφόρμα που μπορείτε να χρησιμοποιήσετε για να προσθέσετε τις δικές σας ιδέες. Καλα να περνατε!
Συνιστάται:
Εμφάνιση καιρού πρόβλεψης καιρού Art Deco: 9 βήματα (με εικόνες)
Ένδειξη πρόβλεψης καιρού Art Deco: Γεια σας φίλοι, σε αυτό το Instructable θα δούμε ζεστό για να φτιάξουμε αυτήν την οθόνη Weather Forecast. Χρησιμοποιεί μίνι πίνακα Wemos D1 μαζί με έγχρωμη οθόνη TFT 1,8”για την εμφάνιση της πρόγνωσης του καιρού. Επίσης σχεδίασα και εκτύπωσα τρισδιάστατα ένα περίβλημα για
Ρολόι παλίρροιας και καιρού: 9 βήματα (με εικόνες)
Ρολόι παλίρροιας και καιρού: Αν και μπορείτε να αγοράσετε αναλογικά ρολόγια παλίρροιας που έχουν ένα μόνο χέρι που υποδεικνύει εάν η παλίρροια είναι υψηλή ή χαμηλή ή κάπου ενδιάμεσα, αυτό που ήθελα ήταν κάτι που θα μου έλεγε σε ποια ώρα θα είναι η χαμηλή παλίρροια. Wantedθελα κάτι που μπορούσα να ρίξω μια ματιά σε
Ρολόι πρόβλεψης καιρού με χρήση του Old Alarm και του Arduino: 13 βήματα (με εικόνες)
Weather Forecast Clock Using Old Alarm and Arduino: Είχα ένα σπασμένο ξυπνητήρι και βρήκα μια ιδέα να το μετατρέψω σε ρολόι και σταθμό πρόγνωσης καιρού. Για αυτό το έργο θα χρειαστείτε: Παλαιό κυκλικό ξυπνητήρι Arduino Nano BME280 μονάδα αισθητήρα ( θερμοκρασία, υγρασία, πίεση) Οθόνη LCD
ESP8266 Ρολόι καιρού: 6 βήματα (με εικόνες)
ESP8266 Καιρός Ρολόι: Είμαι πολύ περήφανος για την άφιξή σας και καλώς ήρθατε
ESP8266 Βασισμένο ρολόι δικτύου και παρακολούθηση καιρού: 3 βήματα (με εικόνες)
ESP8266 Βασισμένο ρολόι δικτύου και παρακολούθηση καιρού: Σύντομο και απλό έργο Σαββατοκύριακου με ESP8266 και οθόνη OLED 0,96 "128x64. Η συσκευή είναι ρολόι δικτύου, δηλαδή λαμβάνει χρόνο από διακομιστές ntp. Εμφανίζει επίσης πληροφορίες για τον καιρό με εικονίδια από το openweathermap.org Απαιτούμενα μέρη: 1. Ενότητα ESP8266 (A