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

Ρολόι πρόβλεψης καιρού με χρήση του Old Alarm και του Arduino: 13 βήματα (με εικόνες)
Ρολόι πρόβλεψης καιρού με χρήση του Old Alarm και του Arduino: 13 βήματα (με εικόνες)

Βίντεο: Ρολόι πρόβλεψης καιρού με χρήση του Old Alarm και του Arduino: 13 βήματα (με εικόνες)

Βίντεο: Ρολόι πρόβλεψης καιρού με χρήση του Old Alarm και του Arduino: 13 βήματα (με εικόνες)
Βίντεο: ΠΗΡΑ ενα κουτι ΠΡΟΦΥΛΑΚΤΙΚΑ…. 2024, Ιούλιος
Anonim
Ρολόι πρόβλεψης καιρού με χρήση του Old Alarm και του Arduino
Ρολόι πρόβλεψης καιρού με χρήση του Old Alarm και του Arduino
Ρολόι πρόβλεψης καιρού με χρήση του Old Alarm και του Arduino
Ρολόι πρόβλεψης καιρού με χρήση του Old Alarm και του Arduino

Είχα ένα σπασμένο ξυπνητήρι ξαπλωμένο και μου ήρθε μια ιδέα να το μετατρέψω σε ρολόι και σταθμό πρόγνωσης καιρού.

Για αυτό το έργο θα χρειαστείτε:

  • Παλαιό κυκλικό ξυπνητήρι
  • Arduino Nano
  • Μονάδα αισθητήρα BME280 (θερμοκρασία, υγρασία, πίεση)
  • Μονάδα οθόνης LCD από το Nokia 5110
  • Ρολόι DS1307 RTC
  • Φορτιστής μπαταρίας λιθίου TP4056
  • Η παλιά μπαταρία ιόντων λιθίου διασώθηκε από το κινητό τηλέφωνο
  • Μικρή μονάδα ενίσχυσης 3,7v έως 5v
  • Αντίσταση εξαρτώμενη από το φως (LDR - μετρητής φωτός)
  • Buzzer (μεταχειρισμένο που σώθηκε από παλιό υπολογιστή)
  • 3 κουμπιά
  • Μια δέσμη αντιστάσεων (2x10k, 270 ohm) και ένα τρανζίστορ (2N2222A ή παρόμοιο)
  • Κάποιος σωλήνας ευρείας συρρίκνωσης
  • θραύσματα PCB για χρήση ως διακόσμηση μπροστινής πλάκας
  • Καλώδιο επέκτασης Micro-USB (και οι θηλυκές και οι αρσενικές πλευρές είναι Micro-USB)
  • Πρωτότυπο πίνακα 2x8cm και μερικά καλώδια

Βήμα 1: Αποσυναρμολογήστε τα πάντα

Αποσυναρμολογήστε τα πάντα
Αποσυναρμολογήστε τα πάντα

Πρώτα αποσυναρμολόγησα το παλιό ρολόι. Καμπάνες, κινητήρας, μηχανισμός σπασμένου ρολογιού…

Βήμα 2: Κουμπιά για ψηφιακές ρυθμίσεις

Κουμπιά για ψηφιακές ρυθμίσεις
Κουμπιά για ψηφιακές ρυθμίσεις
Κουμπιά για ψηφιακές ρυθμίσεις
Κουμπιά για ψηφιακές ρυθμίσεις
Κουμπιά για ψηφιακές ρυθμίσεις
Κουμπιά για ψηφιακές ρυθμίσεις
Κουμπιά για ψηφιακές ρυθμίσεις
Κουμπιά για ψηφιακές ρυθμίσεις

Δεδομένου ότι το νέο ρολόι θα είναι πλήρως ψηφιακό με μίνι υπολογιστή στο εσωτερικό του, πρόσθεσα 3 απλά όμορφα κουμπιά στο πλάι.

Χρησιμοποιώντας ένα κομμάτι αλουμινίου, έκοψα την επικάλυψη για να δημιουργήσω μια ετικέτα. Τα γράμματα για τις ετικέτες δημιουργήθηκαν χρησιμοποιώντας τα γράμματα και ένα μαύρο μαρκαδόρο.

Βήμα 3: Πυκνωτής για τον κινητήρα

Πυκνωτής για τον κινητήρα
Πυκνωτής για τον κινητήρα

Θα κρατήσω τις παλιές καμπάνες για να θέσω τον συναγερμό με το μοτέρ. Ο παλιός μηχανισμός σπασμένου ρολογιού είχε κεραμικό πυκνωτή με την ετικέτα 104. Τον αφαίρεσα από την πλακέτα και τον κόλλησα απευθείας στον κινητήρα - αυτό θα βοηθήσει στην αποφυγή αιχμής του ρεύματος κατά την ενεργοποίηση του κινητήρα κατά τη διάρκεια συναγερμού. Επίσης σημαντικό να σημειωθεί είναι ότι ο κινητήρας θα ελέγχεται μέσω τρανζίστορ, αλλά περισσότερα για αυτό αργότερα.

Βήμα 4: Νέο πρόσωπο για το ρολόι

Νέο πρόσωπο για το ρολόι
Νέο πρόσωπο για το ρολόι
Νέο πρόσωπο για το ρολόι
Νέο πρόσωπο για το ρολόι

Από τότε που αποφάσισα να κάνω μια νέα όψη για το ρολόι - πήρα μια πλακέτα κυκλώματος από το σωρό των απορριμμάτων μου και χρησιμοποίησα ένα θερμοβόλο για να αφαιρέσω γρήγορα όλα τα εξαρτήματα. Η τρύπα στη μέση γίνεται για την ψηφιακή οθόνη του νέου ρολογιού.

Βήμα 5: Digitalηφιακή οθόνη από παλιό κινητό τηλέφωνο

Digitalηφιακή οθόνη από παλιό κινητό τηλέφωνο
Digitalηφιακή οθόνη από παλιό κινητό τηλέφωνο
Digitalηφιακή οθόνη από παλιό κινητό τηλέφωνο
Digitalηφιακή οθόνη από παλιό κινητό τηλέφωνο

Για αυτό το έργο αποφάσισα να χρησιμοποιήσω μια οθόνη LCD από το παλιό κινητό τηλέφωνο Nokia 5110. Αυτές οι οθόνες είναι ευρέως διαθέσιμες προς πώληση ως μονάδα, αντλούν πολύ μικρή ισχύ και υπάρχουν καλές βιβλιοθήκες για το Arduino. Εάν αγοράζετε μια νέα μονάδα με οθόνη 5110 - εξοικονομείτε τον πλανήτη επειδή όλες οι νέες μονάδες δημιουργούνται από σωζόμενα τηλέφωνα 5110, 3110 και 3210!

Βήμα 6: Σύνδεση κυκλωμάτων

Σύνδεση κυκλωμάτων
Σύνδεση κυκλωμάτων
Σύνδεση κυκλωμάτων
Σύνδεση κυκλωμάτων
Σύνδεση κυκλωμάτων
Σύνδεση κυκλωμάτων

Mightσως έχετε ήδη μαντέψει ότι σχεδίαζα να χρησιμοποιήσω τον πίνακα Arduino για τον έλεγχο αυτού του ρολογιού. Το έργο μπορεί να επαναληφθεί εύκολα ακόμη και για αρχάριους οπαδούς του Arduino επειδή δεν δημιούργησα τις δικές μου πλακέτες. Είναι ένας πίνακας Arduino Nano με μονάδες συνδεδεμένες με αυτόν - αισθητήρας θερμοκρασίας, πίεσης και υγρασίας BME280, ρολόι DS1307 RTC, φορτιστής μπαταρίας λιθίου TP4056, μικρή μονάδα ενίσχυσης 3,7v έως 5v, αντίσταση εξαρτώμενη από το φως (LDR - φωτόμετρο) και βομβητή (ληφθεί από τον παλιό υπολογιστή).

Ρίξτε μια ματιά και στα σκίτσα - δείχνουν όλες τις συνδέσεις. Νομίζω ότι όλα είναι πολύ εύκολο να διαβαστούν και να κατανοηθούν, αλλά αν έχετε οποιεσδήποτε ερωτήσεις, ρωτήστε τα παρακάτω σχόλια.

Λίγες σημειώσεις σχετικά με τη ρύθμιση:

  • Ο κινητήρας συνδέεται απευθείας από την μπαταρία μέσω του τρανζίστορ. Το Arduino ελέγχει το τρανζίστορ μέσω αντίστασης και PWM pin D5.
  • Οι ακίδες D7-12 χρησιμοποιούνται για σύνδεση LCD. Το έδαφος και το VCC συνδέονται με τη ράγα στον πίνακα διασταύρωσης.
  • Το LDR εγκαταστάθηκε στο ρολόι και η αντίσταση + 3 εξερχόμενα καλώδια συγκολλήθηκαν ακριβώς στο πίσω μέρος της πρόσοψης του ρολογιού.
  • Για σύνδεση με κουμπιά χρησιμοποίησα εσωτερική λειτουργία PULLUP μέσα στο Arduino. Το κουμπί Μενού είναι προσαρτημένο στη διακοπή και κατάλαβα αργότερα ότι μπορείτε επίσης να χρησιμοποιήσετε το εσωτερικό PULLUP και για τη διακοπή. Το κουμπί διακοπής για το μενού απαιτείται έτσι ώστε ο κώδικας να μην σαρώνει την κατάσταση των κουμπιών όλη την ώρα.
  • Το ρολόι θα παρακολουθεί και θα εμφανίζει επίσης την κατάσταση της μπαταρίας, έτσι ώστε η μπαταρία να συνδέεται απευθείας με τον ακροδέκτη A0. Η τάση της μπαταρίας δεν είναι ποτέ μεγαλύτερη από 4,2V, επομένως είναι ασφαλές να συνδέσετε την μπαταρία απευθείας στον αναλογικό πείρο Arduino.
  • Ο βομβητής συνδέεται απευθείας με τον ακροδέκτη PWM D6. Αν και αυτό δεν είναι καλή πρακτική, το ξέφυγα επειδή το Arduino Nano θα μπορούσε να χειριστεί υψηλότερες προδιαγραφές από ό, τι αναφέρθηκε και επίσης επειδή ο βομβητής δεν θα λειτουργεί συνεχώς. Η ίδια ρύθμιση θα έκαψε εύκολα τις ακίδες στις πλακέτες ESP, επομένως σε αυτές τις περιπτώσεις συνιστώ τη χρήση του ελέγχου τρανζίστορ.
  • Το ρολόι είχε ήδη διακόπτη και αποφάσισα να το χρησιμοποιήσω. Φαίνεται φυσικό στο πίσω μέρος.

Βήμα 7: Πίνακας διασταύρωσης για εύκολες συνδέσεις

Junction Board for Easy Connections
Junction Board for Easy Connections
Junction Board for Easy Connections
Junction Board for Easy Connections

Όλες οι μονάδες απαιτούν θετικές και γειωμένες συνδέσεις, έτσι αποφάσισα να χρησιμοποιήσω πρωτότυπο πίνακα 2x8cm και κόλλησα σιδηροτροχιές 5V και Ground σε αυτό. Έφτιαξα επίσης μια μικρή ράγα I2C εκεί, καθώς είχα αρκετές μονάδες χρησιμοποιώντας διεπαφή I2C.

Από την άλλη πλευρά κόλλησα τυπικές ακίδες ώστε να μπορώ να συνδέω και να αποσυνδέω τις μονάδες όταν απαιτείται.

Μερικά από τα πρόσθετα εξαρτήματα συγκολλήθηκαν επίσης εκεί, όπως τρανζίστορ και αντίσταση για τον έλεγχο του κινητήρα και μια αντίσταση για το κουμπί Μενού που χρησιμοποιεί διακοπή. Έδειξα τα σχήματα στην προηγούμενη ενότητα.

btw Μπορείτε να δείτε τον αισθητήρα LDR που είναι ήδη εγκατεστημένος στην πρόσοψη του ρολογιού στην πρώτη εικόνα;

Βήμα 8: Ρύθμιση της ισχύος

Ρύθμιση της ισχύος
Ρύθμιση της ισχύος

Χρησιμοποίησα μια παλιά μπαταρία ιόντων λιθίου από το κινητό μου για να τροφοδοτήσω αυτό το ρολόι. Συνήθως οι μπαταρίες κινητών τηλεφώνων που αντικαθίστανται εξακολουθούν να έχουν καλή χωρητικότητα (τουλάχιστον τις μισές από αυτές που ήταν όταν ήταν καινούργιες). Το πλεονέκτημά τους είναι ότι έχουν ενσωματωμένο κύκλωμα προστασίας εκκένωσης και είναι επίσης πολύ λεπτά ώστε να μπορούν να χρησιμοποιηθούν σε μικρά σενάρια χώρου.

Για να συνδέσετε την μπαταρία απλά συγκολλάτε τα καλώδια στους ακροδέκτες + και - της μπαταρίας. Μην ανησυχείτε, δεν θα βλάψετε το κελί γιατί υπάρχει ένας ελεγκτής και κάποιος κενός χώρος μεταξύ των ακίδων και των χημικών ουσιών του κυττάρου.

Σε αυτήν την εικόνα μπορείτε να δείτε την μπαταρία και τον ελεγκτή φόρτισης TP4056 καθώς και τον ενισχυτή 5V συνδεδεμένους μεταξύ τους και με την μπαταρία. Χρησιμοποίησα μερικούς σωλήνες συρρίκνωσης για να τα κάνω όλα απομονωμένα και συμπαγή.

Βήμα 9: Micro USB για φόρτιση και ενημέρωση υλικολογισμικού

Micro USB για φόρτιση και ενημέρωση υλικολογισμικού
Micro USB για φόρτιση και ενημέρωση υλικολογισμικού

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

Wasρθε η ώρα να εγκαταστήσετε τη θύρα Micro USB στο πίσω μέρος. Γιατί Micro USB αν ο Nano χρησιμοποιεί Mini USB; Απλά επειδή στο σπίτι, τα περισσότερα καλώδια USB προέρχονται από κινητά τηλέφωνα και θα ήταν βολικό αν το ρολόι μπορούσε να το πάρει και αυτό.

Δεδομένου ότι ήθελα να το χρησιμοποιήσω τόσο για τη φόρτιση όσο και για την ενημέρωση των λειτουργιών του ρολογιού και του μετεωρολογικού σταθμού - έβγαλα το καλώδιο USB, πέρασα τα καλώδια τροφοδοσίας μέσω φορτιστή TP4056 και καλωδίων Data+/Data- απευθείας στην υποδοχή USB του Arduino Nano. Μπορείτε να το δείτε στο σχηματικό σχήμα που έδειξα σε προηγούμενες ενότητες.

Βήμα 10: Τελική συνέλευση

Τελική συναρμολόγηση
Τελική συναρμολόγηση
Τελική συναρμολόγηση
Τελική συναρμολόγηση
Τελική συναρμολόγηση
Τελική συναρμολόγηση

Wasρθε η ώρα να βάλουμε τα πάντα στο αρχικό ρολόι. Χρησιμοποίησα συρρικνωμένο σωλήνα για να απομονώσω εξαρτήματα και μονάδες. Ακόμα και το Arduino ήταν τυλιγμένο σε συρρικνωμένο σωλήνα.

Τοποθετήστε το δείκτη του ποντικιού στην πρώτη φωτογραφία για να δείτε πού τοποθετήθηκε κάθε στοιχείο.

Βήμα 11: Ο κώδικας

Όπως μπορείτε να δείτε, το ρολόι είναι πλήρως συσκευασμένο μέσα. Αυτό επέτρεψε να δημιουργήσω κάτι πιο περίπλοκο από το παλιό ρολόι που είχα - δεδομένου ότι υπάρχουν ορισμένες δεξιότητες προγραμματισμού φυσικά. Έγραψα τον αρχικό κώδικα, αλλά ζήτησα από τον φίλο μου να μπει και να με βοηθήσει.

Μέχρι στιγμής, εκτός από το ίδιο το ρολόι, αυτές είναι οι λειτουργίες που υποστηρίζει ήδη αυτό το έργο:

  • Εμφάνιση ώρας και ημερομηνίας (καθώς και ώρα και ενεργοποίηση συναγερμού στην ίδια οθόνη)
  • Η οθόνη φωτίζεται σε σκοτεινές συνθήκες ή όταν ανιχνεύεται κίνηση (με βάση τις αλλαγές φωτός)
  • Πρόγνωση καιρού (ηλιοφάνεια, συννεφιά, βροχή)
  • Ένδειξη θερμοκρασίας, πίεσης και υγρασίας (για υγρασία θα δείξει εάν είναι πολύ ξηρό)
  • Μενού για ρυθμίσεις: ξυπνητήρι, αλλαγή ώρας, ενεργοποίηση/απενεργοποίηση εμφάνισης ημερομηνίας, ενεργοποίηση/απενεργοποίηση ειδοποιήσεων ήχου αλλαγής καιρού και εναλλαγή μεταξύ αυτοκρατορικών και μετρικών μονάδων
  • Ρυθμίσεις συναγερμού - ενεργοποίηση/απενεργοποίηση, ρύθμιση της ώρας, ρύθμιση της μελωδίας ή/και κουδουνιών για ειδοποιήσεις

Τελευταίος κώδικας:

Ο κώδικας πρόκειται να ενημερωθεί στο μέλλον με νέες δυνατότητες, οπότε φροντίστε να ελέγξετε ξανά για ενημερώσεις υλικολογισμικού:-)

Εάν είστε νέοι στον κόσμο του Arduino, αυτά είναι τα βήματα που θα συνιστούσα να κάνετε:

  • Εγκαταστήστε το πρόγραμμα οδήγησης USB για την πλακέτα σας (π.χ. CH340)
  • Εγκαταστήστε το Arduino IDE
  • Εγκαταστήστε τις βιβλιοθήκες που χρησιμοποιούνται σε αυτό το έργο
  • Λήψη από το GitHub και μεταφόρτωση του τελευταίου κώδικα έργου στο ρολόι χρησιμοποιώντας καλώδιο Micro USB (μπορείτε να χρησιμοποιήσετε έναν από το κινητό τηλέφωνο)

Ο αλγόριθμος πρόβλεψης είναι ο εξής:

Το Arduino Nano λαμβάνει νέα δεδομένα από τον αισθητήρα BME280 κάθε 12 λεπτά. Ο κύκλος μέτρησης είναι 3 ώρες. Μετά από 3 ώρες, το εύρος παρακολούθησης της πίεσης (μέγιστη και ελάχιστη τιμή για 3 ώρες) μετατοπίζεται σε σχέση με τις μέσες τιμές κατά τη διάρκεια του τρέχοντος εύρους και της τρέχουσας τιμής πίεσης. Κάθε ώρα η κατεύθυνση της αλλαγής πίεσης με την τρέχουσα τιμή πίεσης αποθηκεύεται. Οι μονάδες kPa χρησιμοποιούνται για τον υπολογισμό της πρόβλεψης.

Λόγω των περιορισμών μνήμης του Nano, ο αλγόριθμος πρόβλεψης έπρεπε να απλοποιηθεί. Παρά τις απλουστεύσεις, είναι σε θέση να προβλέψει βροχόπτωση στις επόμενες 12-24 ώρες, παρόλο που η πρόβλεψη είναι πλέον πιο απαισιόδοξη - η προεπιλεγμένη τιμή είναι "Συννεφιασμένος Καιρός".

"Sunny Weather" - η τρέχουσα τιμή της πίεσης είναι υψηλότερη από την κανονική κατά 7 μονάδες, η πίεση δεν πέφτει και η διαφορά μεταξύ των τιμών min και max τις τελευταίες 3 ώρες δεν είναι μεγαλύτερη από 2 μονάδες.

Πιθανή βροχόπτωση "Βροχερός καιρός" - η τρέχουσα πίεση είναι 15 μονάδες χαμηλότερη από τον κανονικό και η διαφορά μεταξύ των τιμών min & max είναι πάνω από 2 μονάδες OR Η πίεση πέφτει και η διαφορά μεταξύ της τρέχουσας τιμής και του κανονισμού είναι 3 - 30 μονάδες.

Για να βελτιώσετε την ποιότητα της πρόβλεψης, συνιστάται να αλλάξετε το "υψόμετρο" στο κύριο αρχείο κώδικα. Μπορείτε να λάβετε το υψόμετρό σας για παράδειγμα εδώ:

Βήμα 12: Βήμα-βήμα βίντεο

Image
Image

Εάν ήταν δύσκολο να ακολουθήσετε αυτό που έκανα παραπάνω, εδώ είναι επίσης μια έκδοση βίντεο με όλα τα βήματα που εμφανίζονται.

Βήμα 13: Τελικές λέξεις

Συνολικά, από την άποψή μου, το επίπεδο δυσκολίας αυτού του έργου δεν είναι υψηλό και ο καθένας θα μπορούσε να το κάνει. Εάν δεν έχετε παλιό ρολόι, μπορείτε να βρείτε ένα φθηνό σε μια τοπική υπαίθρια αγορά.

Όλα τα εξαρτήματα είναι χαμηλής τιμής και είναι διαθέσιμα στο Sparkfun/Aliexpress/eBay/Amazon.

Ελπίζω ότι αυτό το σεμινάριο ήταν ενδιαφέρον για εσάς και θα ήμουν ευγνώμων αν μπορούσατε να υποστηρίξετε το πρώτο μου Instructable στο διαγωνισμό Ρολόι.

Διαγωνισμός ρολογιών
Διαγωνισμός ρολογιών
Διαγωνισμός ρολογιών
Διαγωνισμός ρολογιών

Δευτέρα στο διαγωνισμό ρολογιών

Συνιστάται: