Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Πίσω στα τέλη Φεβρουαρίου είδα αυτήν την ανάρτηση στον ιστότοπο Raspberry Pi.
www.raspberrypi.org/school-weather-station-…
Είχαν δημιουργήσει μετεωρολογικούς σταθμούς Raspberry Pi για σχολεία. Totallyθελα εντελώς ένα! Αλλά εκείνη τη στιγμή (και πιστεύω ότι ακόμα γράφω αυτό) δεν είναι δημόσια διαθέσιμα (πρέπει να είστε σε μια επιλεγμένη ομάδα δοκιμαστών). Λοιπόν, ήθελα να συνεχίσω και δεν μου άρεσε να κερδίσω εκατοντάδες δολάρια για ένα υπάρχον σύστημα τρίτων.
Έτσι, σαν καλός χρήστης με οδηγίες, αποφάσισα να φτιάξω το δικό μου !!!
Έκανα μια μικρή έρευνα και βρήκα μερικά καλά εμπορικά συστήματα στα οποία θα μπορούσα να βασιστώ. Βρήκα μερικά καλά Instructables για να βοηθήσω με ορισμένες από τις έννοιες Sensor ή Raspberry PI. Βρήκα ακόμη και αυτόν τον ιστότοπο, ο οποίος ήταν βρωμιά επί πληρωμή, έπρεπε να γκρεμίσουν ένα υπάρχον σύστημα Maplin:
www.philpot.me/weatherinsider.html
Γρήγορα προς τα εμπρός περίπου ένα μήνα και έχω ένα βασικό σύστημα εργασίας. Αυτό είναι ένα πλήρες σύστημα Raspberry Pi Weather με το βασικό υλικό Raspberry Pi, την κάμερα και μερικούς αναλογικούς και ψηφιακούς αισθητήρες για να κάνουμε τις μετρήσεις μας. Δεν αγοράζουμε προκατασκευασμένα ανεμόμετρα ή μετρητές βροχής, φτιάχνουμε τα δικά μας! Εδώ είναι τα χαρακτηριστικά του:
- Καταγράφει πληροφορίες σε RRD και CSV, ώστε να μπορεί να χειριστεί ή να εξαχθεί/εισαχθεί σε άλλες μορφές.
- Χρησιμοποιεί το API Weather Underground για να λάβει δροσερές πληροφορίες, όπως ιστορικά υψηλά και χαμηλά, φάσεις φεγγαριού και ανατολή/δύση του ήλιου.
- Χρησιμοποιεί τη φωτογραφική μηχανή Raspberry Pi για λήψη φωτογραφίας μία φορά το λεπτό (μπορείτε στη συνέχεια να τις χρησιμοποιήσετε για να κάνετε timelapses).
- Διαθέτει ιστοσελίδες που εμφανίζουν τα δεδομένα για τις τρέχουσες συνθήκες και μερικές ιστορικές (τελευταία ώρα, ημέρα, 7 ημέρες, μήνα, έτος). Το θέμα της ιστοσελίδας αλλάζει με την ώρα της ημέρας (4 επιλογές: ανατολή, δύση, μέρα και νύχτα).
Όλο το λογισμικό για την εγγραφή και την εμφάνιση των πληροφοριών είναι σε ένα Github, έχω κάνει ακόμη και κάποια παρακολούθηση σφαλμάτων, αιτήματα χαρακτηριστικών επίσης εκεί:
github.com/kmkingsbury/raspberrypi-weather…
Αυτό το έργο ήταν μια μεγάλη μαθησιακή εμπειρία για μένα, πήγα πραγματικά να βυθιστώ στις δυνατότητες του Raspberry Pi ειδικά με το GPIO και χτύπησα και μερικά σημεία πόνου μάθησης. Ελπίζω ότι εσείς, ο αναγνώστης, μπορείτε να μάθετε από μερικές δοκιμασίες και δοκιμασίες μου.
Βήμα 1: Υλικά
ΗΛΕΚΤΡΟΝΙΚΑ ΕΙΔΗ:
- 9 διακόπτες καλαμιών (8 για την κατεύθυνση ανέμου, 1 για τον μετρητή βροχής, προαιρετικά 1 για την ταχύτητα του ανέμου αντί για έναν αισθητήρα Hall), χρησιμοποίησα αυτούς:
- 1 Hall Sensor (για την ταχύτητα ανέμου, που ονομάζεται ανεμόμετρο) -
- Θερμοκρασία (https://amzn.to/2RIHf6H)
- Υγρασία (πολλοί αισθητήρες υγρασίας έρχονται με αισθητήρα θερμοκρασίας), χρησιμοποίησα το DHT11:
- Πίεση (το BMP ήρθε με αισθητήρα θερμοκρασίας επίσης), χρησιμοποίησα το BMP180, https://www.adafruit.com/product/1603, αυτό το προϊόν έχει πλέον διακοπεί, αλλά υπάρχει ένα αντίστοιχο με το BMP280 (https://amzn.to/2E8nmhi)
- Φωτοαντίσταση (https://amzn.to/2seQFwd)
- Τσιπ GPS ή USB GPS (https://amzn.to/36tZZv3).
- 4 ισχυροί μαγνήτες (2 για ανεμόμετρο, 1 για κατεύθυνση, 1 για μετρητή βροχής), χρησιμοποίησα μαγνήτες σπάνιας γης, συνιστάται ιδιαίτερα) (https://amzn.to/2LHBoKZ).
- Μια χούφτα ποικίλες αντιστάσεις, έχω αυτό το πακέτο που αποδείχθηκε εξαιρετικά βολικό με την πάροδο του χρόνου:
-
MCP3008 - για μετατροπή αναλογικών σε ψηφιακές εισόδους για το Raspberry Pi -
Σκεύη, εξαρτήματα
- Raspberry Pi - Χρησιμοποίησα αρχικά το 2 με ασύρματο προσαρμογέα, τώρα πάρτε και το κιτ 3 B+ με προσαρμογέα ρεύματος. (https://amzn.to/2P76Mop)
- Pi κάμερα
- Ένας σταθερός προσαρμογέας ισχύος 5V (αυτό αποδείχθηκε οδυνηρά ενοχλητικό, τελικά πήρα το Adafruit, διαφορετικά η κάμερα τραβάει πολύ χυμό και μπορεί/θα κρεμάσει το Pi, είναι εδώ: https://www.adafruit.com/products /501)
Υλικά:
- 2 Ρουλεμάν ώθησης (ή ρουλεμάν skateboard ή roller-skate θα λειτουργήσουν επίσης), τα πήρα στο Amazon:
- 2 Αδιάβροχα περιβλήματα (χρησιμοποίησα ένα ηλεκτρικό περίβλημα από το τοπικό μεγάλο κατάστημα κουτιών), δεν έχει μεγάλη σημασία, απλώς πρέπει να βρείτε ένα περίβλημα καλής διαστάσεων που θα έχει αρκετό χώρο και θα προστατεύει τα πάντα).
- Ορισμένα καλύμματα σωλήνων και άκρων PVC (διάφορα μεγέθη).
- Βάσεις στήριξης PVC
- Ζευγάρια φύλλα από λεπτό πλεξιγκλάς (τίποτα πολύ φανταχτερό).
- πλαστικές αντιδράσεις
- μίνι βίδες (χρησιμοποίησα #4 μπουλόνια και παξιμάδια).
- 2 Πλαστικό στολίδι Χριστουγεννιάτικου δέντρου - χρησιμοποιείται για το ανεμόμετρο, πήρα το δικό μου στο τοπικό Hobby Lobby.
- Μικρός πείρος
- Μικρό κομμάτι κόντρα πλακέ.
Εργαλεία:
- Ντρέμελ
- Κόλλα Gun
- Συγκολλητικό σίδερο
- Πολύμετρο
- Τρυπάνι
Βήμα 2: Κύριο περίβλημα - Pi, GPS, κάμερα, φως
Το κύριο περίβλημα στεγάζει το PI, την κάμερα, το GPS και τον αισθητήρα φωτός. Έχει σχεδιαστεί για να είναι αδιάβροχο αφού στεγάζει όλα τα κρίσιμα εξαρτήματα, οι μετρήσεις λαμβάνονται από το απομακρυσμένο περίβλημα και αυτό έχει σχεδιαστεί για να εκτίθεται/ανοίγει στα στοιχεία.
Βήματα:
Επιλέξτε ένα περίβλημα, χρησιμοποίησα ένα ηλεκτρικό κουτί διακλάδωσης, διάφορα κουτιά έργου και αδιάβροχες θήκες θα λειτουργήσουν εξίσου καλά. Το βασικό σημείο είναι ότι έχει αρκετό χώρο για να χωρέσει τα πάντα.
Το περίβλημα μου περιέχει:
- Το raspberry pi (σε κατάσταση αναμονής) - Χρειάζεται ένα τσιπ WIFI, δεν θέλετε να τρέχετε το Cat5e στην πίσω αυλή!
- Η κάμερα (επίσης σε κατάσταση αναμονής)
- Το τσιπ GPS, συνδεδεμένο μέσω USB (χρησιμοποιώντας καλώδιο sparkfun FTDI: https://www.sparkfun.com/products/9718) - Το GPS παρέχει γεωγραφικό πλάτος και γεωγραφικό μήκος, κάτι που είναι ωραίο, αλλά το πιο σημαντικό, μπορώ να λάβω ακριβή ώρα από το GPS!
- δύο υποδοχές ethernet/cat 5 για να συνδέσετε το κύριο περίβλημα με το άλλο περίβλημα που στεγάζει τους άλλους αισθητήρες. Αυτός ήταν απλώς ένας βολικός τρόπος για να υπάρχουν καλώδια μεταξύ των δύο κουτιών, έχω περίπου 12 καλώδια και το δύο cat5 παρέχουν 16 πιθανές συνδέσεις, οπότε έχω περιθώριο να επεκτείνω/αλλάξω πράγματα.
Υπάρχει ένα παράθυρο στο μπροστινό μέρος του περιβλήματός μου για να βλέπει η κάμερα. Η θήκη με αυτό το παράθυρο προστατεύει την κάμερα, αλλά είχα προβλήματα όπου το κόκκινο led στην κάμερα (όταν τραβάει φωτογραφία) αντανακλά το πλεξιγκλάς και εμφανίζεται στη φωτογραφία. Χρησιμοποίησα κάποια μαύρη ταινία για να το μετριάσω και προσπάθησα να το αποκλείσω (και άλλα LED από το Pi και το GPS), αλλά δεν είναι ακόμα 100%.
Βήμα 3: «Απομακρυσμένο περίβλημα» για θερμοκρασία, υγρασία, πίεση
Εδώ έχω αποθηκεύσει τους αισθητήρες θερμοκρασίας, υγρασίας και πίεσης, καθώς και τα "hook ups" για τον μετρητή βροχής, την κατεύθυνση του ανέμου και τους αισθητήρες ταχύτητας ανέμου.
Είναι πολύ απλό, οι ακίδες συνδέονται μέσω των καλωδίων ethernet στις απαιτούμενες ακίδες του Raspberry Pi.
Προσπάθησα να χρησιμοποιήσω ψηφιακούς αισθητήρες όπου μπορούσα και στη συνέχεια οποιοδήποτε αναλογικό προστέθηκε στο MCP 3008 χρειάζονται έως και 8 αναλογικά που ήταν περισσότερο από αρκετά για τις ανάγκες μου, αλλά δίνει χώρο για βελτίωση / επέκταση.
Αυτό το περίβλημα είναι ανοιχτό στον αέρα (πρέπει να είναι για ακριβή θερμοκρασία, υγρασία και πίεση). Οι κάτω τρύπες έχουν σκάσει, οπότε έδωσα σε μερικά από τα κυκλώματα ένα σπρέι με σπρέι Silicone Conformal Coating (μπορείτε να το βρείτε online ή σε ένα μέρος όπως τα Fry's Electronics). Ας ελπίσουμε ότι θα πρέπει να προστατεύει το μέταλλο από κάθε υγρασία, αν και πρέπει να είστε προσεκτικοί και να μην το χρησιμοποιείτε σε μερικούς από τους αισθητήρες.
Η κορυφή του περιβλήματος είναι επίσης εκεί που ταιριάζει ο αισθητήρας ταχύτητας ανέμου. Ταν μια ανατροπή, θα μπορούσα να είχα βάλει την ταχύτητα του ανέμου ή την κατεύθυνση του ανέμου στην κορυφή, δεν είδα κανένα σημαντικό πλεονέκτημα του ενός έναντι του άλλου. Συνολικά θέλετε και τους δύο αισθητήρες (ταχύτητα ανέμου και ταχύτητα) αρκετά ψηλά όπου κτίρια, φράχτες, εμπόδια δεν παρεμβαίνουν στις μετρήσεις.
Βήμα 4: Μετρητής βροχής
Ακολούθησα κυρίως αυτό το διδακτικό για να κάνω τον πραγματικό μετρητή:
www.instructables.com/id/Arduino-Weather-St…
Το έφτιαξα από πλεξιγκλάς για να μπορώ να δω τι συμβαίνει και πίστευα ότι θα ήταν ωραίο. Συνολικά το πλεξιγκλάς λειτούργησε εντάξει, αλλά σε συνδυασμό με το Gluegun, το λαστιχένιο στεγανωτικό και τη συνολική κοπή και διάτρηση δεν παραμένει τόσο παρθένο, ακόμη και με την προστατευτική μεμβράνη.
Βασικά σημεία:
- Ο αισθητήρας είναι ένας απλός διακόπτης καλαμιών και μαγνήτης που αντιμετωπίζεται σαν ένα πάτημα κουμπιού στον κώδικα RaspberryPi, απλώς μετράω κουβάδες με την πάροδο του χρόνου και στη συνέχεια κάνω τη μετατροπή αργότερα σε "ίντσες βροχής".
- Κάντε το αρκετά μεγάλο για να χωράει αρκετό νερό για να ακουμπήσει, αλλά όχι τόσο πολύ ώστε να χρειάζεται πολύ για να γλιστρήσει. Το πρώτο μου πέρασμα έκανα κάθε δίσκο όχι αρκετά μεγάλο, ώστε να γεμίσει και να αρχίσει να στραγγίζει στην άκρη πριν αναποδογυρίσει.
- Διαπίστωσα επίσης ότι το υπολειπόμενο νερό θα μπορούσε να προσθέσει κάποιο σφάλμα στη μέτρηση. Δηλαδή, εντελώς στεγνό χρειάστηκαν Χ σταγόνες για να γεμίσει μια πλευρά και να ακουμπήσει, μόλις βρέξει χρειάστηκαν σταγόνες Υ (που είναι μικρότερες από Χ) για να γεμίσει και να ακουμπήσει. Όχι ένα τεράστιο ποσό, αλλά επηρεάστηκε όταν προσπαθούσα να βαθμονομήσω και να λάβω μια καλή μέτρηση "1 φορτίο ισούται με πόσο".
- Ισορροπήστε το, μπορείτε να εξαπατήσετε προσθέτοντας κόλλα κόλλας στα κάτω άκρα εάν η μία πλευρά είναι πολύ βαρύτερη από την άλλη, αλλά το χρειάζεστε όσο πιο ισορροπημένα μπορείτε.
- Μπορείτε να δείτε στη φωτογραφία που εγκατέστησα μια μικρή εξέδρα δοκιμής χρησιμοποιώντας μερικά σφουγγάρια και μια ξύλινη βάση για να δοκιμάσω και να την ισορροπήσω σωστά πριν την εγκατάσταση.
Βήμα 5: Κατεύθυνση ανέμου
Αυτό ήταν ένα απλό ανεμοδείκτη. Βάσα τα ηλεκτρονικά από το σύστημα Maplin:
www.philpot.me/weatherinsider.html
Βασικά σημεία:
Αυτός είναι ένας αναλογικός αισθητήρας. Οι οκτώ διακόπτες καλαμιών σε συνδυασμό με διάφορες αντιστάσεις χωρίζουν την έξοδο σε κομμάτια, ώστε να μπορώ να προσδιορίσω σε ποια συντεταγμένη βρίσκεται ο αισθητήρας κατά την τιμή. (Η ιδέα εξηγείται σε αυτό το διδακτικό:
- Αφού βιδώσετε το μέρος του πτερυγίου καιρού πρέπει να το βαθμονομήσετε έτσι ώστε "αυτή η κατεύθυνση είναι αυτή που δείχνει βόρεια".
- Έφτιαξα μια δοκιμαστική εξέδρα με ξύλο, ώστε να μπορώ να μπω και να βγάλω εύκολα αντιστάσεις που κάλυπταν όλο το εύρος των τιμών για μένα, αυτό ήταν εξαιρετικά χρήσιμο!
- Χρησιμοποίησα ένα έδρανο ώσης, τα πήγε μια χαρά, είμαι σίγουρος ότι ένα κανονικό ρουλεμάν skateboard ή rollerskate θα ήταν εξίσου ωραίο.
Βήμα 6: Ταχύτητα ανέμου
Αυτό το στράφηκα για άλλη μια φορά στην κοινότητα του Instructable και βρήκα και ακολούθησα αυτό το διδακτικό:
www.instructables.com/id/Data-Logging-Anemo…
Βασικά σημεία:
- Μπορείτε επίσης να χρησιμοποιήσετε τον αισθητήρα αίθουσας ή να μεταβείτε σε αισθητήρα καλαμιού επίσης. Ο αισθητήρας Hall είναι περισσότερο ένας αναλογικός αισθητήρας, οπότε αν τον χρησιμοποιείτε με ψηφιακό τρόπο, όπως το πάτημα ενός κουμπιού, πρέπει να βεβαιωθείτε ότι η ένδειξη/τάση είναι αρκετά υψηλή ώστε να λειτουργεί σαν ένα πραγματικό πάτημα κουμπιού και όχι αρκετά Το
- Το μέγεθος του φλιτζανιού είναι ζωτικής σημασίας, το ίδιο και το μήκος του ραβδιού! Αρχικά χρησιμοποίησα μπάλες πινγκ πονγκ και ήταν πολύ μικρές. Τα έβαλα επίσης σε μακριά μπαστούνια τα οποία δεν λειτούργησαν. Απογοητεύτηκα πολύ και μετά βρήκα αυτό το διδακτικό, ο Ptorelli έκανε εξαιρετική δουλειά εξηγώντας και με βοήθησε όταν το αρχικό μου σχέδιο δεν λειτούργησε τόσο καλά.
Βήμα 7: Λογισμικό
Το λογισμικό είναι γραμμένο σε Python για την καταγραφή των δεδομένων από τους αισθητήρες. Χρησιμοποίησα κάποιες άλλες βιβλιοθήκες Git τρίτου μέρους από το Adafruit και άλλες για να λάβω τις πληροφορίες από τους αισθητήρες και το GPS. Υπάρχουν επίσης ορισμένες εργασίες cron που τραβούν μερικές από τις πληροφορίες API επίσης. Τα περισσότερα εξηγούνται/περιγράφονται στην τεκμηρίωση Git στο docs/install_notes.txt
Το λογισμικό ιστού είναι σε PHP για να το εμφανίζει στην ιστοσελίδα, ενώ χρησιμοποιεί επίσης το YAML για τα αρχεία διαμόρφωσης και φυσικά το εργαλείο RRD για την αποθήκευση και τη γραφική παράσταση των δεδομένων.
Χρησιμοποιεί το Weather Underground API για να λάβει μερικά από τα ενδιαφέροντα δεδομένα που δεν μπορούν να αντλήσουν οι αισθητήρες: Καταγράψτε Hi's and Lows, Phase of the Moon, Sunset and Sunrise time, υπάρχουν επίσης Tides διαθέσιμες στο API τους, το οποίο νόμιζα ότι ήταν πολύ προσεγμένο, αλλά ζω στο Austin TX που είναι πολύ μακριά από το νερό.
Όλα είναι διαθέσιμα στο Github και διατηρούνται ενεργά και χρησιμοποιούνται αυτήν τη στιγμή καθώς βελτιώνω και βαθμονομώ περαιτέρω το δικό μου σύστημα, ώστε να μπορείτε επίσης να υποβάλετε αιτήματα χαρακτηριστικών και αναφορές σφαλμάτων.
Το λογισμικό περνά από μια αλλαγή θέματος ανάλογα με την ώρα της ημέρας, υπάρχουν 4 στάδια. Εάν η τρέχουσα ώρα είναι + ή - 2 ώρες από την ανατολή ή τη δύση του ηλίου, τότε θα λάβετε τα θέματα ανατολής και δύσης του ηλίου, αντίστοιχα (αυτή τη στιγμή απλώς ένα διαφορετικό υπόβαθρο, πιθανότατα θα κάνω διαφορετικά χρώματα γραμματοσειράς/περιγράμματος στο μέλλον). Ομοίως έξω από αυτά τα εύρη δίνει το θέμα ημέρας ή νύχτας.
Ευχαριστώ για την ανάγνωση, Αν θέλετε να δείτε περισσότερες φωτογραφίες και βίντεο των έργων μου από το Instagram και το κανάλι μου στο YouTube.
Τρίτο Βραβείο στον Διαγωνισμό Pi/e Day