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

IoT Outdoor Pet Door: 6 βήματα (με εικόνες)
IoT Outdoor Pet Door: 6 βήματα (με εικόνες)

Βίντεο: IoT Outdoor Pet Door: 6 βήματα (με εικόνες)

Βίντεο: IoT Outdoor Pet Door: 6 βήματα (με εικόνες)
Βίντεο: Ιδέες για Χειροποίητες Κατασκευές Που Θα Πάνε Το Σπίτι Σας Σε Άλλο Επίπεδο ▶6 2024, Ιούλιος
Anonim
IoT Outdoor Pet Door
IoT Outdoor Pet Door
IoT Outdoor Pet Door
IoT Outdoor Pet Door
IoT Outdoor Pet Door
IoT Outdoor Pet Door
IoT Outdoor Pet Door
IoT Outdoor Pet Door

Εμπνεύστηκα από αυτό το διδακτικό να δημιουργήσω μια αυτόματη πόρτα κοτέτσι. Όχι μόνο ήθελα την πόρτα του κοτέτσι σε ένα χρονόμετρο, αλλά ήθελα επίσης να συνδέσω την πόρτα στο διαδίκτυο, ώστε να μπορώ να την ελέγξω με το τηλέφωνό μου ή τον υπολογιστή μου. Αυτή η πόρτα χτίστηκε για το κοτέτσι μου, ωστόσο, θα μπορούσε εύκολα να εφαρμοστεί σε άλλους τύπους κατοικιών για μια ποικιλία κατοικίδιων. Θα μπορούσατε επίσης να χρησιμοποιήσετε διαφορετικά είδη κινητήρων 12V εκτός από τον παλιό κινητήρα κεραίας αυτοκινήτου που χρησιμοποιούσα.

Μετά τη ρύθμιση και τη σύνδεση του Adafruit IO και του IFTTT με το ESP8266, η πόρτα του κοτέτσι μου μπορεί να ελεγχθεί διαδικτυακά. Η πόρτα μπορεί να ανοίξει ή να κλείσει:

1) Σε ακριβείς ώρες που μπαίνω στο adafruit.io

2) Πατώντας ένα κουμπί στο τηλέφωνό μου

3) Με την αποστολή μηνύματος κειμένου σε συγκεκριμένο αριθμό

4) Κάνοντας κλικ σε ένα κουμπί στο adafruit.io

5) Πατώντας ένα φυσικό κουμπί

Πέρα από αυτά τα χαρακτηριστικά, η πόρτα του κοτέτσι μπορεί να στείλει ειδοποιήσεις push στο τηλέφωνό μου μέσω της εφαρμογής IFTTT για τυχόν προβλήματα με την πόρτα, όπως η πόρτα που δεν ανοίγει ή κλείνει.

Επειδή το κοτέτσι μου είναι έξω περίπου 500 πόδια μακριά από το δρομολογητή WiFi μου, χρησιμοποίησα έναν πομπό και δέκτη RFM69HCW 433MHz σε συνδυασμό με ένα ESP8266 για να ολοκληρώσω αυτό το έργο. Υπάρχει ένα μαύρο εσωτερικό κουτί πομπού με υλικό που είναι συνδεδεμένο στο διαδίκτυο και ένα γκρι εξωτερικό κουτί δέκτη που ελέγχει τον κινητήρα.

Αυτό το διδακτικό θα σας οδηγήσει στη διαδικασία δημιουργίας του υλικού που απαιτείται για τον έλεγχο ενός κινητήρα 12V που ανοίγει ή κλείνει την πόρτα του κοτέτσι μου.

Χρησιμοποίησα τα ακόλουθα μέρη:

Adafruit 32u4 με 433MHz RFM69HCW - $ 25

Adafruit MCP23017 I2C 16 επέκταση θύρας εισόδου/εξόδου IC - 2,95 $

Adafruit Feather HUZZAH με WiFi ESP8266 - 16,95 $

Adafruit Radio FeatherWing 433MHz RFM69HCW - 10 $

Adafruit SMA Connector για PCB πάχους 1,6 mm - 2,50 $

Adafruit uFL SMA Antenna Connector - 0,75 $

Κουμπί Adafruit RGB Push - 10,95 $

Τροφοδοτικό 12V - 7 $

Τροφοδοτικό USB 5V - 7 $

Καλώδιο Micro USB - 5 $

Πίνακας αναμετάδοσης 4 καναλιών (μπορεί να χρησιμοποιήσει 2 κανάλια)- 7 $

DC -DC Buck Converter (χρησιμοποιείται μόνο ένα αλλά διατίθεται σε συσκευασία των 5) - 20 $

Διακόπτης Reed (αισθητήρας μαγνητικού διακόπτη πόρτας) - $ 9

2x 433MHz Omnidirectional Antenna - $ 6

Προσαρμογέας καλωδίου uFL σε SMA (χρησιμοποιείται μόνο ένας αλλά διατίθεται σε συσκευασία των 2) - $ 5

Αδιάβροχο εξωτερικό κουτί έργου ABS - 11 $

Μαύρο κουτί έργου ABS - 10 $

LCD 20x4 μπλε χαρακτήρα - 10 $

Μηχανή κεραίας αυτοκινήτου 12V - ~ 25 $ στο ebay

Σύρμα και αντιστάσεις

Βήμα 1: Εξωτερικός δέκτης

Υπαίθριος Δέκτης
Υπαίθριος Δέκτης
Υπαίθριος Δέκτης
Υπαίθριος Δέκτης

Ο εξωτερικός δέκτης αποτελείται από ένα Adafruit 32u4 με 433MHz RFM69HCW συνδεδεμένο σε μερικά ρελέ που ενεργοποιούν ή απενεργοποιούν την ισχύ για έναν κινητήρα 12V. Αυτές οι μονάδες καθώς και ένας μετατροπέας 12V σε 5V DC-DC βρίσκονται μέσα σε ένα αδιάβροχο γκρι κιβώτιο έργου. Τέλος, υπάρχει ένας αισθητήρας διακόπτη πόρτας συνδεδεμένος με έναν από τους πείρους του μικροελεγκτή Aruino 32u4 που ανιχνεύει αν η πόρτα άνοιξε ή έκλεισε σωστά ή όχι όταν έπρεπε.

Κάθε 15 δευτερόλεπτα, ο εσωτερικός πομπός θα στέλνει "Άνοιγμα" ή "Κλείσιμο". Με βάση την εντολή που ελήφθη, το Arduino 32u4 θα ενεργοποιήσει ή θα απενεργοποιήσει ένα ρελέ. Για τον κινητήρα που επέλεξα, ο οποίος είναι παλιός κινητήρας κεραίας αυτοκινήτου, έπρεπε να ενεργοποιήσω ή να απενεργοποιήσω δύο ρελέ λόγω του τρόπου με τον οποίο είναι συνδεδεμένος ο κινητήρας. Βασικά υπήρχε ένα ρελέ για την ενεργοποίηση της ισχύος και στη συνέχεια ένα άλλο ρελέ που έλεγχε εάν ο κινητήρας επεκτεινόταν ή όχι.

Μόλις ληφθεί η ανοιχτή ή κλειστή μετάδοση, ο εξωτερικός δέκτης απαντά με "sensorOpen" ή "sensorClosed" για να υποδείξει την κατάσταση του αισθητήρα διακόπτη πόρτας. Στην ιδανική περίπτωση, η εντολή "άνοιγμα" θα επέστρεφε μια απόκριση "sensorOpen", ωστόσο, εάν η πόρτα κολλήσει ή μπλοκάρει ο κινητήρας, αυτές δεν θα ταιριάζουν. Όταν δεν ταιριάζουν, ο εσωτερικός πομπός θα εμφανίσει αυτές τις πληροφορίες και μια ειδοποίηση push θα σταλεί στο τηλέφωνό σας.

Βήμα 2: Σύνδεση υλικού εξωτερικού δέκτη

Σύνδεση υλικού εξωτερικού δέκτη
Σύνδεση υλικού εξωτερικού δέκτη
Σύνδεση υλικού εξωτερικού δέκτη
Σύνδεση υλικού εξωτερικού δέκτη
Σύνδεση υλικού εξωτερικού δέκτη
Σύνδεση υλικού εξωτερικού δέκτη

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

Όπως ανέφερα παραπάνω, ο κινητήρας που χρησιμοποίησα απαιτούσε δύο ρελέ. Έβαλα μια εικόνα του pinout. Το δεύτερο που συνδέετε 12V στο κόκκινο καλώδιο, ο κινητήρας θα αποσυρθεί εάν επεκταθεί. Εάν συνδέσετε 12V στο κόκκινο καλώδιο και στο πράσινο καλώδιο ταυτόχρονα, ο κινητήρας θα επεκταθεί.

Ο διακόπτης καλαμιών που σύνδεσα παραπάνω θα πρέπει να είναι καλωδιωμένος ως ένας κανονικά κλειστός διακόπτης. Η διαφορά μεταξύ κανονικά ανοιχτού και κανονικά κλειστού εξηγείται στην εικόνα που επισυνάπτω παραπάνω. Χρησιμοποιώντας λογισμικό, υπάρχει μια εσωτερική αντίσταση έλξης προσαρτημένη στον πείρο εισόδου στο 32u4, οπότε το μόνο που χρειάζεται να κάνετε είναι να συνδέσετε τον διακόπτη πόρτας στον πείρο εισόδου και επίσης στη γείωση.

Θα πρέπει να συνδέσετε μια κεραία στο Adafruit 32u4. Παρακαλούμε δείτε το πολύ καλά εξηγημένο σεμινάριο του Adafruit για αυτό το βήμα. Επέλεξα να χρησιμοποιήσω μια εξωτερική κεραία αντί για ένα κομμάτι σύρμα για να έχω καλύτερη εμβέλεια.

Βήμα 3: Πομπός εσωτερικού χώρου

Εσωτερικός πομπός
Εσωτερικός πομπός
Εσωτερικός πομπός
Εσωτερικός πομπός
Εσωτερικός πομπός
Εσωτερικός πομπός

Ο εσωτερικός πομπός αποτελείται από ένα Adafruit Radio FeatherWing 433MHz RFM69HCW στοιβασμένο πάνω από ένα φτερό Adafruit HUZZAH με ESP8266 WiFi. Αυτές οι ενότητες συνδέονται με μια οθόνη χαρακτήρων 20x4 και ένα ασημί κουμπί RGB στο εσωτερικό ενός μαύρου κουτιού έργου.

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

Εάν ο εξωτερικός δέκτης χάσει ρεύμα ή εάν το σήμα 433MHz δεν μπορεί να σταλεί για οποιονδήποτε λόγο, το κουμπί οθόνης και RGB θα μεταβούν στην πρώτη από τις δύο πιθανές λειτουργίες σφάλματος. Στην πρώτη λειτουργία σφάλματος, η οθόνη θα λέει "ΣΦΑΛΜΑ! Δοκιμάστε να κάνετε επανεκκίνηση του εξωτερικού δέκτη." και το κουμπί δεν θα έχει χρώμα. Εάν ο αισθητήρας διακόπτη πόρτας εντοπίσει ότι η πόρτα δεν έκλεισε ή άνοιξε σωστά, το κουμπί οθόνης και RGB θα μεταβούν στη δεύτερη από τις δύο λειτουργίες σφάλματος. Στη δεύτερη λειτουργία σφάλματος, η οθόνη θα λέει "ΣΦΑΛΜΑ! Πρόβλημα αισθητήρα πόρτας ή διακόπτη." και το κουμπί δεν θα έχει χρώμα. Όταν το πρόβλημα επιλυθεί μόνο του, το κουμπί οθόνης και RGB θα επιστρέψουν στο φυσιολογικό. Μπορείτε να λάβετε ειδοποιήσεις push στο τηλέφωνό σας εάν προκύψει οποιαδήποτε από αυτές τις λειτουργίες σφάλματος (θα περάσω από αυτήν τη ρύθμιση σε μεταγενέστερο βήμα).

Βήμα 4: Σύνδεση υλικού εσωτερικού πομπού

Σύνδεση υλικού εσωτερικού πομπού
Σύνδεση υλικού εσωτερικού πομπού
Σύνδεση υλικού εσωτερικού πομπού
Σύνδεση υλικού εσωτερικού πομπού

Μετά τη στοίβαξη του Adafruit Radio FeatherWing 433MHz RFM69HCW πάνω από ένα Adafruit Feather HUZZAH με ESP8266 WiFi, απομένουν μόνο 2 ακίδες που δεν έχουν ληφθεί, οι καρφίτσες I2C SDA και SCL. Αυτός είναι ο λόγος για τον οποίο πήγα με το ολοκληρωμένο κύκλωμα MCP23017 (IC). Είναι ένα πραγματικά δροσερό IC που συνδέει έως και 16 επιπλέον ακίδες εισόδου/εξόδου σε οποιονδήποτε μικροελεγκτή μέσω I2C. Επιπλέον, υπάρχει μια προκαθορισμένη βιβλιοθήκη που ονομάζεται Adafruit-RGB-LCD-Shield που χρησιμοποιεί αυτό το IC με μια οθόνη χαρακτήρων που είναι τεχνικά γραμμένη για αυτό το προϊόν Adafruit, ωστόσο, λειτουργεί τέλεια για αυτό το έργο.

Η ιδέα να χρησιμοποιήσετε το MCP23017 με οθόνη χαρακτήρων προέρχεται από αυτό το πολύ καλά γραμμένο διδακτικό. Σε παρακαλώ Έλεγξέ το!

Πήρα αυτό το οδηγό και αντί να συνδέσω πολλά πλήκτρα και μια οθόνη RGB στο IC, ένωσα μόνο ένα κουμπί που είχε ένα RGB LED στο εσωτερικό του και μια μονόχρωμη οθόνη στο IC. Αυτό μου επέτρεψε να ορίσω το PIN 1 του IC (συνήθως χρησιμοποιείται για τον μπλε οπίσθιο φωτισμό μιας οθόνης RGB) ως οπίσθιο φωτισμό για τη μονόχρωμη οθόνη μου, το PIN 28 (συνήθως χρησιμοποιείται για τον πράσινο οπίσθιο φωτισμό μιας οθόνης RGB) ως το κόκκινο LED στο εσωτερικό του κουμπί, και το PIN 27 (συνήθως χρησιμοποιείται για τον κόκκινο οπίσθιο φωτισμό μιας οθόνης RGB) ως πράσινο LED στο εσωτερικό του κουμπιού. Το PIN 24 συνδέθηκε στη μία πλευρά του κουμπιού και η άλλη πλευρά συνδέθηκε στη γείωση. Μπορείτε να δείτε το pinout του κουμπιού στην εικόνα που επισυνάπτεται παραπάνω (άφησα την μπλε κάθοδο αποσυνδεδεμένη).

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

Θα πρέπει να συντομεύσετε τρεις ακίδες στο πάνω μέρος του FeatherWing 433MHz RFM69HCW όπως εξηγείται από αυτό το σεμινάριο του Adafruit. Θα πρέπει επίσης να συνδέσετε μια κεραία στο FeatherWing 433MHz RFM69HCW. Παρακαλούμε δείτε το πολύ καλά εξηγημένο σεμινάριο του Adafruit για αυτό το βήμα. Επέλεξα να χρησιμοποιήσω μια εξωτερική κεραία με μια πλαϊνή υποδοχή SMA αντί για ένα κομμάτι σύρμα για να έχω καλύτερη εμβέλεια.

Βήμα 5: Σύνδεση με το Adafruit. IO και το IFTTT

Σύνδεση με το Adafruit. IO και το IFTTT
Σύνδεση με το Adafruit. IO και το IFTTT
Σύνδεση με το Adafruit. IO και το IFTTT
Σύνδεση με το Adafruit. IO και το IFTTT

Adafruit IO:

Ακολουθήστε τις οδηγίες σε αυτό το σεμινάριο Adafruit για να εγγραφείτε στο Adafruit. IO εάν δεν έχετε λογαριασμό. Θα πρέπει επίσης να διαβάσετε τι είναι μια ροή και ένας πίνακας ελέγχου.

Με απλά λόγια, ένας πίνακας ελέγχου μοιάζει με τη γραφική διεπαφή χρήστη, ενώ οι ροές είναι αυτές στις οποίες στέλνετε δεδομένα, ώστε να μπορείτε να τα αποθηκεύσετε στο Διαδίκτυο. Θα χρειαστεί να δημιουργήσετε 1 Πίνακα ελέγχου και 4 Ροές. Ονόμασα το δικό μου πριν μάθω πώς να γράφω σωστά το κοτέτσι, οπότε παρακαλώ συγχωρέστε την εσφαλμένη ορθογραφία. Εάν δεν θέλετε να μετονομάσετε τα ονόματα των ροών στον κώδικα arduino, χρησιμοποιήστε την ίδια ονομασία που έκανα.

Δημιουργήστε πρώτα τις τέσσερις ροές:

1) "Chicken Coup" Αυτό είναι για το διακόπτη Open/Closed

2) "Chicken Coup Timer" Αυτό είναι για το ανοιχτό χρονόμετρο

3) "Chicken Coup Timer 2" Αυτό είναι για το χρονόμετρο κλεισίματος

4) "Chicken Coup Error Message" Αυτό ισχύει για τα μηνύματα σφάλματος

Δημιουργήστε έναν πίνακα ελέγχου που ονομάζεται Chicken Coup και προσθέστε 4 μπλοκ χρησιμοποιώντας το μπλε κουμπί +. Δείτε την παραπάνω εικόνα για τους τύπους μπλοκ που πρέπει να τοποθετήσετε καθώς και τα ονόματα των μπλοκ. Βεβαιωθείτε ότι έχετε ονομάσει τις καταστάσεις του διακόπτη ακριβώς "Άνοιγμα" και "Κλειστό"

IFTTT:

Το τμήμα IFTTT αυτού του έργου προσθέτει τη δυνατότητα να πατήσετε ένα κουμπί στο τηλέφωνό σας και να στείλετε ένα κείμενο για να ανοίξετε ή να κλείσετε την πόρτα του κοτέτσι. Επιτρέπει επίσης στην εφαρμογή IFTTT να σας στέλνει ειδοποιήσεις push εάν δημοσιευτεί οτιδήποτε στη ροή μηνύματος σφάλματος Chicken Coup Error. Εάν δεν θέλετε αυτές τις δυνατότητες, μπορείτε να παραλείψετε αυτήν την ενότητα.

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

Βήμα 6: Μεταφόρτωση κώδικα και επεξεργασία WiFi SSID και κωδικού πρόσβασης

Θα χρειαστεί να περάσετε από αυτήν τη σελίδα του φροντιστηρίου Adafruit για να μπορέσετε να ανεβάσετε κώδικα στον εσωτερικό πομπό.

Θα χρειαστεί να περάσετε από αυτήν τη σελίδα του σεμιναρίου Adafruit για να μπορέσετε να ανεβάσετε κώδικα στον εξωτερικό δέκτη.

Θα χρειαστεί να εγκαταστήσετε τη βιβλιοθήκη RFM69, τη βιβλιοθήκη Adafruit_RGBLCDShield, τη βιβλιοθήκη ρολογιού NTC που ονομάζεται simpleDSTadjust και τη βιβλιοθήκη επιλογής. Μπορείτε να βρείτε ένα σεμινάριο για το πώς να το κάνετε εδώ.

Ανοίξτε το Arduino IDE και ανεβάστε τον κωδικό "Outdoor_Receiver.ino" στο εξωτερικό Arduino 32u4 μέσω καλωδίου USB.

Στη συνέχεια, ανοίξτε το "Indoor_Transmitter.ino", ανοίξτε την καρτέλα config.h και εισαγάγετε το όνομα WiFi (SSID) και τον κωδικό πρόσβασής σας μέσα στα εισαγωγικά. Στη συνέχεια, αποκτήστε το όνομα χρήστη Adafruit. IO και το κλειδί IO ακολουθώντας αυτήν τη σελίδα εκμάθησης και εισαγάγετε το στην καρτέλα config.h.

Εάν αλλάξατε τα ονόματα των ροών Adofruit IO, θα χρειαστεί να επεξεργαστείτε τον κώδικα στην κύρια καρτέλα Indoor_Transmitter. Επεξεργαστείτε τα ακόλουθα:

AdafruitIO_Feed *toggleSwitch = io.feed ("Chicken Coup");

AdafruitIO_Feed *timer = io.feed ("Chicken Coup Timer");

AdafruitIO_Feed *timer2 = io.feed ("Chicken Coup Timer 2");

AdafruitIO_Feed *error = io.feed ("Μήνυμα σφάλματος Chicken Coup Error");

Αυτό πρέπει να είναι το μόνο που έχετε να κάνετε! Αν θέλετε να καταλάβετε περαιτέρω πώς λειτουργούν τα δύο σκίτσα, σχολίασα τον κώδικα. Παρακαλώ ενημερώστε με αν έχετε οποιεσδήποτε ερωτήσεις. Καλή τύχη!

Συνιστάται: