Isi kandungan:

Amazon Dash Button Silent Doorbell: 10 Langkah (dengan Gambar)
Amazon Dash Button Silent Doorbell: 10 Langkah (dengan Gambar)

Video: Amazon Dash Button Silent Doorbell: 10 Langkah (dengan Gambar)

Video: Amazon Dash Button Silent Doorbell: 10 Langkah (dengan Gambar)
Video: #101 Long lasting DIY "Amazon Dash Button" using an ESP8266 2024, Julai
Anonim
Image
Image

Sentiasa melihat ke luar tingkap sehingga anda dapat memintas pengunjung sebelum mereka membunyikan loceng pintu? Bosan dengan anjing dan bayi menjadi gila bila-bila masa ia berdering? Tidak mahu menghabiskan banyak wang untuk penyelesaian "pintar"?

Membuat bel pintu senyap semudah menggodam Amazon Dash Button $ 5! Satu-satunya perkara yang anda perlukan ialah komputer yang selalu ada di rumah - seperti, katakanlah, Raspberry Pi yang anda duduki. Dapatkan pemberitahuan teks bila-bila masa seseorang menekan loceng pintu baru anda dan membahagiakan seluruh rumah. (Lebih keren untuk mendapatkan pemberitahuan jika anda mempunyai jam pintar!)

Untuk projek ini, anda memerlukan:

  • Butang Dash Amazon
  • Komputer yang tinggal di rumah (seperti Raspberry Pi)

Langkah 1: Menyiapkan Butang Dash Anda

Menyiapkan Butang Dash Anda
Menyiapkan Butang Dash Anda
Menyiapkan Butang Dash Anda
Menyiapkan Butang Dash Anda

Menyiapkan butang Dash anda untuk digodam cukup mudah - anda hanya perlu melalui keseluruhan proses penyediaan Amazon tanpa memilih produk.

Penyediaan ini memerlukan aplikasi Amazon, yang tersedia untuk iOS dan Android. Setelah log masuk ke Amazon di dalam aplikasi, pergi ke Akaun Anda -> Butang & Peranti Dash -> Siapkan peranti baru. Pilih "Dash Button" dan ikuti arahan sehingga anda diminta memilih produk.

Tutup aplikasinya. Jangan batalkan persediaan; jangan tekan x - tutup saja aplikasi. Sekiranya anda memilih produk secara tidak sengaja atau menggunakan semula butang Dash lama, keluarkan peranti tersebut melalui aplikasi Amazon dan ikuti langkah-langkah ini sekali lagi.

Sekiranya anda ingin mengubah penampilan butang anda, mudah melupuskan pelekat label.

Langkah 2: Pasang Node JS pada Peranti Anda

Untuk mencari (dan seterusnya menggunakan) alamat perkakasan butang Dash anda, kami perlu menggunakan Node JS. Ini boleh dipasang di mana-mana komputer - Mac, Linux (Raspberry Pi), atau Windows.

Projek akhir kami bergantung pada komputer yang disambungkan ke rangkaian yang sama dengan butang kami yang menjalankan skrip Node tanpa gangguan, jadi ingatlah semasa memilih peranti anda. Desktop di rumah atau Raspberry Pi akan sempurna.

Saya memilih untuk menggunakan Pi 3, tetapi Pi Zero dengan dongle WiFi juga akan berfungsi!

Untuk memasang Node JS pada komputer anda, ikuti arahan yang sesuai:

  • Pai raspberi
  • OS Mac
  • Tingkap

Alex Horton menulis modul yang hebat hanya untuk apa yang kita cuba lakukan sebagai butang node-dash. Kita perlu memasangnya, bersama dengan pengurus pakej nod (npm) dan libpcap. Masukkan arahan ini dalam baris arahan:

sudo apt-get install npm

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

Langkah 3: Cari Alamat Butang

Cari Alamat Butang
Cari Alamat Butang
Cari Alamat Butang
Cari Alamat Butang

Kami telah menemui cara mudah untuk mencari alamat butang sempang anda.

Mula-mula, tekan butang pada butang tanda pusing anda selama kira-kira 5 saat sehingga LED mula perlahan-lahan biru strob. Di telefon anda, buka tetapan wifi anda dan cari wifi 'Amazon Configure Me'. Setelah berhubung dengan ini, buka penyemak imbas web anda dan pergi ke 'https://192.168.0.1'.

Alamat yang kami cari adalah alamat MAC dan akan kelihatan seperti "ab: 64: be: 8b: ce: 82".

Langkah 4: Menguji Butang Anda

Anda boleh mengesahkan bahawa anda menemui alamat yang betul dengan menulis skrip ringkas untuk mencetak mesej setiap kali butang ditekan.

Buat skrip baru di dalam direktori butang tanda hubung.

sudo nano button_test.js

Dan salin-tampal yang berikut ke dalam fail:

var dash_button = memerlukan ('node-dash-button'), dash = dash_button ('xx: xx: xx: xx: xx: xx'), // GANTI DENGAN ALAMAT ANDA exec = memerlukan ('child_process'). exec; dash.on ('dikesan', fungsi () {console.log ('Button didorong!');});

Gantikan x di baris kedua dengan alamat butang yang baru anda temui. Simpan fail dengan Ctl-x, y.

Mulakan skrip dan tekan butang anda.

sudo node button_test.js

Anda mesti melihat "Butang ditolak!" cetak. Sekarang kita dapat mengesan penekanan butang, kita dapat mencetuskan tindakan berdasarkannya!

Langkah 5: Sediakan Akaun Negeri Permulaan

Sediakan Akaun Negeri Permulaan
Sediakan Akaun Negeri Permulaan
Sediakan Akaun Negeri Permulaan
Sediakan Akaun Negeri Permulaan

Sekarang kita dapat mencetuskan mesej baris perintah ketika kita menekan butang Dash, kita dapat mencetuskan segala macam perkara lain! Dalam kes ini, saya akan mencetuskan pesanan teks - kami tidak mahu sesiapa yang berada di pintu menunggu sehingga kami memeriksa e-mel kami.

Terdapat beberapa cara untuk mencetuskan pemberitahuan teks - perkhidmatan seperti Twilio atau PushBullet. Salah satu kaedah termudah yang saya dapati adalah melalui Initial State. Ia memerlukan pengekodan tambahan minimum dan memberi saya paparan papan pemuka apabila butang saya ditekan.

Pergi ke https://iot.app.initialstate.com dan buat akaun baru.

Anda perlu memasang SDK Negeri Permulaan untuk NodeJS ke desktop / komputer riba / Raspberry Pi anda. Pada prompt arahan (jangan lupa SSH ke Pi anda terlebih dahulu), jalankan arahan berikut:

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

sudo npm pasang keadaan awal

Untuk menguji streamer, buat fail ujian:

nano stream_test.js

Dan salin-tampal yang berikut (juga terdapat di sini):

var IS = memerlukan ('keadaan awal');

var bucket = IS.bucket ('NodeJS_SDK_Contoh', 'YOUR_ACCESS_KEY_GOES_HERE'); // Tolak acara ke keadaan awal bucket.push ('Demo State', 'aktif'); setTimeout (function () {// Tolak bucket.push acara lain ('Demo State', 'tidak aktif');}, 1000);

Simpan skrip dengan Ctl-x, y.

Sebelum kita dapat menjalankan skrip ini, kita perlu menambahkan Kunci Akses yang unik ke baris kedua.

Pada baris 2, anda akan melihat garis yang bermula dengan var bucket = IS.bucket (…. Garis ini membuat baldi data baru bernama “NodeJS_SDK_Example” dan dikaitkan dengan akaun anda. Perkaitan ini berlaku kerana parameter kedua pada yang sama baris. Kunci akses akaun Negeri Permulaan anda adalah rangkaian huruf dan nombor yang panjang. Sekiranya anda pergi ke akaun Negeri Permulaan di penyemak imbas web anda, klik pada nama pengguna anda di kanan atas, kemudian pergi ke "tetapan saya", anda akan dapati kunci akses anda di sana.

Jalankan skrip ujian untuk memastikan kami dapat membuat aliran data ke akaun Negeri Permulaan anda. Jalankan perkara berikut:

stream_test.js nod

Kembali ke akaun Keadaan Awal anda di penyemak imbas web anda. Baldi data baru yang disebut "NodeJS_SDK_Example" sepatutnya muncul di sebelah kiri di rak log anda (anda mungkin perlu memuat semula halaman). Klik pada baldi ini untuk melihat data ujian.

Sekarang anda sudah bersedia untuk menghantar penekanan butang ke Keadaan Awal!

Langkah 6: Kod Akhir

Kod Akhir
Kod Akhir

Kami sudah memasang SDK Node Keadaan Awal, jadi yang perlu kami lakukan ialah menambahkannya ke kod kami!

Berikut adalah versi modifikasi skrip button_test.js yang kami gunakan sebelumnya:

var dash_button = memerlukan ('node-dash-button'), dash = dash_button ('xx: xx: xx: xx: xx: xx'), // GANTI DENGAN ALAMAT ANDA exec = memerlukan ('child_process'). exec; var IS = memerlukan ('keadaan awal'); var bucket = IS.bucket ('Doorbell', 'YOUR_ACCESS_KEY'); dash.on ('dikesan', fungsi () {console.log ('Button didorong!'); bucket.push ('Front Door', 'Seseorang di Sini!');});

Salin-tampal skrip ini ke dalam fail baru (masih ada di dalam direktori butang tanda hubung):

sudo nano bel pintu.js

Anda akan melihat bahawa pada baris 5 dan 6 kami menyertakan modul Status Permulaan dan memberikan parameter baldi kami. Anda perlu meletakkan Kunci Akses yang unik dari sebelumnya pada baris 6.

Baris 10 adalah tempat kami benar-benar menghantar data ke Status Permulaan. Dalam kes ini, saya telah menamakan baldi saya "Doorbell" dan mengalirkan "Seseorang di Sini!" di pintu depan saya. Sekiranya anda mempunyai banyak butang Dash, anda boleh menghantar semuanya ke baldi "Doorbell" tetapi beri nama mengikut lokasinya (iaitu "Garage Door", "Bedroom", dll.).

Simpan skrip dengan Ctl-x, y.

Untuk menguji skrip anda, jalankan:

sudo simpul bel pintu.js.

Apabila anda menekan butang anda, anda seharusnya dapat pergi ke halaman Status Permulaan anda dan melihat baldi baru bernama "Doorbell" di bar sisi. Sekarang mari tambahkan Pencetus!

Langkah 7: Menetapkan Pencetus SMS

Menetapkan Pencetus SMS
Menetapkan Pencetus SMS

"Pencetus" adalah pemberitahuan versi Negeri Permulaan dan sangat mudah ditambahkan. Cukup klik "Tetapan" di bawah baldi Doorbell, dan kemudian klik pada tab "Pencetus".

Anda boleh memilih isyarat yang ingin dicetuskan dari senarai juntai bawah. Baldi kami hanya mempunyai satu - "Pintu Depan" - jadi pilihlah. Kemudian pilih pilihan "match" dan tambahkan mesej yang anda streaming semasa butang anda ditekan - dalam kes ini "Seseorang di Sini!"

Akhirnya, tambahkan nombor telefon anda untuk menerima mesej SMS. Anda perlu memasukkan kod pengesahan yang dihantar ke telefon anda pada kali pertama anda menggunakan nombor tersebut.

Pastikan anda menekan tanda "+" di sebelah nombor telefon anda atau pemicu tidak akan dibuat.

Klik "Selesai" di bahagian bawah tab Pencetus untuk menyimpan pencetus anda.

Sekarang anda sudah bersedia untuk menerima makluman teks! Tekan butang anda (semasa skrip bel pintu.js sedang berjalan). Anda akan mendapat teks dalam 8 saat atau kurang!

Loceng pintu senyap anda sudah siap! Sekiranya anda ingin memastikan bahawa skrip anda dimulakan semula semasa gangguan bekalan elektrik, teruskan membaca. Saya juga akan menambahkan emoji ke baldi dan nama isyarat anda.

Langkah 8: Memperibadikan Papan Pemuka Anda

Memperibadikan Papan Pemuka Anda
Memperibadikan Papan Pemuka Anda
Memperibadikan Papan Pemuka Anda
Memperibadikan Papan Pemuka Anda

Sekiranya anda ingin menggunakan papan pemuka Status Permulaan anda, menambahkan emoji atau menukar nama sepenuhnya adalah sangat mudah.

Untuk menukar nama jubin, cukup klik kanan pada jubin dan pilih "edit jubin". Di dalam kotak Judul yang muncul, anda boleh meletakkan jalan pintas untuk emoji apa pun. Mengklik "x" di bahagian atas tetingkap konfigurasi akan menyimpan perubahan anda.

Anda juga boleh melakukannya untuk nama baldi anda dengan mengklik "Tetapan" di bawah nama baldi dan kemudian mengedit bidang Nama.

Anda boleh menambahkan gambar latar ke papan pemuka untuk memberi data dan keperibadian anda lebih banyak konteks.

Langkah 9: Memulakan Skrip Dari Boot

Skrip yang anda jalankan di komputer rumah atau Pi adalah kunci loceng pintu senyap kami. Sekiranya sesuatu berlaku seperti pemadaman elektrik, kami ingin memastikan bahawa skrip kami kembali aktif dan berjalan.

Pada Mac Kami akan menggunakan perkhidmatan yang disebut crontab dan editor teks nano:

env EDITOR = nano crontab -e

Di dalam fail, tambahkan:

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

Pastikan untuk mengganti "UserName" dengan nama anda sendiri. Sekiranya anda menamakan skrip anda sesuatu yang lain atau memasukkannya ke dalam direktori lain, ganti /Users/UserName/node_modules/node-dash-button/doorbell.js dengan jalan yang betul. Laluan dalam contoh saya adalah direktori pengguna utama diikuti dengan direktori node_modules / node-dash-button. Anda boleh menyalin nama laluan fail dengan mudah dengan mengikuti arahan ini.

Simpan fail dengan Ctl-x, y. Anda boleh menguji sama ada ia berfungsi dengan menghidupkan semula komputer anda.

Pada Windows Ikuti arahan di sini untuk memulakan skrip nod anda semasa reboot. Pastikan untuk menentukan keseluruhan jalan skrip.

Pada Mesin Raspberry Pi / Linux Menjalankan skrip dari boot pada Pi cukup mudah. Kami akan menggunakan perkhidmatan yang dipanggil crontab:

sudo crontab -e

Pilih editor teks kegemaran anda (saya suka nano) dan di bahagian bawah fail (di bawah semua komen), tambahkan:

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

Sekiranya anda menamakan skrip anda sesuatu yang lain atau memasukkannya ke dalam direktori lain, ganti /home/pi/node_modules/node-dash-button/doorbell.js dengan jalan yang betul. Laluan dalam contoh saya adalah direktori Pi utama diikuti oleh direktori node_modules / node-dash-button.

Simpan fail! Anda perlu reboot agar ia berlaku, tetapi jika anda juga mahu reboot jika sambungan internet terputus, kami akan menambahkan tugas lain ke crontab kami pada langkah seterusnya.

Untuk menangani kejatuhan rangkaian, saya memutuskan untuk hanya melaksanakan cara untuk Pi mengesan sambungan rangkaian dan reboot jika tidak ada.

Mula-mula kita perlu membuat skrip untuk memeriksa WiFi dan kemudian mencetuskan penutupan:

cd

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

Letakkan yang berikut di dalam fail, pastikan untuk mengganti alamat IP dengan alamat IP penghala anda:

ping -c4 IP_ADDRESS> / dev / null

jika [$? ! = 0] kemudian sudo / sbin / shutdown -r sekarang fi

Ping memeriksa sambungan. Sekiranya ia kembali dengan kod keluar bukan sifar, skrip akan menghantar perintah tutup. Simpan dan keluar dari skrip. Sekarang pastikan kebenarannya mengikut urutan:

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

Sama seperti skrip doorbell.js kami, kami akan menambahkan skrip ini ke crontab:

sudo crontab -e

Tempat

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

di bawah garis yang kami tambahkan sebelumnya. Ini akan menjalankan skrip checkwifi kami setiap 5 minit. Sekarang keluar dari crontab dan reboot Pi:

rebo sudo

Semuanya mesti disediakan dan berfungsi! Anda juga boleh mengatur cara untuk memantau proses yang sedang berjalan pada Pi dengan mengikuti tutorial ini.

Langkah 10: Kesimpulannya

Kesimpulannya
Kesimpulannya

Anda sekarang mempunyai loceng pintu yang senyap untuk mengelakkan orang-orang penghantaran Amazon itu membangunkan anda! Beritahu saya jika anda mempunyai pertanyaan atau ada pengubahsuaian unik.

Disyorkan: