Съдържание:

Безшумен звънец на Amazon Dash Button: 10 стъпки (със снимки)
Безшумен звънец на Amazon Dash Button: 10 стъпки (със снимки)

Видео: Безшумен звънец на Amazon Dash Button: 10 стъпки (със снимки)

Видео: Безшумен звънец на Amazon Dash Button: 10 стъпки (със снимки)
Видео: 4 Tips to SELL More KDP Books on Amazon 2024, Юли
Anonim
Image
Image

Постоянно гледате през прозореца, за да можете да прихващате посетителите, преди да позвънят на вратата? Уморихте ли се кучетата и бебето да полудяват, когато звъни? Не искате да похарчите цяло състояние за „умно“решение?

Създаването на безшумен звънец на вратата е толкова лесно, колкото и хакването на бутон за Amazon Dash за 5 долара! Единственото друго нещо, от което се нуждаете, е компютър, който винаги е у дома - като, да речем, този Raspberry Pi, на който седите. Получавайте текстови известия всеки път, когато някой натисне новия ви звънец на вратата и ще поддържа цялата къща щастлива. (Още по -готино е да получавате известия, ако имате интелигентен часовник!)

За този проект ще ви трябва:

  • Бутон за тире на Amazon
  • Компютър, който остава у дома (като Raspberry Pi)

Стъпка 1: Настройка на вашия Dash бутон

Настройване на бутона за тире
Настройване на бутона за тире
Настройване на бутона за тире
Настройване на бутона за тире

Подготовката на вашия Dash бутон за хакерство е доста проста - просто трябва да преминете през целия процес на настройка на Amazon минус избора на продукт.

Тази настройка изисква приложението Amazon, което е достъпно за iOS и Android. След като влезете в Amazon вътре в приложението, отидете на Вашия акаунт -> Бутони и устройства за тире -> Настройване на ново устройство. Изберете „Бутон за тире“и следвайте инструкциите, докато не бъдете подканени да изберете продукт.

Затворете приложението. Не отменяйте настройката; не натискайте x - просто затворете приложението. Ако случайно сте избрали продукт или пренасочвате стар бутон Dash, просто премахнете устройството чрез приложението Amazon и следвайте тези стъпки отново.

Ако искате да промените начина, по който изглежда бутонът, отлепването на стикера на етикета е лесно.

Стъпка 2: Инсталирайте Node JS на вашето устройство

За да намерим (и впоследствие да използваме) хардуерния адрес на вашия бутон Dash, трябва да използваме Node JS. Това може да бъде инсталирано на всеки компютър - Mac, Linux (Raspberry Pi) или Windows.

Нашият окончателен проект зависи от наличието на компютър, свързан към същата мрежа като нашия бутон, който изпълнява непрекъснат Node скрипт, така че имайте това предвид, когато избирате вашето устройство. Работен плот у дома или Raspberry Pi биха били идеални.

Избирам да използвам Pi 3, но Pi Zero с WiFi ключ също би работил!

За да инсталирате Node JS на вашия компютър, следвайте съответните инструкции:

  • Малина Пи
  • Mac OS
  • Windows

Алекс Хортън написа фантастичен модул само за това, което се опитваме да направим, наречено node-dash-button. Трябва да го инсталираме заедно с мениджъра на пакети на възли (npm) и libpcap. Въведете тези команди в командния ред:

sudo apt-get install npm

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

Стъпка 3: Намерете адреса на бутона

Намерете адреса на бутона
Намерете адреса на бутона
Намерете адреса на бутона
Намерете адреса на бутона

Открихме лесен начин да намерим адреса на вашия бутон за тире.

Първо, задръжте бутона на таблото за около 5 секунди, докато светодиодът започне да бавно стяга синьо. На телефона си отворете настройките за wifi и намерете wifi „Amazon Configure Me“. След като се свържете с това, отворете уеб браузъра си и отидете на „https://192.168.0.1“.

Адресът, който търсим, е MAC адрес и ще изглежда като "ab: 64: be: 8b: ce: 82".

Стъпка 4: Тестване на вашия бутон

Можете да потвърдите, че сте намерили правилния адрес, като напишете прост скрипт за отпечатване на съобщение при всяко натискане на бутона.

Създайте нов скрипт в директорията node-dash-button.

sudo nano button_test.js

И копирайте и поставете следното във файла:

var dash_button = require ('node-dash-button'), dash = dash_button ('xx: xx: xx: xx: xx: xx'), // ЗАМЕНЕТЕ С АДРЕСА си exec = require ('child_process'). exec; dash.on ('открит', function () {console.log ('Бутон натиснат!');});

Заменете знаците x на втория ред с новооткрития адрес на бутона. Запазете файла с Ctl-x, y.

Стартирайте скрипта и натиснете бутона.

sudo възел button_test.js

Трябва да видите "Бутон натиснат!" принтирам. Сега, когато можем да открием натискане на бутони, можем да задействаме действия въз основа на тях!

Стъпка 5: Настройка на първоначален държавен акаунт

Настройка на първоначален държавен акаунт
Настройка на първоначален държавен акаунт
Настройка на първоначален държавен акаунт
Настройка на първоначален държавен акаунт

Сега, когато можем да задействаме съобщение от командния ред, когато натискаме бутона Dash, можем да задействаме всякакви други неща! В този случай ще задействам текстово съобщение - не искаме никой от вратата да чака, докато проверим имейла си.

Има няколко начина за задействане на текстово известие - услуги като Twilio или PushBullet. Един от най -лесните начини, които открих, беше чрез Първоначално състояние. Това изискваше минимално допълнително кодиране и ми предостави изглед на таблото за това кога е натиснат бутонът ми.

Отидете на https://iot.app.initialstate.com и създайте нов акаунт.

Трябва да инсталирате SDK за първоначално състояние за NodeJS на вашия работен плот/лаптоп/Raspberry Pi. В командния ред (не забравяйте първо да SSH във вашия Pi), изпълнете следната команда:

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

sudo npm инсталира първоначално състояние

За да тествате стримера, създайте пробен файл:

nano stream_test.js

И копирайте-поставете следното (също намерено тук):

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

var bucket = IS.bucket ('NodeJS_SDK_Example', 'YOUR_ACCESS_KEY_GOES_HERE'); // Преместване на събитието в първоначалното състояние bucket.push ('Demo State', 'active'); setTimeout (function () {// Натиснете друго събитие bucket.push ('Demo State', 'inactive');}, 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 = require ('node-dash-button'), dash = dash_button ('xx: xx: xx: xx: xx: xx'), // ЗАМЕНЕТЕ С АДРЕСА си exec = require ('child_process'). exec; var IS = require ('initial-state'); var bucket = IS.bucket ('Звънец на вратата', 'YOUR_ACCESS_KEY'); dash.on ('открит', function () {console.log ('Бутон натиснат!'); bucket.push ('Предна врата', 'Някой е тук!');});

Копирайте и поставете този скрипт в нов файл (все още в директорията на node-dash-button):

sudo nano doorbell.js

Ще забележите, че на редове 5 и 6 включваме модула Initial State и предоставяме параметрите на кофата. Трябва да поставите своя уникален ключ за достъп от преди на ред 6.

Ред 10 е мястото, където всъщност изпращаме данни до първоначалното състояние. В този случай аз нарекох кофата си „Звънец на вратата“и излъчвам „Някой е тук!“на входната ми врата. Ако имате няколко бутона за тире, можете да ги изпратите всички в кофата „Звънец на вратата“, но да ги наименувате според тяхното местоположение (т.е. „Врата на гаража“, „Спалня“и т.н.).

Запазете скрипта с Ctl-x, y.

За да тествате скрипта си, изпълнете:

sudo възел doorbell.js.

Когато натиснете бутона, трябва да можете да отидете на страницата „Начално състояние“и да видите нова кофа с име „Звънец на вратата“в страничната лента. Сега нека добавим Trigger!

Стъпка 7: Настройване на SMS тригер

Настройване на SMS тригер
Настройване на SMS тригер

„Тригери“са версията на известията на Initial State и те се добавят супер лесно. Просто кликнете върху „Настройки“под кофата на вратата и след това върху раздела „Задействания“.

Можете да изберете сигнала, който искате да задействате от падащия списък. Нашата кофа има само една - „Предна врата“- затова изберете това. След това изберете опцията „съвпадение“и добавете съобщението, което предавате, когато натиснете бутона - в този случай „Някой е тук!“

Накрая добавете телефонния си номер, за да получавате SMS съобщения. Ще трябва да въведете код за потвърждение, изпратен на телефона ви при първото използване на този номер.

Уверете се, че сте натиснали знака „+“до телефонния си номер, в противен случай задействането няма да бъде създадено.

Кликнете върху „Готово“в долната част на раздела Тригери, за да запазите задействането.

Сега сте готови да получавате текстови сигнали! Натиснете бутона (докато скриптът doorbell.js работи). Трябва да получите текст за 8 секунди или по -малко!

Вашият безшумен звънец на вратата е готов за работа! Ако искате да се уверите, че вашият скрипт се рестартира при прекъсване на захранването, продължете да четете. Ще разгледам и добавянето на емотикони към вашата кофа и имена на сигнали.

Стъпка 8: Персонализиране на вашето табло за управление

Персонализиране на вашето табло за управление
Персонализиране на вашето табло за управление
Персонализиране на вашето табло за управление
Персонализиране на вашето табло за управление

Ако искате да си представите таблото за управление на първоначалното състояние, добавянето на емотикони или промяната на имената е изключително просто.

За да промените името на плочка, просто щракнете с десния бутон върху плочката и изберете „редактиране на плочка“. Вътре в полето за заглавие, което се появява, можете да поставите пряк път за всеки емоджи. Щракването върху „x“в горната част на прозореца за конфигуриране ще запази промените ви.

Можете също да направите това с името на вашата кофа, като щракнете върху „Настройки“под името на кофата и след това редактирате полето Име.

Можете да добавите фоново изображение към таблото си за управление, за да придадете на данните си повече индивидуалност и контекст.

Стъпка 9: Стартиране на скрипта от стартиране

Скриптът, който имате на домашния си компютър или Pi, е ключът към нашия безшумен звънец на вратата. Ако нещо се случи като прекъсване на захранването, искаме да сме сигурни, че скриптът ни ще се върне и работи.

На Mac ще използваме услуга, наречена crontab и нано текстов редактор:

env EDITOR = nano crontab -e

Вътре във файла добавете:

@reboot nohup sudo възел /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 машина Изпълнението на скрипт от boot на Pi е доста лесно. Ще използваме услуга, наречена crontab:

sudo crontab -e

Изберете любимия си текстов редактор (харесвам nano) и в долната част на файла (под всички коментари) добавете:

@reboot nohup sudo възел /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 сега 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

под реда, който добавихме по -рано. Това ще стартира нашия скрипт за проверка на всеки 5 минути. Сега излезте от crontab и рестартирайте Pi:

sudo рестартиране

Всичко трябва да бъде настроено и работещо! Можете също така да настроите начин за наблюдение на работещи процеси на Pi, като следвате този урок.

Стъпка 10: Заключение

Заключение
Заключение

Сега имате безшумен звънец на вратата, за да предпазите тези момчета от доставчиците на Amazon да ви събудят! Кажете ми, ако имате въпроси или имате някакви уникални модификации.

Препоръчано: