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

Amazon Dash Button Silent Doorbell: 10 βήματα (με εικόνες)
Amazon Dash Button Silent Doorbell: 10 βήματα (με εικόνες)

Βίντεο: Amazon Dash Button Silent Doorbell: 10 βήματα (με εικόνες)

Βίντεο: Amazon Dash Button Silent Doorbell: 10 βήματα (με εικόνες)
Βίντεο: Amazon Dash Doorbell | GIT TECH'D 2024, Νοέμβριος
Anonim
Image
Image

Κοιτάζετε συνεχώς έξω από το παράθυρο, ώστε να μπορείτε να παρακολουθείτε τους επισκέπτες πριν χτυπήσουν το κουδούνι; Κουραστήκατε τα σκυλιά και το μωρό να τρελαίνονται όποτε χτυπάει; Δεν θέλετε να ξοδέψετε μια περιουσία για μια «έξυπνη» λύση;

Το να κάνεις ένα σιωπηλό κουδούνι είναι τόσο εύκολο όσο να σπάσεις ένα κουμπί Dash $ 5 $! Το μόνο άλλο πράγμα που χρειάζεστε είναι ένας υπολογιστής που είναι πάντα στο σπίτι - όπως, ας πούμε, το Raspberry Pi που κάθεστε. Λάβετε ειδοποιήσεις κειμένου οποιαδήποτε στιγμή κάποιος σπρώξει το νέο σας κουδούνι και κρατήστε όλο το σπίτι ευχαριστημένο. (Είναι ακόμα πιο δροσερό να λαμβάνετε ειδοποιήσεις αν έχετε έξυπνο ρολόι!)

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

  • Κουμπί Dash Amazon
  • Ένας υπολογιστής που μένει στο σπίτι (όπως ένα Raspberry Pi)

Βήμα 1: Ρύθμιση του κουμπιού παύλας

Ρύθμιση του κουμπιού Dash σας
Ρύθμιση του κουμπιού Dash σας
Ρύθμιση του κουμπιού Dash σας
Ρύθμιση του κουμπιού Dash σας

Η προετοιμασία του κουμπιού Dash σας για hacking είναι αρκετά απλή - απλά πρέπει να περάσετε από ολόκληρη τη διαδικασία ρύθμισης του Amazon μείον την επιλογή ενός προϊόντος.

Αυτή η ρύθμιση απαιτεί την εφαρμογή Amazon, η οποία είναι διαθέσιμη για iOS και Android. Μόλις συνδεθείτε στο Amazon μέσα στην εφαρμογή, μεταβείτε στον Λογαριασμό σας -> Κουμπιά και συσκευές Dash -> Ρύθμιση νέας συσκευής. Επιλέξτε "Dash Button" και ακολουθήστε τις οδηγίες μέχρι να σας ζητηθεί να επιλέξετε ένα προϊόν.

Κλείστε την εφαρμογή. Μην ακυρώσετε τη ρύθμιση. μην πατήσετε το x - απλά κλείστε την εφαρμογή. Εάν επιλέξατε κατά λάθος ένα προϊόν ή επανατοποθετείτε ένα παλιό κουμπί Dash, απλώς αφαιρέστε τη συσκευή μέσω της εφαρμογής Amazon και ακολουθήστε ξανά αυτά τα βήματα.

Αν θέλετε να αλλάξετε την εμφάνιση του κουμπιού σας, το ξεφλούδισμα του αυτοκόλλητου ετικέτας είναι εύκολο.

Βήμα 2: Εγκαταστήστε το Node JS στη συσκευή σας

Για να βρούμε (και στη συνέχεια να χρησιμοποιήσουμε) τη διεύθυνση υλικού του κουμπιού Dash, πρέπει να χρησιμοποιήσουμε το Node JS. Αυτό μπορεί να εγκατασταθεί σε οποιονδήποτε υπολογιστή - Mac, Linux (Raspberry Pi) ή Windows.

Το τελικό μας έργο εξαρτάται από την ύπαρξη ενός υπολογιστή που είναι συνδεδεμένος στο ίδιο δίκτυο με το κουμπί μας που εκτελεί ένα αδιάκοπο σενάριο Node, οπότε λάβετε το υπόψη κατά την επιλογή της συσκευής σας. Μια επιφάνεια εργασίας στο σπίτι ή το Raspberry Pi θα ήταν τέλεια.

Επιλέγω να χρησιμοποιήσω ένα Pi 3, αλλά ένα Pi Zero με WiFi dongle θα λειτουργούσε επίσης!

Για να εγκαταστήσετε το Node JS στον υπολογιστή σας, ακολουθήστε τις κατάλληλες οδηγίες:

  • Raspberry Pi
  • Mac OS
  • Windows

Ο Alex Horton έγραψε μια φανταστική ενότητα μόνο για αυτό που προσπαθούμε να κάνουμε, που ονομάζεται node-dash-button. Πρέπει να το εγκαταστήσουμε, μαζί με τον διαχειριστή πακέτων κόμβων (npm) και το libpcap. Εισαγάγετε αυτές τις εντολές στη γραμμή εντολών:

sudo apt-get install npm

sudo apt-get install libpcap-dev npm install node-dash-button

Βήμα 3: Βρείτε τη διεύθυνση του κουμπιού

Βρείτε τη διεύθυνση του κουμπιού
Βρείτε τη διεύθυνση του κουμπιού
Βρείτε τη διεύθυνση του κουμπιού
Βρείτε τη διεύθυνση του κουμπιού

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

Πρώτα, κρατήστε πατημένο το κουμπί στο κουμπί παύλας για περίπου 5 δευτερόλεπτα έως ότου η λυχνία LED αρχίσει να χτυπά αργά μπλε. Στο τηλέφωνό σας, ανοίξτε τις ρυθμίσεις wifi και βρείτε το wifi «Amazon Configure Me». Μόλις συνδεθείτε σε αυτό, ανοίξτε το πρόγραμμα περιήγησης ιστού και μεταβείτε στη διεύθυνση "https://192.168.0.1".

Η διεύθυνση που ψάχνουμε είναι διεύθυνση MAC και θα μοιάζει με "ab: 64: be: 8b: ce: 82".

Βήμα 4: Δοκιμή του κουμπιού σας

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

Δημιουργήστε ένα νέο σενάριο μέσα στον κατάλογο κόμβου-παύλας.

sudo nano button_test.js

Και αντιγράψτε-επικολλήστε τα ακόλουθα στο αρχείο:

var dash_button = απαιτούν ('node-dash-button'), dash = dash_button ('xx: xx: xx: xx: xx: xx'), // ΑΝΤΙΚΑΤΑΣΤΗΣΗ ΜΕ ΤΗ ΔΙΕΥΘΥΝΣΗ ΣΑΣ exec = απαιτεί ('child_process'). exec; dash.on («ανιχνεύτηκε», λειτουργία () {console.log («Πιέστηκε το κουμπί!»);});

Αντικαταστήστε τα x στη δεύτερη γραμμή με τη διεύθυνση κουμπιού που μόλις βρήκατε. Αποθηκεύστε το αρχείο με Ctl-x, y.

Ξεκινήστε το σενάριο και πατήστε το κουμπί σας.

κόμβος sudo button_test.js

Θα πρέπει να δείτε "Πατημένο το κουμπί!" εκτύπωσε. Τώρα που μπορούμε να εντοπίσουμε πατήματα κουμπιών, μπορούμε να ενεργοποιήσουμε ενέργειες με βάση αυτές!

Βήμα 5: Ρύθμιση αρχικού λογαριασμού κατάστασης

Ρύθμιση αρχικού λογαριασμού κατάστασης
Ρύθμιση αρχικού λογαριασμού κατάστασης
Ρύθμιση αρχικού λογαριασμού κατάστασης
Ρύθμιση αρχικού λογαριασμού κατάστασης

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

Υπάρχουν δύο τρόποι ενεργοποίησης μιας ειδοποίησης κειμένου - υπηρεσίες όπως το Twilio ή το PushBullet. Ένας από τους ευκολότερους τρόπους που βρήκα ήταν μέσω της αρχικής κατάστασης. Απαιτούσε ελάχιστη επιπλέον κωδικοποίηση και μου παρείχε μια προβολή ταμπλό για το πότε είχε πατηθεί το κουμπί μου.

Μεταβείτε στη διεύθυνση https://iot.app.initialstate.com και δημιουργήστε έναν νέο λογαριασμό.

Πρέπει να εγκαταστήσετε το αρχικό SDK για το NodeJS στην επιφάνεια εργασίας/φορητό υπολογιστή/Raspberry Pi. Σε μια γραμμή εντολών (μην ξεχάσετε να κάνετε SSH πρώτα στο Pi σας), εκτελέστε την ακόλουθη εντολή:

cd/home/pi/node_modules/node-dash-button

sudo npm εγκατάσταση αρχικής κατάστασης

Για να δοκιμάσετε το streamer, δημιουργήστε ένα δοκιμαστικό αρχείο:

nano stream_test.js

Και αντιγράψτε-επικολλήστε τα ακόλουθα (βρίσκονται επίσης εδώ):

var IS = απαιτούν («αρχική κατάσταση»);

var bucket = IS.bucket ('NodeJS_SDK_Example', 'YOUR_ACCESS_KEY_GOES_HERE'); // Σπρώξτε το συμβάν στην αρχική κατάσταση κάδου.push ("Κατάσταση επίδειξης", "ενεργό"); setTimeout (λειτουργία () {// Σπρώξτε έναν άλλο κάδο συμβάντος.push ("Κατάσταση επίδειξης", "ανενεργός");}, 1000);

Αποθηκεύστε το σενάριο με Ctl-x, y.

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

Στη γραμμή 2, θα δείτε μια γραμμή που ξεκινά με var bucket = IS.bucket (…. Αυτές οι γραμμές δημιουργούν έναν νέο κάδο δεδομένων που ονομάζεται "NodeJS_SDK_Example" και σχετίζεται με τον λογαριασμό σας. Αυτή η συσχέτιση συμβαίνει λόγω της δεύτερης παραμέτρου στην ίδια γραμμή. Το κλειδί πρόσβασης στο λογαριασμό αρχικής κατάστασης είναι μια μεγάλη σειρά γραμμάτων και αριθμών. Εάν μεταβείτε στον λογαριασμό αρχικής κατάστασης στο πρόγραμμα περιήγησής σας, κάντε κλικ στο όνομα χρήστη σας επάνω δεξιά και μετά μεταβείτε στις "ρυθμίσεις μου", θα βρείτε το κλειδί πρόσβασής σας εκεί.

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

κόμβος stream_test.js

Επιστρέψτε στον αρχικό σας λογαριασμό στο πρόγραμμα περιήγησής σας. Ένας νέος κάδος δεδομένων που ονομάζεται "NodeJS_SDK_Example" θα πρέπει να έχει εμφανιστεί στα αριστερά στο ράφι καταγραφής (ίσως χρειαστεί να ανανεώσετε τη σελίδα). Κάντε κλικ σε αυτόν τον κάδο για να δείτε τα δεδομένα δοκιμής.

Τώρα είστε έτοιμοι να στείλετε τα κουμπιά σας στην αρχική κατάσταση!

Βήμα 6: Τελικός κώδικας

Τελικός Κώδικας
Τελικός Κώδικας

Έχουμε ήδη εγκαταστήσει το SDK κόμβου αρχικής κατάστασης, οπότε το μόνο που χρειάζεται να κάνουμε είναι να το προσθέσουμε στον κωδικό μας!

Ακολουθεί μια τροποποιημένη έκδοση του σεναρίου button_test.js που χρησιμοποιήσαμε νωρίτερα:

var dash_button = απαιτούν ('node-dash-button'), dash = dash_button ('xx: xx: xx: xx: xx: xx'), // ΑΝΤΙΚΑΤΑΣΤΗΣΗ ΜΕ ΤΗ ΔΙΕΥΘΥΝΣΗ ΣΑΣ exec = απαιτεί ('child_process'). exec; var IS = απαιτούν («αρχική κατάσταση»); var bucket = IS.bucket ('κουδούνι', 'YOUR_ACCESS_KEY'); dash.on ("ανιχνεύτηκε", λειτουργία () {console.log ("Πιέστηκε το κουμπί!"); bucket.push ("Μπροστινή πόρτα", "Κάποιος είναι εδώ!");});

Αντιγράψτε-επικολλήστε αυτό το σενάριο σε ένα νέο αρχείο (ακόμα μέσα στον κατάλογο κόμβου-παύλας):

sudo nano doorbell.js

Θα παρατηρήσετε ότι στις γραμμές 5 και 6 συμπεριλαμβάνουμε την ενότητα Αρχικής κατάστασης και παρέχουμε τις παραμέτρους του κάδου μας. Πρέπει να βάλετε το μοναδικό σας κλειδί πρόσβασης από πριν στη γραμμή 6.

Η γραμμή 10 είναι εκεί που στέλνουμε πραγματικά δεδομένα στην αρχική κατάσταση. Σε αυτή την περίπτωση, έχω ονομάσει τον κουβά μου "Doorbell" και κάνω streaming "Someone is Here!" στην μπροστινή μου πόρτα. Εάν έχετε πολλά κουμπιά Dash, μπορείτε να τα στείλετε όλα στον κάδο "Doorbell" αλλά να τα ονομάσετε ανάλογα με τη θέση τους (δηλαδή "Garage Door", "Bedroom", κ.λπ.).

Αποθηκεύστε το σενάριο με Ctl-x, y.

Για να δοκιμάσετε το σενάριό σας, εκτελέστε:

sudo node doorbell.js.

Όταν πατάτε το κουμπί σας, θα πρέπει να μπορείτε να μεταβείτε στη σελίδα Αρχικής κατάστασης και να δείτε έναν νέο κάδο με το όνομα "Doorbell" στην πλαϊνή γραμμή. Τώρα ας προσθέσουμε ένα Trigger!

Βήμα 7: Ρύθμιση σκανδάλης SMS

Ρύθμιση σκανδάλης SMS
Ρύθμιση σκανδάλης SMS

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

Μπορείτε να επιλέξετε το σήμα από το οποίο θέλετε να ενεργοποιηθεί από την αναπτυσσόμενη λίστα. Ο κάδος μας έχει μόνο ένα - "Μπροστινή πόρτα" - οπότε επιλέξτε αυτό. Στη συνέχεια, επιλέξτε την επιλογή "αντιστοίχιση" και προσθέστε το μήνυμα που μεταδίδετε όταν πατήσετε το κουμπί σας - σε αυτήν την περίπτωση "Κάποιος είναι εδώ!"

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

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

Κάντε κλικ στην επιλογή "Τέλος" στο κάτω μέρος της καρτέλας Ενεργοποίηση για να αποθηκεύσετε τη σκανδάλη σας.

Τώρα είστε έτοιμοι να λάβετε ειδοποιήσεις κειμένου! Πατήστε το κουμπί σας (ενώ εκτελείται το σενάριο doorbell.js). Θα πρέπει να λάβετε ένα κείμενο σε 8 δευτερόλεπτα ή λιγότερο!

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

Βήμα 8: Εξατομικεύστε τον Πίνακα ελέγχου σας

Εξατομικεύστε τον Πίνακα ελέγχου σας
Εξατομικεύστε τον Πίνακα ελέγχου σας
Εξατομικεύστε τον Πίνακα ελέγχου σας
Εξατομικεύστε τον Πίνακα ελέγχου σας

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

Για να αλλάξετε το όνομα ενός κεραμιδιού, απλά κάντε δεξί κλικ στο πλακίδιο και επιλέξτε "επεξεργασία πλακιδίου". Μέσα στο πλαίσιο τίτλου που εμφανίζεται, μπορείτε να βάλετε τη συντόμευση για οποιοδήποτε emoji. Κάνοντας κλικ στο "x" στο επάνω μέρος του παραθύρου διαμόρφωσης θα αποθηκεύσετε τις αλλαγές σας.

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

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

Βήμα 9: Εκκίνηση του σεναρίου από εκκίνηση

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

Σε Mac Θα χρησιμοποιήσουμε μια υπηρεσία που ονομάζεται crontab και το πρόγραμμα επεξεργασίας κειμένου nano:

Env EDITOR = nano crontab -e

Μέσα στο αρχείο, προσθέστε:

@reboot nohup sudo node /Users/UserName/node_modules/node-dash-button/doorbell.js &

Φροντίστε να αντικαταστήσετε το "UserName" με το δικό σας. Εάν ονομάσατε το σενάριό σας κάτι άλλο ή το βάλατε σε διαφορετικό κατάλογο, αντικαταστήστε το /Users/UserName/node_modules/node-dash-button/doorbell.js με τη σωστή διαδρομή. Η διαδρομή στο παράδειγμά μου είναι ο κύριος κατάλογος χρηστών που ακολουθείται από τον κατάλογο node_modules/node-dash-button. Μπορείτε εύκολα να αντιγράψετε το όνομα διαδρομής ενός αρχείου ακολουθώντας αυτές τις οδηγίες.

Αποθηκεύστε το αρχείο με Ctl-x, y. Μπορείτε να δοκιμάσετε αν λειτουργεί επανεκκινήστε τον υπολογιστή σας.

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

Σε μηχανή Raspberry Pi/Linux Η εκτέλεση ενός σεναρίου από την εκκίνηση στο Pi είναι αρκετά απλή. Θα χρησιμοποιήσουμε μια υπηρεσία που ονομάζεται crontab:

sudo crontab -e

Επιλέξτε τον αγαπημένο σας επεξεργαστή κειμένου (μου αρέσει το nano) και στο κάτω μέρος του αρχείου (κάτω από όλα τα σχόλια), προσθέστε:

@reboot nohup sudo node /home/pi/node_modules/node-dash-button/doorbell.js &

Εάν ονομάσατε το σενάριό σας κάτι άλλο ή το βάλατε σε διαφορετικό κατάλογο, αντικαταστήστε το /home/pi/node_modules/node-dash-button/doorbell.js με τη σωστή διαδρομή. Η διαδρομή στο παράδειγμά μου είναι ο κύριος κατάλογος Pi που ακολουθείται από τον κατάλογο node_modules/node-dash-button.

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

Για να χειριστώ τις πτώσεις δικτύου, αποφάσισα να εφαρμόσω έναν τρόπο για το Pi να εντοπίσει μια σύνδεση δικτύου και να κάνει επανεκκίνηση εάν δεν είναι εκεί.

Πρώτα πρέπει να δημιουργήσουμε ένα σενάριο για να ελέγξουμε το WiFi και στη συνέχεια να ενεργοποιήσουμε τον τερματισμό λειτουργίας:

CD

sudo nano /usr/local/bin/checkwifi.sh

Τοποθετήστε τα παρακάτω μέσα στο αρχείο, φροντίζοντας να αντικαταστήσετε τη διεύθυνση IP με τη διεύθυνση IP του δρομολογητή σας:

ping -c4 IP_ADDRESS> /dev /null

αν [$? ! = 0] στη συνέχεια sudo /sbin /shutdown -r now fi

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

sudo chmod 775 /usr/local/bin/checkwifi.sh

Ακριβώς όπως το σενάριό μας doorbell.js, θα προσθέσουμε αυτό το σενάριο στο crontab:

sudo crontab -e

Θέση

*/5 * * * */usr/bin/sudo -H /usr/local/bin/checkwifi.sh >>/dev/null 2> & 1

κάτω από τη γραμμή που προσθέσαμε νωρίτερα. Αυτό θα εκτελεί το σενάριο ελέγχου checkwifi κάθε 5 λεπτά. Τώρα βγείτε από το crontab και επανεκκινήστε το Pi:

sudo επανεκκίνηση

Όλα πρέπει να είναι ρυθμισμένα και να λειτουργούν! Μπορείτε επίσης να ρυθμίσετε έναν τρόπο παρακολούθησης των διαδικασιών που εκτελούνται σε ένα Pi ακολουθώντας αυτό το σεμινάριο.

Βήμα 10: Συμπέρασμα

συμπέρασμα
συμπέρασμα

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

Συνιστάται: