Innholdsfortegnelse:

Amazon Dash Button Silent Doorbell: 10 trinn (med bilder)
Amazon Dash Button Silent Doorbell: 10 trinn (med bilder)

Video: Amazon Dash Button Silent Doorbell: 10 trinn (med bilder)

Video: Amazon Dash Button Silent Doorbell: 10 trinn (med bilder)
Video: Amazon Dash Doorbell | GIT TECH'D 2024, Juli
Anonim
Image
Image

Ser du hele tiden ut av vinduet slik at du kan fange opp besøkende før de ringer på døren? Lei av at hundene og babyen blir gale når det ringer? Vil du ikke bruke en formue på en "smart" løsning?

Å lage en stille dørklokke er like enkelt som å hacke en Amazon Dash Button på $ 5! Den eneste andre tingen du trenger er en datamaskin som alltid er hjemme - for eksempel, si at Raspberry Pi du sitter rundt. Få tekstmeldinger når noen trykker på den nye dørklokken din og holder hele huset lykkelig. (Det er enda kulere å få varsler hvis du har en smartklokke!)

For dette prosjektet trenger du:

  • En Amazon Dash -knapp
  • En datamaskin som forblir hjemme (som en Raspberry Pi)

Trinn 1: Konfigurere Dash -knappen

Sette opp Dash -knappen
Sette opp Dash -knappen
Sette opp Dash -knappen
Sette opp Dash -knappen

Å gjøre Dash -knappen klar for hacking er ganske enkelt - du trenger bare å gå gjennom hele oppsettprosessen for Amazon minus å velge et produkt.

Dette oppsettet krever Amazon -appen, som er tilgjengelig for iOS og Android. Når du har logget deg på Amazon inne i appen, går du til Kontoen din -> Dash Buttons & Devices -> Sett opp en ny enhet. Velg "Dash Button" og følg instruksjonene til du blir bedt om å velge et produkt.

Lukk appen. Ikke avbryt oppsettet; ikke slå x - bare lukk appen. Hvis du ved et uhell valgte et produkt eller bruker en gammel Dash -knapp på nytt, fjerner du bare enheten gjennom Amazon -appen og følger disse trinnene igjen.

Hvis du ønsker å endre hvordan knappen din ser ut, er det enkelt å fjerne etiketten.

Trinn 2: Installer Node JS på enheten din

For å finne (og deretter bruke) Dash -knappens maskinvareadresse, må vi bruke Node JS. Dette kan installeres på hvilken som helst datamaskin - Mac, Linux (Raspberry Pi) eller Windows.

Det siste prosjektet vårt er avhengig av å ha en datamaskin som er koblet til det samme nettverket som knappen vår som kjører et uavbrutt Node -skript, så husk det når du velger enheten. Et hjemme-skrivebord eller Raspberry Pi ville være perfekt.

Jeg velger å bruke en Pi 3, men en Pi Zero med en WiFi -dongle ville også fungert!

Følg de riktige instruksjonene for å installere Node JS på datamaskinen:

  • Bringebær Pi
  • Mac os
  • Windows

Alex Horton skrev en fantastisk modul bare for det vi prøver å gjøre kalt node-dash-button. Vi må installere den, sammen med nodepakkebehandleren (npm) og libpcap. Skriv inn disse kommandoene på kommandolinjen:

sudo apt-get install npm

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

Trinn 3: Finn knappens adresse

Finn knappens adresse
Finn knappens adresse
Finn knappens adresse
Finn knappens adresse

Vi har funnet en enkel måte å finne dashbordadressen din.

Hold først knappen på dashbordknappen nede i omtrent 5 sekunder til LED -lampen sakte blåser blått. Åpne wifi -innstillingene på telefonen og finn wifi -konfigurasjonen 'Amazon Configure Me'. Når du er koblet til dette, åpner du nettleseren og går til 'https://192.168.0.1'.

Adressen vi leter etter er MAC -adresse og vil se ut som "ab: 64: be: 8b: ce: 82".

Trinn 4: Test av knappen

Du kan bekrefte at du fant riktig adresse ved å skrive et enkelt skript for å skrive ut en melding hver gang du trykker på knappen.

Lag et nytt skript inne i node-dash-button-katalogen.

sudo nano button_test.js

Og kopier og lim inn følgende i filen:

var dash_button = require ('node-dash-button'), dash = dash_button ('xx: xx: xx: xx: xx: xx'), // ERSTAT MED ADRESSEN din exec = require ('child_process'). exec; dash.on ('oppdaget', funksjon () {console.log ('Trykk på knappen!');});

Erstatt x -tallet på den andre linjen med adressen du nylig fant. Lagre filen med Ctl-x, y.

Start skriptet og trykk på knappen.

sudo node button_test.js

Du bør se "Trykk på knappen!" utskrift. Nå som vi kan oppdage knappetrykk, kan vi utløse handlinger basert på dem!

Trinn 5: Konfigurer den første statskontoen

Konfigurer den første statskontoen
Konfigurer den første statskontoen
Konfigurer den første statskontoen
Konfigurer den første statskontoen

Nå som vi kan utløse en kommandolinjemelding når vi trykker på Dash -knappen, kan vi utløse alle slags andre ting! I dette tilfellet kommer jeg til å utløse en tekstmelding - vi vil ikke at den som står ved døren skal vente til vi sjekker e -posten vår.

Det er et par måter å utløse et tekstvarsel på - tjenester som Twilio eller PushBullet. En av de enkleste måtene jeg fant var gjennom Initial State. Det krevde minimal ekstra koding og ga meg en oversikt over når jeg hadde trykket på knappen.

Gå til https://iot.app.initialstate.com og opprett en ny konto.

Du må installere Initial State SDK for NodeJS på din stasjonære/bærbare/Raspberry Pi. Ved en ledetekst (ikke glem å SSH i Pi først), kjør følgende kommando:

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

sudo npm installer initial-state

For å teste streameren, opprett en testfil:

nano stream_test.js

Og kopier og lim inn følgende (også funnet her):

var IS = require ('initial-state');

var bucket = IS.bucket ('NodeJS_SDK_Example', 'YOUR_ACCESS_KEY_GOES_HERE'); // Skyv hendelsen til initial state bucket.push ('Demo State', 'active'); setTimeout (function () {// Push another event bucket.push ('Demo State', 'inactive');}, 1000);

Lagre skriptet med Ctl-x, y.

Før vi kan kjøre dette skriptet, må vi imidlertid legge til en unik tilgangsnøkkel til den andre linjen.

På linje 2 ser du en linje som starter med var bucket = IS.bucket (…. Denne linjen oppretter en ny databøtte som heter “NodeJS_SDK_Example” og er knyttet til kontoen din. Denne tilknytningen skjer på grunn av den andre parameteren på den samme linje. Tilgangsnøkkelen til din opprinnelige statskonto er en lang serie med bokstaver og tall. Hvis du går til din opprinnelige statskonto i nettleseren din, klikker du på brukernavnet ditt øverst til høyre, og deretter går du til "mine innstillinger", så finner du tilgangsnøkkelen din der.

Kjør testskriptet for å sikre at vi kan opprette en datastrøm til din opprinnelige statskonto. Kjør følgende:

node stream_test.js

Gå tilbake til din opprinnelige statskonto i nettleseren din. En ny databøtte kalt “NodeJS_SDK_Example” burde ha dukket opp til venstre i logghyllen din (du må kanskje oppdatere siden). Klikk på denne bøtta for å se testdataene.

Nå er du klar til å sende knappetrykkene til Initial State!

Trinn 6: Sluttkode

Endelig kode
Endelig kode

Vi har allerede installert Initial State Node SDK, så alt vi trenger å gjøre er å legge den til i koden vår!

Her er en modifisert versjon av button_test.js -skriptet vi brukte tidligere:

var dash_button = require ('node-dash-button'), dash = dash_button ('xx: xx: xx: xx: xx: xx'), // ERSTAT MED ADRESSEN din exec = require ('child_process'). exec; var IS = require ('initial-state'); var bucket = IS.bucket ('Doorbell', 'YOUR_ACCESS_KEY'); dash.on ('oppdaget', funksjon () {console.log ('Button push!'); bucket.push ('Front Door', 'Someone is Here!');});

Kopier-lim inn dette skriptet i en ny fil (fortsatt inne i node-dash-knapp-katalogen):

sudo nano doorbell.js

Du vil legge merke til at på linje 5 og 6 inkluderer vi Initial State -modulen og gir våre bøtteparametere. Du må sette din unike tilgangsnøkkel fra før på linje 6.

Linje 10 er der vi faktisk sender data til opprinnelig tilstand. I dette tilfellet har jeg kalt bøtta min "Doorbell" og strømmer "Someone is Here!" ved inngangsdøren min. Hvis du har flere Dash -knapper, kan du sende dem alle til skuffen "Dørklokke", men navngi dem i henhold til posisjonen deres (dvs. "Garasjeport", "Soverom", etc.).

Lagre skriptet med Ctl-x, y.

For å teste skriptet ditt, kjør:

sudo node doorbell.js.

Når du trykker på knappen din, bør du kunne gå til siden Initial State og se en ny bøtte med navnet "Doorbell" i sidefeltet. La oss nå legge til en utløser!

Trinn 7: Angi en SMS -utløser

Angi en SMS -utløser
Angi en SMS -utløser

"Triggers" er Initial State's versjon av varsler, og de er super enkle å legge til. Bare klikk på "Innstillinger" under dørklokkeskuffen, og klikk deretter på "Utløsere" -fanen.

Du kan velge signalet du vil utløse fra rullegardinlisten. Skuffen vår har bare én - "Front Door" - så velg det. Velg deretter "match" -alternativet og legg til meldingen du streamer når du trykker på knappen - i dette tilfellet "Noen er her!"

Til slutt legger du til telefonnummeret ditt for å motta SMS -meldinger. Du må skrive inn en bekreftelseskode som ble sendt til telefonen din første gang du bruker dette nummeret.

Sørg for at du trykker på "+" - tegnet ved siden av telefonnummeret ditt, ellers blir ikke utløseren opprettet.

Klikk "Ferdig" nederst på fanen Utløsere for å lagre utløseren.

Nå er du klar til å motta tekstvarsler! Trykk på knappen (mens doorbell.js -skriptet kjører). Du bør få en tekst på 8 sekunder eller mindre!

Din stille dørklokke er klar til å gå! Hvis du vil forsikre deg om at skriptet starter på nytt ved strømbrudd, fortsett å lese. Jeg vil også gå over å legge til emojis i bøtta og signalnavn.

Trinn 8: Tilpasse dashbordet ditt

Tilpasse dashbordet ditt
Tilpasse dashbordet ditt
Tilpasse dashbordet ditt
Tilpasse dashbordet ditt

Hvis du vil pynte på dashbordet i Initial State, er det superenkelt å legge til emojis eller endre navn helt.

For å endre navnet på en flis, høyreklikker du bare på flisen og velger "rediger flis". Inne i tittelboksen som kommer opp, kan du sette snarveien til hvilken som helst emoji. Hvis du klikker "x" øverst i konfigureringsvinduet, lagres endringene.

Du kan også gjøre dette med navnet på bøtten din ved å klikke på "Innstillinger" under bøttenavnet og deretter redigere Navn -feltet.

Du kan legge til et bakgrunnsbilde på dashbordet for å gi dataene dine mer personlighet og kontekst.

Trinn 9: Start skriptet fra oppstart

Skriptet du kjører på din hjemmemaskin eller Pi er nøkkelen til vår stille dørklokke. Hvis noe skjer som et strømbrudd, vil vi sørge for at skriptet vårt kommer i gang igjen.

På en Mac Vi skal bruke en tjeneste som kalles crontab og tekstredigeringsprogrammet nano:

env EDITOR = nano crontab -e

Legg til i innsiden av filen:

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

Sørg for å erstatte "UserName" med ditt eget. Hvis du navngav skriptet ditt til noe annet eller la det i en annen katalog, erstatter /Users/UserName/node_modules/node-dash-button/doorbell.js med riktig bane. Banen i mitt eksempel er hovedbrukerkatalogen etterfulgt av katalogen node_modules/node-dash-button. Du kan enkelt kopiere filens banenavn ved å følge disse instruksjonene.

Lagre filen med Ctl-x, y. Du kan teste om det fungerer ved å starte datamaskinen på nytt.

På en Windows Følg instruksjonene her for å starte nodeskriptet på omstart. Sørg for å spesifisere hele skriptets bane.

På en Raspberry Pi/Linux -maskin Det er ganske enkelt å kjøre et skript fra oppstart på Pi. Vi kommer til å bruke en tjeneste som heter crontab:

sudo crontab -e

Velg din favoritt tekstredigerer (jeg liker nano), og legg til nederst i filen (under alle kommentarene):

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

Hvis du navngav skriptet ditt til noe annet eller la det i en annen katalog, erstatt /home/pi/node_modules/node-dash-button/doorbell.js med riktig bane. Stien i mitt eksempel er hoved Pi-katalogen etterfulgt av koden node_modules/node-dash-button.

Lagre filen! Du må starte på nytt for at den skal tre i kraft, men hvis du også vil starte på nytt hvis Internett -tilkoblingen går ned, skal vi legge til en annen oppgave i crontab i dette neste trinnet.

For å håndtere nettverksfall, bestemte jeg meg for å bare implementere en måte for Pi å oppdage en nettverkstilkobling og starte på nytt hvis den ikke er der.

Først må vi lage et skript for å sjekke WiFi og deretter utløse nedleggelse:

cd

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

Plasser følgende inne i filen, og sørg for å erstatte IP -adressen med IP -adressen til ruteren:

ping -c4 IP_ADDRESS> /dev /null

hvis [$? ! = 0] deretter sudo /sbin /shutdown -r nå fi

Pingen sjekker om det er en tilkobling. Hvis den returnerer med en utgangskode som ikke er null, sender skriptet avslutningskommandoen. Lagre og gå ut av skriptet. Sørg nå for at tillatelsene er i orden:

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

Akkurat som vårt doorbell.js -skript, skal vi legge dette skriptet til crontab:

sudo crontab -e

Plass

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

under linjen vi la til tidligere. Dette vil kjøre vårt checkwifi -skript hvert 5. minutt. Avslutt nå crontab og start Pi på nytt:

sudo omstart

Alt skal være oppsatt og fungerer! Du kan også sette opp en måte å overvåke kjørende prosesser på en Pi ved å følge denne opplæringen.

Trinn 10: Konklusjon

Konklusjon
Konklusjon

Du har nå en stille dørklokke for å forhindre at Amazon -leveransegutta vekker deg! Gi meg beskjed hvis du har spørsmål eller kommer med noen unike modifikasjoner.

Anbefalt: