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

Ρολόι καιρού Βαρόμετρο Raspberry Pi: 9 βήματα (με εικόνες)
Ρολόι καιρού Βαρόμετρο Raspberry Pi: 9 βήματα (με εικόνες)

Βίντεο: Ρολόι καιρού Βαρόμετρο Raspberry Pi: 9 βήματα (με εικόνες)

Βίντεο: Ρολόι καιρού Βαρόμετρο Raspberry Pi: 9 βήματα (με εικόνες)
Βίντεο: ΤΟ ΡΟΛΟΪ ΠΟΥ ΦΟΡΩ #2 2024, Νοέμβριος
Anonim
Καιρός Ρολόι Βαρόμετρο Raspberry Pi
Καιρός Ρολόι Βαρόμετρο Raspberry Pi

Σε αυτό το διδακτικό θα σας δείξω πώς να φτιάξετε ένα βασικό ρολόι θερμόμετρου / βαρόμετρου χρησιμοποιώντας ένα 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

Προετοιμάστε το Pi
Προετοιμάστε το Pi

Ρυθμίστε το Raspberry Pi - Λεπτομέρειες στο Raspberrypi.org

  1. Κατεβάστε και εγκαταστήστε την επιλεγμένη διανομή Linux σε κάρτα SD - χρησιμοποίησα το Raspbian
  2. Συνδέστε το pi και ξεκινήστε το
  3. Χρησιμοποίησα έναν προσαρμογέα micro WiFi για να συνδέσω το pi στο δρομολογητή μου καθώς το περίβλημα του ρολογιού αποκρύπτει τη θύρα Ethernet.
  4. Χρησιμοποίησα τη λειτουργία ακέφαλου όπου συνδέεστε στο pi χρησιμοποιώντας SSH, οπότε το μόνο που χρειάζεστε είναι να συνδέσετε το ρεύμα.
  5. Διαμόρφωση του I2C στο Pi - Ακολούθησα αυτές τις οδηγίες στον ιστότοπο του Adafruit.

Βήμα 2: Συνδέστε τα όλα επάνω

Wire It All Up
Wire It All Up

Όλες οι μονάδες που χρησιμοποιώ σε αυτό το έργο είναι ανεκτές στα 5V και χρησιμοποιούν I2C, το οποίο είναι ένα πρωτόκολλο 2 καλωδίων που χρησιμοποιείται για τα IC για να επικοινωνούν μεταξύ τους, οπότε η καλωδίωση είναι αρκετά απλή. Συνδέστε όλα τα VCC σε 5V, όλα τα Grounds μαζί και όλες τις γραμμές SCA και SCL μαζί σύμφωνα με το σχηματικό σχήμα. Η δουλειά έγινε.

Βήμα 3: Δοκιμάστε το I2C σας

Δοκιμάστε το I2C σας
Δοκιμάστε το I2C σας

Μέρος της εγκατάστασης του I2C είναι η εκτέλεση του i2cdetect, το οποίο θα πρέπει να μοιάζει με τη συνημμένη εικόνα, εάν όλα είναι συνδεδεμένα σωστά.

Παρακάτω είναι οι αντίστοιχες διευθύνσεις

  1. 0x70 = 7 Εμφάνιση τμήματος
  2. 0x77 = BMP180 Αισθητήρας θερμόμετρου / βαρόμετρου
  3. 0x68 = Ενότητα ρολογιού πραγματικού χρόνου DS3231
  4. 0x57 = DS3231 επί του σκάφους EEPROM για αποθήκευση δεδομένων συναγερμού.

Βήμα 4: Εγκαταστήστε το MySQL και το PhpMyAdmin

Εγκαταστήστε το MySQL και το PhpMyAdmin
Εγκαταστήστε το 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 που θα χρησιμοποιήσετε για να συνδεθείτε με τους αισθητήρες.

  1. Ενότητα Adafruit_BMP085
  2. Μονάδα SDL_DS3231
  3. Ενότητα Adafruit 7 Segment

Βήμα 6: Κωδικοποιήστε για να συνδεθείτε στη βάση δεδομένων

Το παρακάτω απόσπασμα κώδικα χρησιμοποιείται για την καταγραφή της θερμοκρασίας και της βαρομετρικής πίεσης και καλείται από ένα σενάριο cron (προγραμματισμένες εργασίες Linux) που εκτελείται κάθε 5 λεπτά. Για να μάθετε πώς να χρησιμοποιείτε το crond, δείτε αυτό το σεμινάριο.

ΣΗΜΕΙΩΣΗ! Μην ενοχλείτε να απορρίπτω τις ικανότητές μου για κωδικοποίηση, δεν είμαι προγραμματιστής, οπότε ναι πιθανότατα υπάρχουν ένα εκατομμύριο καλύτεροι, γρηγορότεροι, πιο ομαλοί, πιο καθαροί τρόποι για να το κάνετε αυτό

Θα παρατηρήσετε στον κωδικό ότι η θερμοκρασία μειώνεται κατά 7 μοίρες που ισοδυναμεί με τη θερμότητα που παράγεται από το Raspberry Pi ακόμη και με το BMP180 τοποθετημένο στο εξωτερικό του περιβλήματος. Όταν το είχα αρχικά μέσα στο περίβλημα ήταν περίπου 15 μοίρες πιο ζεστό από το περιβάλλον. Φαίνεται να είναι αρκετά γραμμικό, αλλά δεν είχα την ευκαιρία να δοκιμάσω κανένα άκρο. Η ανατροφοδότηση των εμπειριών σας θα εκτιμηθεί.

Βήμα 7: Κωδικοποίηση θερμοκρασίας εμφάνισης

Κωδικός για εμφάνιση θερμοκρασίας
Κωδικός για εμφάνιση θερμοκρασίας
Κωδικός για εμφάνιση θερμοκρασίας
Κωδικός για εμφάνιση θερμοκρασίας
Κωδικός για εμφάνιση θερμοκρασίας
Κωδικός για εμφάνιση θερμοκρασίας
Κωδικός για εμφάνιση θερμοκρασίας
Κωδικός για εμφάνιση θερμοκρασίας

Αυτός ο κωδικός καλείται να κάνει κύκλο στην οθόνη σύμφωνα με την εισαγωγή.

Και πάλι, δεν είμαι προγραμματιστής, οπότε ο κώδικας είναι πραγματικά τραχύς, αλλά λειτουργεί

Βήμα 8: Περιεχόμενο με 3D εκτύπωση

3D εκτυπωμένο περίβλημα
3D εκτυπωμένο περίβλημα
3D εκτυπωμένο περίβλημα
3D εκτυπωμένο περίβλημα
3D εκτυπωμένο περίβλημα
3D εκτυπωμένο περίβλημα
3D εκτυπωμένο περίβλημα
3D εκτυπωμένο περίβλημα

Ακολουθεί ο σχεδιασμός του περιβλήματος. Αυτό ήταν αρκετά προκλητικό καθώς το σχήμα είναι επιρρεπές σε στρέβλωση επειδή τμήματα του εξωτερικού κελύφους έχουν πάχος μόνο 2 mm. Πρώτα σχεδίασα χλευαστικά στοιχεία του Pi και όλων των τμημάτων και στη συνέχεια σχεδίασα το περίβλημα γύρω από αυτό. Η εκτύπωση κράτησε περίπου 7 ώρες στο RapMan 3.2 μου (που είναι αρκετά αργός εκτυπωτής) σε βάθος 0,25 στρώσεων.

Το συνημμένο σχήμα γίνεται στο Autodesk 123D Design το οποίο νομίζω ότι είναι ένα φανταστικό κομμάτι δωρεάν λογισμικού.

Σημειώστε ότι μερικές από τις τρύπες όπως αυτές που απαιτούνται για την τοποθέτηση του Pi δεν είναι στο σχεδιασμό, καθώς είναι καλύτερο να τις ανοίξετε αργότερα, σε περίπτωση που η εκτύπωση σας στρεβλώσει λίγο. Σταθερό χέρι ένα τρυπάνι 3 mm είναι το μόνο που χρειάζεστε. Σημειώστε το βάθος στο κομμάτι με κάποια ταινία κάλυψης για να μην περάσετε κατά λάθος κατευθείαν από την εκτύπωση 7 ωρών όπως έκανα εγώ.

Βήμα 9: Δραστηριότητες

Πραγματα να κανεις
Πραγματα να κανεις
  1. Το ρολόι πραγματικού χρόνου ήταν μια προσθήκη μετά την εκτύπωση του περιβλήματος για 5η φορά, έτσι είναι επί του παρόντος ζεστό κολλημένο στο πλάι του περιβλήματος που δεν φαίνεται καλό, έτσι θα ήθελα να ξανακάνω το σχέδιο και να προσθέσω μια θέση για αυτό.
  2. Η φωτεινότητα της οθόνης των 7 τμημάτων έχει ρυθμιστεί προς το παρόν στην πιο ελαφριά, η οποία δεν είναι η βέλτιστη για συνθήκες ισχυρού φωτισμού. Θα ήθελα να προσθέσω μια αντίσταση φωτογραφιών στην κορυφή του περιβλήματος και να προσαρμόσω τη φωτεινότητα των 7 τμημάτων με βάση τις συνθήκες φωτισμού περιβάλλοντος.
  3. Υπάρχουν μερικά μικρά ζητήματα σχεδιασμού με τη ρωγμή της βάσης, τα οποία επίσης θα διορθωθούν.
  4. Οποιεσδήποτε ιδέες είναι ευπρόσδεκτες.

Ελπίζω να σας άρεσε αυτό το διδακτικό και το βρήκατε αρκετά εμπνευστικό για να ξεκινήσετε. Η ιδέα είναι να παρέχετε μια πλατφόρμα που μπορείτε να χρησιμοποιήσετε για να προσθέσετε τις δικές σας ιδέες. Καλα να περνατε!

Συνιστάται: