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

UCL-lloT-Outdoor-light Triggered by Sunrise/sunndown .: 6 Βήματα
UCL-lloT-Outdoor-light Triggered by Sunrise/sunndown .: 6 Βήματα

Βίντεο: UCL-lloT-Outdoor-light Triggered by Sunrise/sunndown .: 6 Βήματα

Βίντεο: UCL-lloT-Outdoor-light Triggered by Sunrise/sunndown .: 6 Βήματα
Βίντεο: Fight at LA Fitness 2024, Δεκέμβριος
Anonim
UCL-lloT-Outdoor-light Triggered by Sunrise/sunndown
UCL-lloT-Outdoor-light Triggered by Sunrise/sunndown

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

Βήμα 1: Λίστα IO και τι θα χρειαστείτε

Λίστα IO και τι θα χρειαστείτε
Λίστα IO και τι θα χρειαστείτε
Λίστα IO και τι θα χρειαστείτε
Λίστα IO και τι θα χρειαστείτε
Λίστα IO και τι θα χρειαστείτε
Λίστα IO και τι θα χρειαστείτε

Arduino MEGA 2560. Είναι αυτό που έχω χρησιμοποιήσει τουλάχιστον, ξέρω ότι θα μπορούσατε εύκολα να χρησιμοποιήσετε κάποιο άλλο.

DS3231 και η βιβλιοθήκη του. (https://rinkydinkelectronics.com/library.php?id=73… Είναι σημαντικό να γνωρίζετε ότι οι ακίδες που έχουν οριστεί για SDA και SCL διαφέρουν ανάλογα με το Arduino που χρησιμοποιείτε.

I052116 Υπέρυθρη μονάδα αισθητήρα ανιχνευτή κίνησης. Αυτή η συγκεκριμένη μονάδα μπορεί να ανταλλαχθεί με τον αισθητήρα επιλογής σας, είναι ειλικρινά προαιρετική στο σύνολο.

Βήμα 2: Διάγραμμα ροής

ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ
ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ

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

Βήμα 3: Φρύξιμο

Φριζάρισμα
Φριζάρισμα

Σε σύγκριση με άλλα έργα, η καλωδίωση είναι αρκετά απλή εδώ. Αυτό που πρέπει να γνωρίζετε είναι ότι θα χρειαστείτε μια λειτουργική μονάδα WIFI για να διατηρήσετε επαφή με τον διακομιστή Node-Red ή να αποκτήσετε έναν υπολογιστή απόρριψης για να φιλοξενήσει τον διακομιστή Node-Red που είναι συνδεδεμένος στο Arduino. Δεν φαίνεται στην εικόνα η σύνδεση μεταξύ Arduino και Laptop και ζητώ συγγνώμη εκ των προτέρων για την κακή εικόνα του Fritzing!

Βήμα 4: Κωδικοποίηση

Κωδικοποίηση
Κωδικοποίηση
Κωδικοποίηση
Κωδικοποίηση

Αν κάτι βρήκα είναι ότι με το Firmata (για επικοινωνία Arduino με το Node-Red), τη βιβλιοθήκη DS3231 και πολλά άλλα, υπήρχαν πολλές φορτωμένες βιβλιοθήκες. Από τη δημοσίευσή του, η κωδικοποίηση δεν έχει ολοκληρωθεί, επομένως περιλαμβάνεται ψευδοκώδικας.

Στη βιβλιοθήκη από το DS3231 περιλαμβάνονται προκαθορισμένες ακίδες για κάθε έναν από τους πίνακες Arduino και στην περίπτωση του Mega είναι οι ακίδες 20 και 21 καθώς είναι οι ακίδες SDA και SCL στο mega. Μόλις συνδεθεί, το ρολόι μπορεί να πει ακριβώς ποια μέρα είναι και τι πρέπει να παρακολουθεί. Αυτό που διαπίστωσα ότι ήταν πιο εύκολο να δουλέψω όταν πρόκειται για παρακολούθηση αριθμών, είναι η χρήση int αντί για συμβολοσειρά. Αυτό που έχω κάνει είναι ότι μετατρέπω τους αριθμούς μιας συμβολοσειράς σε int, αλλά καθώς το int δεν μπορεί να χρησιμοποιηθεί: για να διαχωρίσω ένα ρολόι, αποφάσισα να κάνω κάτι άλλο. Αντί να δουλεύουμε με τις ώρες, θα δουλεύουμε με πρακτικά. Πολλά λεπτά. Εάν το ρολόι είναι 13:21 για παράδειγμα, θα έχω τα δύο πρώτα ψηφία χωρισμένα και χρονισμένα με εξήντα. Βρισκόμαστε τώρα στα 801 λεπτά, καθώς 13 φορές 60 ισούται με 780 και προσθέτετε τα τελευταία 21 λεπτά. Εάν το Node-Red μας λέει ότι ο ήλιος δύει στις 16:58 (σε περίπτωση χειμώνα), τα εξωτερικά φώτα ανάβουν μεταξύ 1018 λεπτών και προκαθορισμένου χρόνου απενεργοποίησης, ο οποίος θα είναι 1380 (23:00). Εάν το χρονόμετρό μας είναι μεταξύ αυτών, τα φώτα ανάβουν. Τα παραπάνω μαθηματικά είναι βασικά ολόκληρο το πρόγραμμα, χωρίς τα βήματα του Node-Red να συνδεθεί στο Arduino και να επικοινωνήσει. Θα έχετε επίσης έναν αισθητήρα που θα βεβαιώνεται ότι τα φώτα ανάβουν (ούτως ή άλλως), αλλά διαφορετικά αυτό είναι ολόκληρο το παραπάνω πρόγραμμα.

Βήμα 5: Κόμβος-Κόκκινο

Κόμβος-Κόκκινο
Κόμβος-Κόκκινο
Κόμβος-Κόκκινο
Κόμβος-Κόκκινο
Κόμβος-Κόκκινο
Κόμβος-Κόκκινο
Κόμβος-Κόκκινο
Κόμβος-Κόκκινο

Δεν είναι ιδιαίτερα μεγάλη ροή, όχι ότι χρειάζεται σε αυτήν την περίπτωση. Οι πρώτες 2 σειρές κόμβων είναι το μεγάλο μέρος του προγράμματος. Χρησιμοποιώντας μια συνάρτηση GET, λαμβάνουμε τις σημερινές προβλέψεις για το πώς θα ανατείλει και θα δύσει ο ήλιος. Από εκεί χρησιμοποιούμε έναν επιλογέα CSS για να ανακτήσουμε τις συγκεκριμένες πληροφορίες μας, συνήθως προσπελάσιμες σε ιστότοπους "Inspect Elements" σε firefox όπως υποδεικνύεται στις εικόνες. Σημειώστε ότι δεν λειτουργούν όλοι οι ιστότοποι με αυτόν τον τρόπο και αυτός που χρησιμοποιώ τυχαίνει να λειτουργεί τέλεια με αυτόν τον τρόπο. Από εκεί θα γράψει πληροφορίες στην καρφίτσα 13 γιατί αυτό έχω ορίσει να είναι, αν και η δοκιμή δεν πρέπει να υπαγορεύσει εάν μια καρφίτσα να φτάσει σε διαφορετικούς χρόνους είναι εφικτή. Όπως περιγράφεται στο μέρος κωδικοποίησης, οι πληροφορίες θα προέρχονται από το Arduino στο Node-Red, όπου στη συνέχεια θα εμφανίζονται σε έναν προσβάσιμο ιστότοπο όπου μπορεί κανείς να το ελέγξει εύκολα. Θα χρειαστείτε Firmata για αυτό εάν θέλετε να χρησιμοποιήσετε τις λειτουργίες Arduino αποκτήθηκε μέσω της βιβλιοθήκης κόμβου-κόκκινου-κόμβου-arduino στο Node-Red. Αν και δεν έχει ρυθμιστεί ακόμη πλήρως και θα ενημερωθεί καθώς τελειώσω το έργο, έχω επισυνάψει τον κώδικα για το Node-Red Flow σε ένα έγγραφο κειμένου για εύκολη πρόσβαση.

Βήμα 6: Ανάπτυξη και χρήση

Ανάπτυξη και χρήση
Ανάπτυξη και χρήση

Και για να ολοκληρώσουμε το διδακτικό μας, είναι το πρακτικό μέρος του. Με λίγα σπίτια να έχουν αυτό το επίπεδο αυτόματου φωτισμού, μια λύση όλο το χρόνο είναι ευπρόσδεκτη για πολλούς ιδιοκτήτες σπιτιού. Για να το συνδέσετε πραγματικά με λαμπτήρες που χρησιμοποιούν ηλεκτρικό ρεύμα που δεν είναι Arduino, δεν συνιστώ να το κάνετε μόνοι σας αν δεν γνωρίζετε ακριβώς τι κάνετε. Με το έργο να τελειώσει, θα αναλάβω αυτό το έργο με τη βοήθεια ηλεκτρολόγου για να είμαι σίγουρος. Φωτίζοντας τον δρόμο σας με αισθητήρα ή αυστηρά χρονικά, σας συνιστώ να βασιστείτε σε αυτό που έχω κάνει ήδη αν σημαίνει ότι θα το χρησιμοποιήσω πραγματικά πέρα από αυτή τη δοκιμαστική φάση στην οποία βρίσκεται αυτή τη στιγμή. Το μεγαλύτερο μέρος του προβλήματός μου με το έργο ήταν αυστηρά στο κομμάτι Node-Red to Arduino και ελπίζω να έχω καταφέρει να εξηγήσω όσο πιο καθαρά γίνεται αυτό Εγινε.

Συνιστάται: