Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Ρύθμιση του δρομολογητή σας (προαιρετικό, αλλά συνιστάται)
- Βήμα 2: Κωδικός
- Βήμα 3: Υλικό (beta)
- Βήμα 4: Outlook/Αναφορές
Βίντεο: [15 λεπτά] Weasley Clock / Who Is Home Indicator - Βασισμένο στο TR -064 (beta): 4 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
ΕΝΗΜΕΡΩΣΗ: Δείτε το βήμα 3.
Long story (TL; DR παρακάτω): Πριν από λίγο καιρό έγραψα ένα μικρό σενάριο bash στον υπολογιστή μου το οποίο σάρωσε το δίκτυο για καταχωρημένες συσκευές και συνέκρινε τα ονόματα κεντρικών υπολογιστών τους με μια λίστα με συσχετισμένα ονόματα. Κάθε φορά που μια συσκευή συνδεόταν ή έβγαινε από το δίκτυο έπαιρνα μια ειδοποίηση. Έτσι θα είχα μια ιδέα ποιος είναι στο σπίτι (όχι μόνο είναι ωραίο να ξέρεις ποιος είναι στο σπίτι για να τους ρωτήσεις αν θέλουν να πάνε σε ένα γεύμα ή κάτι τέτοιο, αλλά μπορεί επίσης να σε βοηθήσει να αποφύγεις δυσάρεστες καταστάσεις). Το πρόβλημα είναι ότι αυτή η μέθοδος δεν είναι πολύ αξιόπιστη. Δυστυχώς, ορισμένες συσκευές δεν απαντούν σε pings (π.χ. smartphones) και φαίνεται ότι περνούν σε κάποια λειτουργία εξοικονόμησης ενέργειας, επομένως δεν ανιχνεύονται αξιόπιστα με εντολές όπως το nmap. Προσπάθησα να το ξεπεράσω απαιτώντας τουλάχιστον 10 αρνητικά πριν ανακοινώσω τελικά ότι η συσκευή έφυγε από το δίκτυο. Συνολικά λειτούργησε, αλλά αργά, αναξιόπιστα και όχι πολύ ωραία. Επίσης, ήθελα να μπορώ να ελέγξω ποιος είναι στο σπίτι, χωρίς να ανοίξω τον υπολογιστή μου. Έτσι, είχα αυτά τα ESP8266 ξαπλωμένα - και ήθελα να παίξω μαζί τους. Αλλά δεν ήθελα να φτιάξω τον 10.120.124.812ο μετεωρολογικό σταθμό που βασίζεται σε ESP ή κάτι τέτοιο (γιατί θα θέλατε να παρακολουθείτε τον καιρό με το χάλια θερμόμετρό σας ± 2 ° C όταν μπορείτε να επισκεφτείτε κάποια ιστοσελίδα ούτως ή άλλως;). Το σχέδιο λοιπόν έγινε. Δυστυχώς αποδεικνύεται ότι το ESP φαίνεται να μην είναι εξοπλισμένο για σωστά ping (που ήταν κακό για αρχή, θυμάστε;) πόσο μάλλον να κάνει μια πλήρη σάρωση δικτύου. Σκέφτηκα να γράψω κάποια βιβλιοθήκη για αυτό - αλλά δεδομένου ότι το C ++ μου είναι πολύ περιορισμένο, αυτό είναι το πρώτο μου έργο ESP και δεν είμαι ιδιοφυΐα με τα πράγματα του δικτύου ούτε κατάργησα αυτήν την ιδέα. Αφού έκανα κάποια έρευνα, διαπίστωσα ότι μου ο δρομολογητής (μάρκα Fritz! Box) έχει στην πραγματικότητα ένα API! ΝΑΙ !!!! Το πρωτόκολλο ονομάζεται TR-064. Ένα τόσο εμπνευσμένο όνομα, σωστά; Κάνοντας κάποια έρευνα για το θέμα, βρήκα μια (μάλλον χάλια) τεκμηρίωση στο διαδίκτυο. Μου πήρε λίγο χρόνο για να το επεξεργαστώ. Ενδέχεται να δημοσιεύσω μια πιο πρακτική οδηγία τις επόμενες ημέρες (και πώς να επικοινωνήσετε με/να δοκιμάσετε αυτό το API χρησιμοποιώντας ένα πρόσθετο προγράμματος περιήγησης). Μόλις κατάλαβα το API, άρχισα να το χρησιμοποιώ από το ESP μου. Λίγα λόγια: Πήρα μια λύση πάπιας-ταινίας-και-wd40 που εκτελούσε και έκανε αυτό που ήθελα (ερωτώντας το API για συνδεδεμένες συσκευές, συγκρίνετέ τις με μια λίστα διευθύνσεων MAC και εναλλάσσοντας LED ανάλογα). Αλλά ήθελα μια πιο ισχυρή και ευέλικτη λύση και αυτό το API έχει πολλά περισσότερα να προσφέρει (μπορείτε να αλλάξετε τις ρυθμίσεις (ενεργοποίηση/απενεργοποίηση του wifi, αλλαγή κωδικού πρόσβασης, άνοιγμα/κλείσιμο του wifi επισκεπτών, αλλαγή ισχύος σήματος), επανεκκίνηση του δρομολογητή, ερώτηση της ταχύτητας σύνδεσης,…) - έτσι αποφάσισα να δημιουργήσω μια καθολική βιβλιοθήκη TR -064! TL; DR; Συσκευή που δείχνει μέσω LED που βρίσκεται αυτή τη στιγμή στο σπίτι. Δουλεύει τέλεια, δεν έχει ακόμα υπέροχη στέγαση (γεια - παρατήρησα το beta στον τίτλο;). Χρησιμοποιεί πρωτόκολλο SOAP για επικοινωνία με δρομολογητή. Έγραψε τη βιβλιοθήκη Arduino για να συμβεί αυτό. Απαιτούμενες γνώσεις • Βασικές γνώσεις Arduino/ESP • Εάν έχετε συγκεντρώσει ένα παράδειγμα Blink με το ESP σας, θα είστε καλά! • Εάν όχι, μπορείτε να ακολουθήσετε τα δύο πρώτα βήματα αυτού του διδακτέου βολικό, αν θέλετε να αφήσετε το στάδιο του breadboard • Κάποιος τρισδιάστατος σχεδιασμός ή/και ξυλουργική μπορεί να είναι χρήσιμος για έναν σύνδεσμο έργου κατοικίαςGithub [https://github.com/Aypac/Arduino-TR-064-SOAP-Library] για γρήγορη αναφορά.
Προμήθειες
- ESP8266 ή ESP32 στο Development-Board ή με άλλο προγραμματιστή (2 ~ 6 €)
- Καλώδιο USB που ταιριάζει στον προγραμματιστή
- Προσαρμογέας ρεύματος (π.χ. USB ή μπαταρία ~ 2 €)
- Λίγα LED και αντιστάσεις (~ 1 €)
- (Θήκη)
=> Περίπου 4-6 € για μίνιμαλ σχέδιο. Αυτό σημαίνει για μένα, ότι μπορώ εύκολα να κρεμάσω μερικά στο σπίτι. Εάν είστε τεμπέλης, μπορείτε επίσης να χρησιμοποιήσετε έναν πίνακα ανάπτυξης με ενσωματωμένα LED (δείτε βήμα 4 για περισσότερες λεπτομέρειες).
Βήμα 1: Ρύθμιση του δρομολογητή σας (προαιρετικό, αλλά συνιστάται)
Το πρωτόκολλο σχεδιάστηκε ως ένα γενικό πρωτόκολλο για δρομολογητές, αλλά ξέρω μόνο ότι (οι περισσότεροι) δρομολογητές Fritz! Box (πολύ διαδεδομένοι τουλάχιστον στην Ευρώπη) το χρησιμοποιούν. Δεν ξέρω για άλλες μάρκες. Θα υποθέσω λοιπόν ότι χρησιμοποιείτε ένα Fritz! Box. Εάν μπορείτε να το κάνετε αυτό (ή να μην το κάνετε) σε οποιοδήποτε άλλο δρομολογητή, θα χαρώ να το προσθέσω σε αυτό το εκπαιδευτικό (ίσως ξεκινήσετε ακόμη και μια σύντομη λίστα συμβατότητας;).
Αυτό το βήμα δεν είναι απαραίτητο, μπορείτε επίσης να χρησιμοποιήσετε τον λογαριασμό διαχειριστή σας, αλλά δεν είναι σκόπιμο για ευνόητους λόγους (μπορεί να υποκλαπούν ή να εξαχθούν από το ESP σας, μπορεί κατά λάθος να αλλάξετε πράγματα που δεν θέλετε,…) - έτσι σας συμβουλεύω να το κάνετε.
Τέλος πάντων, εδώ πάμε:
- Συνδεθείτε στο Fritz! Box σας πληκτρολογώντας fritz.box στη γραμμή url του αγαπημένου σας προγράμματος περιήγησης.
- Βρείτε τη σελίδα για τη δημιουργία ενός νέου χρήστη FRITZ! Box (θα πρέπει να έχετε προχωρήσει στην ενότητα System, αν δεν μπορείτε να τη βρείτε, δοκιμάστε να ενημερώσετε τη συσκευή σας).
- Δημιουργήστε έναν νέο λογαριασμό όπως βλέπετε στην εικόνα (χρησιμοποιώντας διαφορετικό όνομα χρήστη/κωδικό πρόσβασης!).
- Αποσύνδεση.
Βήμα 2: Κωδικός
-
Μπορείτε να πάρετε τη βιβλιοθήκη από το Github.
- Στα παραδείγματα θα βρείτε ένα αρχείο που ονομάζεται home-indicator.ino, το οποίο είναι ο κώδικας για αυτό το έργο. Τοποθετήστε το φάκελο παραδειγμάτων στον αρχικό φάκελο του έργου σας arduino IDE και τον άλλο φάκελο στο φάκελο βιβλιοθήκες στον ίδιο αρχικό φάκελο έργου.
- (Re) Ξεκινήστε το IDE.
- Ανοίξτε το home-indicator.ino στο IDE και εισαγάγετε τις ρυθμίσεις σας. Θα πρέπει να είναι προφανές τι πηγαίνει πού. Αν έχετε απορίες, ενημερώστε με!
- Τώρα μπορείτε να το μεταγλωττίσετε και να το μεταφέρετε στο ESP σας!
Βήμα 3: Υλικό (beta)
Ναι … Αυτό είναι το βήμα, όπου πρέπει να δουλέψω ακόμη περισσότερο. Αλλά υποθέτω ότι υπάρχει αρκετό υλικό στον ιστό για να καταλάβετε κάτι:) Η ρύθμιση όπως στις εικόνες είναι απλώς μια δίοδος με αντίσταση O 100Ohm που συνδέεται με το GPIO {5, 4, 0, 2}, τα οποία είναι τα D1, Οι καρφίτσες D2, D3, D4 (με αυτή τη σειρά) της πλακέτας MCU ESP8266 και του μικρού πορτοκαλί καλωδίου που οδηγούν τις καθόδους στο GND (σημειώνεται G στον πίνακα μου). Εάν είστε τεμπέλης, μπορείτε να κάνετε αυτό που βλέπετε στη δεύτερη εικόνα. Απλώς χρησιμοποιήστε έναν πίνακα ανάπτυξης με LED που περιλαμβάνονται (όπως το "ESP-202", δείτε εικόνες-περίπου 3,50-5,00 € συμπεριλαμβανομένης της αποστολής). Στη συνέχεια, μπορείτε απλά να το συνδέσετε σε τροφοδοσία USB ή να χρησιμοποιήσετε το πακέτο μπαταριών που περιλαμβάνεται, να σχεδιάσετε μια διεπαφή σε ένα κομμάτι χαρτί και να το κολλήσετε στον τοίχο. Τέλος. Για τη συγκεκριμένη πλακέτα οι θύρες είναι:
int userPins [numUser] = {5, 4, 2, 14, 16};
απο πανω μεχρι κατω.
Βήμα 4: Outlook/Αναφορές
Αυτό εξακολουθώ να σχεδιάζω: 1. Κάνοντας ένα ωραίο περίβλημα (προφανώς) 2. Προσθέτοντας ένα ωραίο GUI για τη διαχείριση χρηστών/LEDs/MAC/γνωστών συσκευών 3. Βελτίωση της βιβλιοθήκης (βλ. Github για αυτό) 4. Επιδιόρθωση: μερικές φορές τα LED αντιδράστε νωθρά (διαρκεί λίγο μέχρι να απενεργοποιηθούν, μετά την αποχώρηση μιας συσκευής) χωρίς προφανή λόγο 5. Συνδέστε το στο διάδρομο και ίσως μερικά ακόμη στο σπίτι. Θα ήθελα πολύ να λάβω κάποια πληροφορία από εσάς! Και όπως πάντα, με χαροποιεί πάρα πολύ να βλέπω άλλους να φτιάχνουν τα σκατά που σκεφτήκατε, οπότε παρακαλώ αφιερώστε λίγο χρόνο για να σχολιάσετε και να δημοσιεύσετε φωτογραφίες!:):) Μερικές ακόμα αναφορές Θα συνδέσω κάποια πράγματα εδώ, που μπορεί να σας βοηθήσουν: • Αναφορά TR-064 • Κάποιος τύπος μπλέκει με το κέλυφος και το TR-064 (καλό είναι να καταλάβετε το API) • Χάρι Πότερ Βικιπαίδεια: Είσοδος ρολογιού Weasley • Μερικοί τύποι δημιουργούν ένα όμορφο, αλλά περίπλοκο ρολόι Weasly*_*Βασίζεται σε μια εφαρμογή για το τηλέφωνό σας που λαμβάνει την τοποθεσία σας. Εάν βρίσκεστε σε ορισμένες προκαθορισμένες περιοχές, η αντίστοιχη λυχνία στο ρολόι θα ανάψει. Για μένα ήταν πολύ περίπλοκο και έπρεπε σε πολλά μέρη όπου θα μπορούσε να σπάσει/αποτύχει: • Οι εφαρμογές πρέπει να είναι ενημερωμένες • Όλοι πρέπει να χρησιμοποιούν αυτές τις εφαρμογές • Και να είναι εντάξει με τον αντίκτυπο στην ιδιωτικότητα • Η εφαρμογή λειτουργεί μόνο με το Διαδίκτυο σύνδεση • Πρέπει να χρησιμοποιήσετε έναν ενδιάμεσο διακομιστή για τη διασύνδεση της επικοινωνίας (εκτός εάν θέλετε να ρυθμίσετε τον εαυτό σας ως διακομιστή και να ανοίξετε το οικιακό σας δίκτυο για εξωτερική κίνηση - ναι, μια ακόμη μη ασφαλής συσκευή IOT που συνδέεται απευθείας στο διαδίκτυο!) • Το η ενδιάμεση υπηρεσία μπορεί να βγει εκτός σύνδεσης μια μέρα/να αλλάξει το API της, •… Χρειάζεστε περισσότερο λογισμικό. Περισσότερο λογισμικό σημαίνει περισσότερα μέρη για να κάνετε λάθος;) Όμως, έκαναν καταπληκτική δουλειά και αν θέλετε να κάνετε κάτι τέτοιο, μεταβείτε στον ιστότοπό τους, είναι πραγματικά υπέροχο!
Συνιστάται:
Κορνίζα Raspberry Pi σε λιγότερο από 20 λεπτά: 10 βήματα (με εικόνες)
Raspberry Pi Photo Frame σε λιγότερο από 20 λεπτά: Ναι, αυτό είναι ένα άλλο ψηφιακό πλαίσιο φωτογραφιών! Αλλά περιμένετε, είναι πιο κομψό και ίσως το πιο γρήγορο να συγκεντρωθείτε και να τρέξετε
Δημιουργήστε ένα κομμάτι με αισθητήρα χαμηλού κόστους σε λίγα λεπτά !: 10 βήματα (με εικόνες)
Δημιουργήστε ένα κομμάτι με αισθητήρα χαμηλού κόστους σε λίγα λεπτά!: Στο προηγούμενο Instructable, σας έδειξα πώς να φτιάξετε ένα μοντέλο διάταξης αμαξοστοιχίας με αυτοματοποιημένη επένδυση. Χρησιμοποίησε ένα κομμάτι κομματιού, το οποίο ονομάστηκε «αισθητήριο κομμάτι». Είναι πολύ χρήσιμο πράγμα να υπάρχει σε ένα μοντέλο διάταξης σιδηροδρόμων. Μπορώ να χρησιμοποιηθώ για τα εξής: Αποκλεισμός
Φτιάξτε έναν μηχανοκίνητο δεινόσαυρο χρησιμοποιώντας πλαστικό κάδο απορριμμάτων, σε 55 λεπτά ή λιγότερο !: 11 βήματα (με εικόνες)
Φτιάξτε έναν μηχανοκίνητο δεινόσαυρο χρησιμοποιώντας πλαστικό κάδο απορριμμάτων, σε 55 λεπτά ή λιγότερο !: Γεια σας. Με λένε Μάριο και μου αρέσει να χτίζω πράγματα χρησιμοποιώντας σκουπίδια. Πριν από μια εβδομάδα, κλήθηκα να συμμετάσχω σε μια πρωινή εκπομπή του εθνικού τηλεοπτικού καναλιού του Αζερμπαϊτζάν, για να μιλήσω για το " Απόβλητα στην τέχνη " έκθεση. Η μόνη προϋπόθεση; Δεν ειχα
Πώς να δημιουργήσετε την πρώτη σας ενέργεια για το Google Home (σε 10 λεπτά) Μέρος 1: 10 βήματα
Πώς να δημιουργήσετε την πρώτη σας ενέργεια για το Google Home (σε 10 λεπτά) Μέρος 1: Γεια, αυτό είναι το πρώτο από μια σειρά άρθρων που θα γράψω, όπου θα μάθουμε πώς να αναπτύσσουμε και να αναπτύσσουμε Ενέργειες στο Google. Στην πραγματικότητα, εργάζομαι σε "ενέργειες στο Google" τους τελευταίους μήνες. Έχω περάσει από πολλά άρθρα διαθέσιμα για
Μάθετε Arduino σε 20 λεπτά (ισχύος): 10 βήματα (με εικόνες)
Μάθετε Arduino σε 20 λεπτά (power packed): Το εκπαιδευτικό είναι γραμμένο με το όραμα να προσφέρει καλά πράγματα και να βοηθήσει τον πραγματικό χομπίστα του arduino, ο οποίος χρειάζεται πραγματικά μια εύκολη και σαφή πηγή κατανόησης που ο καθένας μπορεί εύκολα να καταλάβει διαβάζοντας αυτήν την ενότητα. Είμαι κι εγώ ardui