Sisällysluettelo:

Amazon Dash Button Silent Doorbell: 10 vaihetta (kuvilla)
Amazon Dash Button Silent Doorbell: 10 vaihetta (kuvilla)

Video: Amazon Dash Button Silent Doorbell: 10 vaihetta (kuvilla)

Video: Amazon Dash Button Silent Doorbell: 10 vaihetta (kuvilla)
Video: Amazon Dash Doorbell | GIT TECH'D 2024, Heinäkuu
Anonim
Image
Image

Katsotko jatkuvasti ikkunasta ulos, jotta voit siepata kävijät ennen kuin he soittavat ovikelloa? Oletko kyllästynyt siihen, että koirat ja vauva tulevat hulluksi milloin tahansa? Etkö halua käyttää omaisuutta "älykkääseen" ratkaisuun?

Hiljaisen ovikellon tekeminen on yhtä helppoa kuin 5 dollarin Amazon Dash -painikkeen hakkerointi! Ainoa muu asia, jonka tarvitset, on tietokone, joka on aina kotona - kuten esimerkiksi Raspberry Pi, jonka ympärillä istut. Saat tekstiviestit milloin tahansa, kun joku painaa uutta ovikelloa ja pitää koko talon onnellisena. (On vielä viileämpää saada ilmoituksia, jos sinulla on älykello!)

Tätä projektia varten tarvitset:

  • Amazon Dash -painike
  • Tietokone, joka pysyy kotona (kuten Raspberry Pi)

Vaihe 1: Dash -painikkeen määrittäminen

Dash -painikkeen määrittäminen
Dash -painikkeen määrittäminen
Dash -painikkeen määrittäminen
Dash -painikkeen määrittäminen

Dash -painikkeen valmisteleminen hakkerointiin on melko yksinkertaista - sinun tarvitsee vain käydä läpi koko Amazonin asennusprosessi miinus tuotteen valinta.

Tämä asetus vaatii Amazon -sovelluksen, joka on saatavana iOS: lle ja Androidille. Kun olet kirjautunut Amazoniin sovelluksen sisällä, siirry kohtaan Tilisi -> Kojelautapainikkeet ja -laitteet -> Määritä uusi laite. Valitse "Dash Button" ja seuraa ohjeita, kunnes sinua kehotetaan valitsemaan tuote.

Sulje sovellus. Älä peruuta asennusta; Älä paina x: tä - sulje sovellus. Jos valitsit tuotteen vahingossa tai käytät uutta Dash -painiketta uudelleen, poista laite Amazon -sovelluksen kautta ja noudata näitä ohjeita uudelleen.

Jos haluat muuttaa napin ulkoasua, tarratarran irrottaminen on helppoa.

Vaihe 2: Asenna Node JS laitteellesi

Jotta voimme löytää (ja käyttää myöhemmin) Dash -painikkeen laitteisto -osoitteen, meidän on käytettävä Node JS: ää. Tämä voidaan asentaa mihin tahansa tietokoneeseen - Mac, Linux (Raspberry Pi) tai Windows.

Viimeinen projektimme riippuu tietokoneesta, joka on yhdistetty samaan verkkoon kuin painike, joka käyttää keskeytymätöntä solmukomentosarjaa, joten pidä tämä mielessä, kun valitset laitettasi. Kotipöytä tai Raspberry Pi olisi täydellinen.

Päätän käyttää Pi 3: ta, mutta Pi Zero, jossa on WiFi -dongle, toimisi myös!

Asenna Node JS tietokoneellesi noudattamalla asianmukaisia ohjeita:

  • Raspberry Pi
  • Mac käyttöjärjestelmä
  • Windows

Alex Horton kirjoitti fantastisen moduulin juuri sille, mitä yritämme tehdä, nimeltään node-dash-button. Meidän on asennettava se sekä solmupaketinhallinta (npm) ja libpcap. Kirjoita komentoriville nämä komennot:

sudo apt-get install npm

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

Vaihe 3: Etsi painikkeen osoite

Etsi painikkeen osoite
Etsi painikkeen osoite
Etsi painikkeen osoite
Etsi painikkeen osoite

Löysimme yksinkertaisen tavan löytää viivapainikkeen osoitteen.

Pidä ensin kojelaudan painiketta painettuna noin 5 sekuntia, kunnes LED -valo alkaa vilkkua hitaasti. Avaa puhelimessasi wifi -asetukset ja etsi Amazon Configure Me -wifi. Kun olet muodostanut yhteyden tähän, avaa verkkoselain ja siirry osoitteeseen

Etsimämme osoite on MAC -osoite ja se näyttää "ab: 64: be: 8b: ce: 82".

Vaihe 4: Napin testaaminen

Voit vahvistaa, että olet löytänyt oikean osoitteen kirjoittamalla yksinkertaisen komentosarjan, joka tulostaa viestin joka kerta, kun painiketta painetaan.

Luo uusi komentosarja solmu-viiva-painikehakemistoon.

sudo nano button_test.js

Ja kopioi ja liitä seuraava tiedostoon:

var dash_button = vaatia ('node-dash-button'), dash = dash_button ('xx: xx: xx: xx: xx: xx'), // KORVAA Osoitteellasi exec = required ('child_process'). exec; dash.on ('havaittu', function () {console.log ('Painike painettu!');});

Korvaa toisella rivillä olevat x: t vasta löydetyllä painikeosoitteellasi. Tallenna tiedosto näppäimellä Ctl-x, y.

Käynnistä skripti ja paina painiketta.

sudo -solmu button_test.js

Sinun pitäisi nähdä "Painike painettu!" printata. Nyt kun voimme tunnistaa painallukset, voimme käynnistää toimintoja niiden perusteella!

Vaihe 5: Määritä alkuperäinen tilatili

Määritä alustava tilitili
Määritä alustava tilitili
Määritä alustava tilitili
Määritä alustava tilitili

Nyt kun voimme käynnistää komentoriviviestin, kun painamme Dash -painiketta, voimme laukaista kaikenlaisia muita asioita! Tässä tapauksessa aion lähettää tekstiviestin - emme halua, että ovella oleva odottaa odottamaan sähköpostimme tarkistamista.

Tekstiviesti -ilmoituksen voi käynnistää muutamalla tavalla - palvelut, kuten Twilio tai PushBullet. Yksi helpoimmista tavoista, jonka löysin, oli Alkutilan kautta. Se vaati minimaalista ylimääräistä koodausta ja tarjosi minulle kojelaudan näkymän siitä, milloin painiketta oli painettu.

Siirry osoitteeseen https://iot.app.initialstate.com ja luo uusi tili.

Sinun on asennettava NodeJS: n Initial State SDK työpöydälle/kannettavaan tietokoneeseen/Raspberry Pi -laitteeseen. Suorita seuraava komento komentokehotteessa (älä unohda SSH: ta Pi: hen).

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

sudo npm asentaa alkutila

Voit testata suoratoistoa luomalla testitiedoston:

nano stream_test.js

Ja kopioi ja liitä seuraava (löytyy myös täältä):

var IS = vaatia ('alkutila');

var bucket = IS.bucket ('NodeJS_SDK_Example', 'YOUR_ACCESS_KEY_GOES_HERE'); // Työnnä tapahtuma alkuperäiseen tilaan bucket.push ('Esittelytila', 'aktiivinen'); setTimeout (function () {// Push another event bucket.push ('Demo State', 'inaktiivinen');}, 1000);

Tallenna komentosarja Ctl-x, y.

Ennen kuin voimme suorittaa tämän komentosarjan, meidän on kuitenkin lisättävä ainutlaatuinen käyttöavain toiselle riville.

Rivillä 2 näet rivin, joka alkaa var bucket = IS.bucket (…. Tämä rivi luo uuden tietoryhmän nimeltä "NodeJS_SDK_Example" ja liittyy tiliisi. Tämä yhteys johtuu saman parametrin toisesta parametrista Alkuperäisen valtion tilisi käyttöavain on pitkä kirjainten ja numeroiden sarja. Jos siirryt alkuperäisen valtion tilillesi verkkoselaimessasi, napsauta oikeassa yläkulmassa olevaa käyttäjänimeäsi ja siirry sitten "omat asetukset" -kohtaan. pääsyavaimesi siellä.

Suorita testikomentosarja varmistaaksesi, että voimme luoda tietovirran alkuperäisen valtion tilillesi. Suorita seuraava:

solmu stream_test.js

Palaa alkuperäisen valtion tilillesi verkkoselaimellasi. Uuden tietoryhmän nimeltä "NodeJS_SDK_Example" olisi pitänyt näkyä lokihyllyn vasemmalla puolella (sivu on ehkä päivitettävä). Napsauta tätä kauhaa nähdäksesi testitiedot.

Nyt olet valmis lähettämään painikkeen painallukset alkutilaan!

Vaihe 6: Lopullinen koodi

Lopullinen koodi
Lopullinen koodi

Olemme jo asentaneet Initial State Node SDK: n, joten meidän tarvitsee vain lisätä se koodiin!

Tässä on aiemmin käyttämämme painikkeen button_test.js muokattu versio:

var dash_button = vaatia ('node-dash-button'), dash = dash_button ('xx: xx: xx: xx: xx: xx'), // KORVAA Osoitteellasi exec = required ('child_process'). exec; var IS = vaatia ('alkutila'); var bucket = IS.bucket ('Ovikello', 'YOUR_ACCESS_KEY'); dash.on ('havaittu', function () {console.log ('Painike painettu!'); bucket.push ('Etuovi', 'Joku on täällä!');});

Kopioi ja liitä tämä komentosarja uuteen tiedostoon (edelleen node-dash-button -hakemiston sisällä):

sudo nano ovikello.js

Huomaat, että riveille 5 ja 6 sisällytetään alkutilan moduuli ja annamme ryhmäparametrit. Sinun on asetettava ainutlaatuinen käyttöavaimesi aiemmalle riville 6.

Rivillä 10 lähetämme tietoja alkuperäiseen tilaan. Tässä tapauksessa olen antanut ämpärilleni ovikellon ja suoratoistan "Joku on täällä!" etuovessani. Jos sinulla on useita kojelautapainikkeita, voit lähettää ne kaikki ovikelloon, mutta nimetä ne sijainnin mukaan (esim. "Autotallin ovi", "makuuhuone" jne.).

Tallenna komentosarja Ctl-x, y.

Testaa komentosarjasi suorittamalla:

sudo node ovikello.js.

Kun painat painiketta, sinun pitäisi pystyä siirtymään alkuperäisen tilan sivullesi ja nähdä uusi ämpäri nimeltä "ovikello" sivupalkissa. Lisätään nyt liipaisin!

Vaihe 7: SMS -laukaisimen asettaminen

SMS -laukaisimen asettaminen
SMS -laukaisimen asettaminen

"Liipaisimet" ovat Initial State -ilmoitusilmoituksia ja ne on erittäin helppo lisätä. Napsauta vain "Asetukset" ovikellon alta ja napsauta sitten "Liipaisimet" -välilehteä.

Voit valita avattavasta luettelosta signaalin, jonka haluat laukaista. Meidän kauhassa on vain yksi - "Etuovi" - joten valitse se. Valitse sitten "ottelu" -vaihtoehto ja lisää viesti, jota suoratoistat, kun painiketta painetaan - tässä tapauksessa "Joku on täällä!"

Lisää lopuksi puhelinnumerosi tekstiviestien vastaanottamista varten. Sinun on annettava vahvistuskoodi, joka lähetetään puhelimeesi ensimmäisen kerran, kun käytät kyseistä numeroa.

Varmista, että painat puhelinnumerosi vieressä olevaa "+" -merkkiä, muuten liipaisinta ei luoda.

Tallenna liipaisin napsauttamalla Käynnistimet -välilehden alareunassa "Valmis".

Nyt olet valmis vastaanottamaan tekstiviesti -ilmoituksia! Paina painiketta (ovikello.js -komentosarjan ollessa käynnissä). Sinun pitäisi saada teksti 8 sekunnissa tai vähemmän!

Hiljainen ovikellosi on valmis lähtemään! Jos haluat varmistaa, että skriptisi käynnistyy uudelleen sähkökatkon jälkeen, jatka lukemista. Käyn myös läpi emojien lisäämisen ämpäriisi ja signaalien nimiin.

Vaihe 8: Kojelaudan mukauttaminen

Kojelaudan mukauttaminen
Kojelaudan mukauttaminen
Kojelaudan mukauttaminen
Kojelaudan mukauttaminen

Jos haluat korostaa alkuperäisen tilan hallintapaneelia, emojien lisääminen tai nimien muuttaminen kokonaan on erittäin yksinkertaista.

Jos haluat muuttaa ruudun nimen, napsauta ruutua hiiren kakkospainikkeella ja valitse "muokkaa ruutua". Esiin tulevan Otsikko -ruudun sisälle voit laittaa minkä tahansa emojin pikakuvakkeen. Napsauttamalla "x" -kuvaketta määritysikkunan yläreunassa muutokset tallennetaan.

Voit tehdä tämän myös ämpäriisi klikkaamalla "Asetukset" kauhan nimen alla ja muokkaamalla sitten Nimi -kenttää.

Voit lisätä taustakuvan koontinäyttöön, jotta tietosi saavat enemmän persoonallisuutta ja kontekstia.

Vaihe 9: Käynnistä komentosarja käynnistyksestä

Käsikirjoitus, jota käytät kotitietokoneellasi tai Pi, on avain hiljaiseen ovikellomme. Jos jotain tapahtuu, kuten sähkökatkos, haluamme varmistaa, että skriptimme käynnistyy uudelleen.

Macissa aiomme käyttää palvelua nimeltä crontab ja nano -tekstieditori:

env EDITOR = nano crontab -e

Lisää tiedoston sisälle:

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

Muista korvata "Käyttäjänimi" omalla. Jos annoit skriptillesi jonkin muun nimen tai sijoitit sen toiseen hakemistoon, korvaa /Users/UserName/node_modules/node-dash-button/doorbell.js oikea polku. Esimerkkini polku on pääkäyttäjähakemisto ja sen jälkeen hakemisto node_modules/node-dash-button. Voit helposti kopioida tiedoston polun nimen noudattamalla näitä ohjeita.

Tallenna tiedosto näppäimellä Ctl-x, y. Voit testata, toimiiko se käynnistämällä tietokone uudelleen.

Windows -käyttöjärjestelmä Noudata tässä annettuja ohjeita aloittaaksesi solmukomentosarjasi uudelleenkäynnistyksen yhteydessä. Muista määrittää komentosarjan koko polku.

Raspberry Pi/Linux -laitteella Skriptin suorittaminen Pi: n käynnistyksestä on melko yksinkertaista. Käytämme crontab -nimistä palvelua:

sudo crontab -e

Valitse suosikki tekstieditori (pidän nanosta) ja lisää tiedoston alareunaan (kaikkien kommenttien alle):

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

Jos annoit skriptillesi jonkin muun nimen tai sijoitit sen toiseen hakemistoon, korvaa /home/pi/node_modules/node-dash-button/doorbell.js oikealla polulla. Esimerkkini polku on Pi-päähakemisto, jota seuraa node_modules/node-dash-button -hakemisto.

Tallenna tiedosto! Sinun on käynnistettävä uudelleen, jotta se tulee voimaan, mutta jos haluat myös käynnistää uudelleen, jos Internet -yhteys katkeaa, aiomme lisätä toisen tehtävän crontabiin tässä seuraavassa vaiheessa.

Verkkohäviöiden käsittelemiseksi päätin toteuttaa vain tavan, jolla Pi havaitsee verkkoyhteyden ja käynnistää sen uudelleen, jos sitä ei ole.

Ensin meidän on luotava komentosarja WiFi -yhteyden tarkistamiseksi ja sitten sammutuksen käynnistämiseksi:

CD

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

Aseta seuraava tiedostoon ja muista korvata IP -osoite reitittimesi IP -osoitteella:

ping -c4 IP_OSOITE> /dev /null

jos [$? ! = 0] sitten sudo /sbin /shutdown -r nyt fi

Ping tarkistaa yhteyden. Jos se palaa nollasta poikkeavan poistumiskoodin kanssa, komentosarja lähettää sammutuskomennon. Tallenna ja poistu komentosarjasta. Varmista nyt, että sen käyttöoikeudet ovat kunnossa:

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

Aivan kuten doorbell.js -komentosarjamme, aiomme lisätä tämän komentosarjan crontabiin:

sudo crontab -e

Paikka

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

aiemmin lisäämämme rivin alla. Tämä suorittaa checkwifi -skriptimme 5 minuutin välein. Lopeta nyt crontab ja käynnistä Pi uudelleen:

sudo uudelleenkäynnistys

Kaiken pitäisi olla asennettuna ja toimiva! Voit myös määrittää tavan seurata käynnissä olevia prosesseja Pi: llä noudattamalla tätä opetusohjelmaa.

Vaihe 10: Johtopäätös

Johtopäätös
Johtopäätös

Sinulla on nyt hiljainen ovikello, joka estää niitä Amazon -toimittajia herättämästä sinua! Kerro minulle, jos sinulla on kysyttävää tai keksit ainutlaatuisia muutoksia.

Suositeltava: