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

Ηλιακός Μετεωρολογικός Σταθμός: 5 Βήματα
Ηλιακός Μετεωρολογικός Σταθμός: 5 Βήματα

Βίντεο: Ηλιακός Μετεωρολογικός Σταθμός: 5 Βήματα

Βίντεο: Ηλιακός Μετεωρολογικός Σταθμός: 5 Βήματα
Βίντεο: Ηλιακός Μετεωρολογικός Σταθμός Βόνιτσας 2024, Ιούλιος
Anonim
Ηλιακός Μετεωρολογικός Σταθμός
Ηλιακός Μετεωρολογικός Σταθμός

Θέλατε ποτέ πληροφορίες για τον καιρό σε πραγματικό χρόνο από την αυλή σας; Τώρα μπορείτε να αγοράσετε έναν μετεωρολογικό σταθμό στο κατάστημα, αλλά αυτοί συνήθως απαιτούν μπαταρίες ή πρέπει να συνδεθούν σε πρίζα. Αυτός ο μετεωρολογικός σταθμός δεν χρειάζεται να συνδεθεί με το δίκτυο διότι διαθέτει ηλιακούς συλλέκτες που περιστρέφονται προς τον ήλιο για μεγαλύτερη απόδοση. Με τις μονάδες RF μπορεί να μεταφέρει δεδομένα από τον εξωτερικό σταθμό σε ένα Raspberry Pi μέσα στο σπίτι σας. Το Raspberry Pi φιλοξενεί έναν ιστότοπο στον οποίο μπορείτε να δείτε τα δεδομένα.

Βήμα 1: Συγκέντρωση υλικών

Υλικά

  • Raspberry Pi 3 μοντέλο B + + προσαρμογέας + Micro SD Card 16GB
  • Arduino Uno
  • Βασικό ξεμπλοκάρισμα Arduino Pro Mini + FTDI
  • 4 ηλιακά πάνελ 6V 1W
  • 4 μπαταρίες 18650
  • Ενισχυτής 5v
  • 4 φορτιστές μπαταρίας TP 4056
  • Adafruit DHT22 Αισθητήρας θερμοκρασίας και υγρασίας
  • BMP180 Αισθητήρας βαρομετρικής πίεσης
  • 4 LDR
  • Δέκτης και πομπός RF 433
  • 2 κινητήρες Nema 17 Stepper
  • 2 προγράμματα οδήγησης μοτέρ DRV8825 Stepper
  • LCD 128*64
  • Πολλά σύρματα

Εργαλεία και υλικά

  • Κόλλα
  • Ξύλινες σανίδες
  • Είδε
  • Βίδες + κατσαβίδι
  • Ταινία πάπιας
  • 2 λωρίδες αλουμινίου

Βήμα 2: Μηχανολογικός σχεδιασμός

Μηχανολογικός σχεδιασμός
Μηχανολογικός σχεδιασμός
Μηχανολογικός σχεδιασμός
Μηχανολογικός σχεδιασμός
Μηχανολογικός σχεδιασμός
Μηχανολογικός σχεδιασμός
Μηχανολογικός σχεδιασμός
Μηχανολογικός σχεδιασμός

Το σώμα του μετεωρολογικού σταθμού είναι κατασκευασμένο από κόντρα πλακέ. Δεν χρειάζεται να χρησιμοποιήσετε ξύλο, μπορείτε να το φτιάξετε από οποιοδήποτε υλικό προτιμάτε. Για τις βάσεις του κινητήρα, τρύπησα ολόκληρο σε ένα ξύλο και στη συνέχεια βίδα σε μια επίπεδη βίδα στον άξονα του κινητήρα, ο οποίος λειτουργεί καλύτερα από ό, τι περίμενα. Με αυτόν τον τρόπο δεν χρειάζεται να εκτυπώσετε τρισδιάστατα μια βάση κινητήρα και είναι εύκολο να την κάνετε. Στη συνέχεια, έσκυψα 2 λωρίδες αλουμινίου για να κρατήσω τους κινητήρες πολύ σφιχτά. Στη συνέχεια έκοψα μια σανίδα και άνοιξα τρύπες για τους ηλιακούς συλλέκτες. Στη συνέχεια κολλήστε τους ηλιακούς συλλέκτες και κολλήστε καλώδια στους ηλιακούς συλλέκτες. Στη συνέχεια, θα χρειαστεί επίσης να κάνετε ένα σταυρό από μαύρο υλικό. Εάν δεν έχετε τίποτα μαύρο, μπορείτε να χρησιμοποιήσετε μαύρη ταινία. Αυτός ο σταυρός θα κρατήσει ένα LDR σε κάθε γωνία, ώστε το Arduino να μπορεί να συγκρίνει τις μετρήσεις από το LDR και να υπολογίσει σε ποια κατεύθυνση χρειάζεται να στρίψει. Έτσι τρυπήστε μικροσκοπικά σύνολα σε κάθε γωνία, ώστε να χωρέσετε ένα LDR εκεί. Το μόνο που μένει να κάνουμε τώρα είναι να φτιάξουμε μια πλάκα βάσης και κάτι για να βάλουμε τα ηλεκτρονικά μέσα. Για την πλάκα βάσης, θα χρειαστεί να τρυπήσετε ολόκληρο σε αυτό για να δρομολογήσετε όλα τα καλώδια στον κάδο. Για τις μετρήσεις, δεν θα σας δώσω καμία γιατί εξαρτάται από εσάς πώς θέλετε να το σχεδιάσετε. Εάν έχετε άλλους κινητήρες ή άλλα ηλιακά πάνελ, τότε θα πρέπει να υπολογίσετε τις μετρήσεις μόνοι σας.

Βήμα 3: Ηλεκτρικός σχεδιασμός

Εξουσία

Ολόκληρο το σύστημα λειτουργεί με μπαταρίες (εκτός από το Raspberry Pi). Τοποθέτησα 3 μπαταρίες σε σειρά. 1 Η μπαταρία είναι κατά μέσο όρο 3,7V, οπότε 3 σε σειρά σας δίνουν περίπου 11V. Αυτή η μπαταρία 3s χρησιμοποιείται για τους κινητήρες και τον πομπό RF. Η άλλη μπαταρία που απομένει χρησιμοποιείται για την τροφοδοσία του Arduino Pro Mini και των αισθητήρων. Για να φορτίσω τις μπαταρίες, χρησιμοποίησα 4 μονάδες TP4056. Κάθε μπαταρία διαθέτει 1 μονάδα TP4056, κάθε μονάδα είναι συνδεδεμένη σε ηλιακό πάνελ. Επειδή η μονάδα έχει B (in) και B (out), μπορώ να τα φορτίσω ξεχωριστά και να τα αποφορτίσω σε σειρά. Βεβαιωθείτε ότι αγοράσατε τις σωστές μονάδες TP4056 επειδή δεν έχουν όλες οι μονάδες B (in) και B (out).

Κόνρτολ

Το Arduino Pro Mini ελέγχει τους αισθητήρες και τους κινητήρες. Ο ακατέργαστος και αλεσμένος πείρος του Arduino συνδέεται με τον ενισχυτή 5V. Ο ενισχυτής 5V συνδέεται με μία μπαταρία. Το Arduino Pro Mini έχει πολύ χαμηλή κατανάλωση ενέργειας.

Συστατικά

DHT22: Συνδέω αυτόν τον αισθητήρα στο VCC και στο Ground, στη συνέχεια συνδέω τον ακροδέκτη δεδομένων στην ψηφιακή ακίδα 10.

BMP180: Συνδέω αυτόν τον αισθητήρα στο VCC και στο Ground, συνδέω το SCL στο SCL στο Arduino και το SDA στο SDA στο Arduino. Να είστε προσεκτικοί επειδή οι ακίδες SCL και SDA στο Arduino Pro Mini βρίσκονται στη μέση του πίνακα, οπότε αν έχετε κολλήσει καρφίτσες στον πίνακα και το έχετε βάλει σε ένα breadboard, δεν θα λειτουργήσει επειδή θα έχετε παρεμβολές από άλλες καρφίτσες. Συγκόλλησα αυτές τις 2 ακίδες στην κορυφή του πίνακα και ένωσα ένα καλώδιο απευθείας σε αυτό.

RF Transmitter: Συνδέσα το με την μπαταρία 3s για καλύτερο σήμα και μεγαλύτερη εμβέλεια. Προσπάθησα να το συνδέσω στο 5V από το Arduino, αλλά τότε το σήμα RF είναι εξαιρετικά αδύναμο. Στη συνέχεια, συνέδεσα την καρφίτσα δεδομένων με την ψηφιακή ακίδα 12.

LDR: Συνδέσα τα 4 LDR σε αναλογικές ακίδες A0, A1, A2, A3. Έχω βάλει τα LDR μαζί με μια αντίσταση 1Κ.

Κινητήρες: Οι κινητήρες κινούνται από 2 μονάδες ελέγχου DRV8825. Αυτά είναι πολύ βολικά επειδή παίρνουν μόνο 2 γραμμές εισόδου (κατεύθυνση και βήμα) και μπορούν να παράγουν έως 2Α ανά φάση στους κινητήρες. Τα έχω συνδεδεμένα με τις ψηφιακές ακίδες 2, 3 και 8, 9.

LCD: Συνδέω το LCD με το Raspberry Pi για να δείξω τη διεύθυνση IP του. Χρησιμοποίησα ένα τρίμερ για να ρυθμίσω τον οπίσθιο φωτισμό.

Δέκτης RF: Συνδέω τον δέκτη με το Arduino Uno σε 5V και Ground. Ο δέκτης δεν πρέπει να παίρνει πάνω από 5V. Στη συνέχεια, συνέδεσα την καρφίτσα δεδομένων με την ψηφιακή ακίδα 11. Εάν μπορείτε να βρείτε μια βιβλιοθήκη για αυτές τις μονάδες RF που λειτουργεί στο Raspberry Pi, τότε δεν χρειάζεται να χρησιμοποιήσετε το Arduino Uno.

Raspberry Pi: Το Raspberry Pi συνδέεται στο Arduino Uno μέσω καλωδίου USB. Το Arduino μεταδίδει τα σήματα RF στο Raspberry Pi μέσω σειριακής σύνδεσης.

Βήμα 4: Ας ξεκινήσουμε την κωδικοποίηση

Για να κωδικοποιήσετε το Arduino Pro Mini, θα χρειαστείτε τον προγραμματιστή FTDI. Δεδομένου ότι το Pro Mini δεν διαθέτει θύρα USB (για εξοικονόμηση ενέργειας), θα χρειαστείτε αυτόν τον πίνακα ανάρτησης. Προγραμματίζω τον κώδικα στο Arduino IDE, νομίζω ότι αυτός είναι ο ευκολότερος τρόπος να το κάνουμε. Ανεβάστε τον κώδικα από το αρχείο και θα πρέπει να πάει καλά.

Για να κωδικοποιήσω το Arduino Uno, το σύνδεσα στον υπολογιστή μου μέσω καλωδίου USB. Αφού ανέβασα τον κώδικα, τον σύνδεσα με το Raspberry Pi. Iμουν επίσης σε θέση να αλλάξω τον κωδικό στο Raspberry Pi επειδή εγκατέστησα το Arduino IDE και έτσι μπορούσα να το προγραμματίσω από εκεί. Ο κώδικας είναι πολύ απλός, παίρνει την είσοδο από τον δέκτη και τον στέλνει μέσω της σειριακής θύρας στο Raspberry Pi.

Για να κωδικοποιήσω το Raspberry Pi, εγκατέστησα το Raspbian. Στη συνέχεια, χρησιμοποίησα το Putty για να το συνδέσω μέσω σύνδεσης SSH. Στη συνέχεια, διαμορφώνω το Raspberry ώστε να μπορώ να συνδεθώ σε αυτό μέσω VNC και έτσι να έχω ένα GUI. Εγκατέστησα έναν διακομιστή ιστού Apache και άρχισα να κωδικοποιώ το backend και το frontend για αυτό το έργο. Μπορείτε να βρείτε τον κώδικα στο github:

Βήμα 5: Βάση δεδομένων

Για την αποθήκευση των δεδομένων χρησιμοποιώ μια βάση δεδομένων SQL. Έφτιαξα τη βάση δεδομένων στο MySQL Workbench. Η βάση δεδομένων περιέχει τις ενδείξεις των αισθητήρων και τα δεδομένα του αισθητήρα. Έχω 3 πίνακες, ο ένας για την αποθήκευση των τιμών των αισθητήρων με χρονικές σημάνσεις, ο άλλος για την αποθήκευση πληροφοριών σχετικά με τους αισθητήρες και ο τελευταίος για την αποθήκευση πληροφοριών σχετικά με τους χρήστες. Δεν χρησιμοποιώ τον πίνακα Χρήστες επειδή δεν κωδικοποίησα αυτό το μέρος του έργου επειδή δεν ήταν στο MVP μου. Κατεβάστε το αρχείο SQL και εκτελέστε το και η βάση δεδομένων θα πρέπει να ξεκινήσει.

Συνιστάται: