Índice:

Campainha silenciosa do Amazon Dash Button: 10 etapas (com imagens)
Campainha silenciosa do Amazon Dash Button: 10 etapas (com imagens)

Vídeo: Campainha silenciosa do Amazon Dash Button: 10 etapas (com imagens)

Vídeo: Campainha silenciosa do Amazon Dash Button: 10 etapas (com imagens)
Vídeo: ТОП 50 ЭЛЕКТРИЧЕСКИХ ВЕЛОСИПЕДОВ И ВЕЛОСИПЕДНЫХ АКСЕССУАРОВ 2021–2022 гг. 2024, Julho
Anonim
Image
Image

Está sempre olhando pela janela para interceptar visitantes antes que eles toquem a campainha? Cansado dos cachorros e do bebê enlouquecer sempre que toca? Não quer gastar uma fortuna em uma solução "inteligente"?

Fazer uma campainha silenciosa é tão fácil quanto hackear um botão Amazon Dash de US $ 5! A única outra coisa de que você precisa é de um computador que esteja sempre em casa - como, digamos, aquele Raspberry Pi que você tem por perto. Receba notificações de texto sempre que alguém apertar sua nova campainha e mantenha toda a casa feliz. (É ainda mais legal receber notificações se você tiver um smartwatch!)

Para este projeto, você precisará de:

  • Um botão Amazon Dash
  • Um computador que fica em casa (como um Raspberry Pi)

Etapa 1: Configurando o botão do Dash

Configurando o seu botão Dash
Configurando o seu botão Dash
Configurando o seu botão Dash
Configurando o seu botão Dash

Preparar o botão Dash para hackear é bastante simples - você só precisa passar por todo o processo de configuração da Amazon sem selecionar um produto.

Esta configuração requer o aplicativo Amazon, que está disponível para iOS e Android. Depois de fazer login na Amazon dentro do aplicativo, vá para Sua conta -> Botões e dispositivos do painel -> Configurar um novo dispositivo. Selecione "Botão Dash" e siga as instruções até que seja solicitado a selecionar um produto.

Feche o aplicativo. Não cancele a instalação; não aperte o x - apenas feche o aplicativo. Se você acidentalmente selecionou um produto ou está reaproveitando um botão Dash antigo, apenas remova o dispositivo por meio do aplicativo Amazon e siga estas etapas novamente.

Se você deseja alterar a aparência do seu botão, é fácil retirar o adesivo da etiqueta.

Etapa 2: Instale o Node JS em seu dispositivo

Para encontrar (e posteriormente usar) o endereço de hardware do botão Dash, precisamos usar o Node JS. Isso pode ser instalado em qualquer computador - Mac, Linux (Raspberry Pi) ou Windows.

Nosso projeto final depende de ter um computador conectado à mesma rede que o nosso botão que está executando um script Node ininterrupto, então tenha isso em mente ao escolher seu dispositivo. Um desktop em casa ou Raspberry Pi seria perfeito.

Eu escolhi usar um Pi 3, mas um Pi Zero com um dongle WiFi também funcionaria!

Para instalar o Node JS em seu computador, siga as instruções apropriadas:

  • Raspberry Pi
  • Mac OS
  • janelas

Alex Horton escreveu um módulo fantástico apenas para o que estamos tentando fazer, chamado de botão de traço de nó. Precisamos instalá-lo, junto com o gerenciador de pacotes de nó (npm) e libpcap. Insira estes comandos na linha de comando:

sudo apt-get install npm

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

Etapa 3: Encontre o endereço do botão

Encontre o endereço do botão
Encontre o endereço do botão
Encontre o endereço do botão
Encontre o endereço do botão

Encontramos uma maneira simples de encontrar o endereço do botão do painel.

Primeiro, mantenha pressionado o botão no botão do painel por cerca de 5 segundos até que o LED comece a piscar lentamente em azul. No seu telefone, abra as configurações de wi-fi e encontre o wi-fi 'Amazon Configure Me'. Uma vez conectado a ele, abra seu navegador da web e vá para 'https://192.168.0.1'.

O endereço que procuramos é o endereço MAC e será semelhante a "ab: 64: be: 8b: ce: 82".

Etapa 4: Teste seu botão

Você pode confirmar que encontrou o endereço correto escrevendo um script simples para imprimir uma mensagem sempre que o botão for pressionado.

Crie um novo script dentro do diretório node-dash-button.

sudo nano button_test.js

E copie e cole o seguinte no arquivo:

var dash_button = require ('node-dash-button'), dash = dash_button ('xx: xx: xx: xx: xx: xx'), // SUBSTITUIR PELO SEU ENDEREÇO exec = require ('child_process'). exec; dash.on ('detectado', function () {console.log ('Botão pressionado!');});

Substitua os x na segunda linha pelo endereço do botão recém-encontrado. Salve o arquivo com Ctl-x, y.

Inicie o script e pressione o botão.

sudo node button_test.js

Você deverá ver "Botão pressionado!" imprimir. Agora que podemos detectar o pressionamento de botões, podemos acionar ações com base neles!

Etapa 5: configurar a conta de estado inicial

Configurar conta de estado inicial
Configurar conta de estado inicial
Configurar conta de estado inicial
Configurar conta de estado inicial

Agora que podemos acionar uma mensagem de linha de comando quando pressionamos o botão Dash, podemos acionar todos os tipos de outras coisas! Nesse caso, vou disparar uma mensagem de texto - não queremos que quem está na porta espere até verificarmos nosso e-mail.

Existem algumas maneiras de acionar uma notificação de texto - serviços como Twilio ou PushBullet. Uma das maneiras mais fáceis que encontrei foi por meio do estado inicial. Exigia codificação extra mínima e me fornecia uma visão do painel de quando meu botão tinha sido pressionado.

Acesse https://iot.app.initialstate.com e crie uma nova conta.

Você precisa instalar o SDK do estado inicial para NodeJS em seu desktop / laptop / Raspberry Pi. Em um prompt de comando (não se esqueça de SSH em seu Pi primeiro), execute o seguinte comando:

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

sudo npm install estado inicial

Para testar o streamer, crie um arquivo de teste:

nano stream_test.js

E copie e cole o seguinte (também encontrado aqui):

var IS = requer ('estado inicial');

var bucket = IS.bucket ('NodeJS_SDK_Example', 'YOUR_ACCESS_KEY_GOES_HERE'); // Empurre o evento para o estado inicial bucket.push ('Demo State', 'active'); setTimeout (function () {// Enviar outro evento bucket.push ('Demo State', 'inactive');}, 1000);

Salve o script com Ctl-x, y.

Antes de podermos executar este script, no entanto, precisamos adicionar uma chave de acesso exclusiva à segunda linha.

Na linha 2, você verá uma linha que começa com var bucket = IS.bucket (…. Esta linha cria um novo intervalo de dados chamado “NodeJS_SDK_Example” e está associado à sua conta. Essa associação ocorre por causa do segundo parâmetro nesse mesmo linha. A chave de acesso da sua conta de estado inicial é uma longa série de letras e números. Se você acessar sua conta de estado inicial em seu navegador, clique em seu nome de usuário no canto superior direito e vá para "minhas configurações", você encontrará sua chave de acesso lá.

Execute o script de teste para se certificar de que podemos criar um fluxo de dados para sua conta de estado inicial. Execute o seguinte:

node stream_test.js

Volte para sua conta do estado inicial no navegador da web. Um novo depósito de dados chamado “NodeJS_SDK_Example” deve ter aparecido à esquerda em sua prateleira de log (pode ser necessário atualizar a página). Clique neste intervalo para visualizar os dados de teste.

Agora você está pronto para enviar seus pressionamentos de botão para o estado inicial!

Etapa 6: Código Final

Código Final
Código Final

Já instalamos o SDK do Nó de Estado Inicial, então tudo o que precisamos fazer é adicioná-lo ao nosso código!

Aqui está uma versão modificada do script button_test.js que usamos anteriormente:

var dash_button = require ('node-dash-button'), traço = traço_button ('xx: xx: xx: xx: xx: xx'), // SUBSTITUA PELO SEU ENDEREÇO exec = require ('child_process'). exec; var IS = requer ('estado inicial'); var bucket = IS.bucket ('Campainha', 'YOUR_ACCESS_KEY'); dash.on ('detectado', function () {console.log ('Botão pressionado!'); bucket.push ('Porta da frente', 'Alguém está aqui!');});

Copie e cole este script em um novo arquivo (ainda dentro do diretório node-dash-button):

sudo nano campainha.js

Você notará que nas linhas 5 e 6 incluímos o módulo Initial State e fornecemos nossos parâmetros de intervalo. Você precisa colocar sua chave de acesso exclusiva anterior na linha 6.

A linha 10 é para onde realmente enviamos os dados para o estado inicial. Nesse caso, chamei meu balde de "Campainha" e estou transmitindo "Alguém está aqui!" na minha porta da frente. Se você tiver vários botões de traço, poderá enviá-los todos para o balde "Campainha", mas nomeá-los de acordo com sua localização (por exemplo, "Porta da garagem", "Quarto" etc.).

Salve o script com Ctl-x, y.

Para testar seu script, execute:

sudo node doorbell.js.

Ao pressionar o botão, você poderá ir para a página Estado inicial e ver um novo balde chamado "Campainha" na barra lateral. Agora vamos adicionar um Trigger!

Etapa 7: Configurando um SMS Trigger

Configurando um SMS Trigger
Configurando um SMS Trigger

"Triggers" são a versão do estado inicial das notificações e são muito fáceis de adicionar. Basta clicar em "Configurações" abaixo do balde Doorbell e, em seguida, clicar na guia "Gatilhos".

Você pode selecionar o sinal que deseja disparar na lista suspensa. Nosso balde tem apenas uma - "Porta da frente" - então selecione-a. Em seguida, escolha a opção "corresponder" e adicione a mensagem transmitida quando o botão é pressionado - neste caso, "Alguém está aqui!"

Por fim, adicione seu número de telefone para receber mensagens SMS. Você precisará inserir um código de verificação enviado para o seu telefone na primeira vez que usar esse número.

Certifique-se de pressionar o sinal "+" ao lado do seu número de telefone ou o gatilho não será criado.

Clique em "Concluído" na parte inferior da guia Gatilhos para salvar seu gatilho.

Agora você está pronto para receber alertas de texto! Pressione o botão (enquanto o script doorbell.js está em execução). Você deve receber um texto em 8 segundos ou menos!

Sua campainha silenciosa está pronta para ir! Se você quiser ter certeza de que seu script é reiniciado em uma queda de energia, continue lendo. Também irei adicionar emojis aos seus nomes de intervalo e sinal.

Etapa 8: Personalizando Seu Painel

Personalização do seu painel
Personalização do seu painel
Personalização do seu painel
Personalização do seu painel

Se você quiser aprimorar seu painel de estado inicial, adicionar emojis ou alterar nomes inteiramente é super simples.

Para alterar o nome de um bloco, basta clicar com o botão direito do mouse no bloco e selecionar "editar bloco". Dentro da caixa Título que aparece, você pode colocar o atalho para qualquer emoji. Clicar em "x" na parte superior da janela de configuração salvará suas alterações.

Você também pode fazer isso com o nome do seu intervalo clicando em "Configurações" abaixo do nome do intervalo e, em seguida, editando o campo Nome.

Você pode adicionar uma imagem de plano de fundo ao seu painel para dar aos seus dados mais personalidade e contexto.

Etapa 9: Iniciando o Script da Inicialização

O script que você executa em seu computador doméstico ou Pi é a chave para a nossa campainha silenciosa. Se algo acontecer, como uma queda de energia, queremos garantir que nosso script volte a funcionar.

Em um Mac, vamos usar um serviço chamado crontab e o editor de texto nano:

env EDITOR = nano crontab -e

Dentro do arquivo, adicione:

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

Certifique-se de substituir "UserName" pelo seu próprio. Se você nomeou seu script de outra forma ou o colocou em um diretório diferente, substitua /Users/UserName/node_modules/node-dash-button/doorbell.js pelo caminho correto. O caminho no meu exemplo é o diretório do usuário principal seguido pelo diretório node_modules / node-dash-button. Você pode copiar facilmente o nome do caminho de um arquivo seguindo estas instruções.

Salve o arquivo com Ctl-x, y. Você pode testar se funciona reiniciando o computador.

Em um Windows Siga as instruções aqui para iniciar o script do nó na reinicialização. Certifique-se de especificar o caminho completo do script.

Em uma máquina Raspberry Pi / Linux A execução de um script desde a inicialização no Pi é bastante simples. Vamos usar um serviço chamado crontab:

sudo crontab -e

Escolha seu editor de texto favorito (eu gosto do nano) e na parte inferior do arquivo (abaixo de todos os comentários), adicione:

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

Se você nomeou seu script de outra forma ou o colocou em um diretório diferente, substitua /home/pi/node_modules/node-dash-button/doorbell.js pelo caminho correto. O caminho no meu exemplo é o diretório Pi principal seguido pelo diretório node_modules / node-dash-button.

Salve o arquivo! Você precisa reiniciar para que tenha efeito, mas se você também quiser reiniciar se a conexão com a internet cair, iremos adicionar outra tarefa ao nosso crontab nesta próxima etapa.

Para lidar com quedas de rede, decidi apenas implementar uma maneira para o Pi detectar uma conexão de rede e reiniciar se ela não estiver lá.

Primeiro, precisamos criar um script para verificar o WiFi e, em seguida, acionar o desligamento:

CD

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

Coloque o seguinte dentro do arquivo, certificando-se de substituir o endereço IP pelo endereço IP do seu roteador:

ping -c4 IP_ADDRESS> / dev / null

se [$? ! = 0] então sudo / sbin / shutdown -r now fi

O ping verifica se há uma conexão. Se retornar com um código de saída diferente de zero, o script enviará o comando de desligamento. Salve e saia do script. Agora certifique-se de que suas permissões estão em ordem:

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

Assim como nosso script doorbell.js, vamos adicionar este script ao crontab:

sudo crontab -e

Lugar

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

abaixo da linha que adicionamos anteriormente. Isso executará nosso script checkwifi a cada 5 minutos. Agora saia do crontab e reinicie o Pi:

sudo reboot

Tudo deve estar configurado e funcionando! Você também pode configurar uma maneira de monitorar os processos em execução em um Pi seguindo este tutorial.

Etapa 10: Conclusão

Conclusão
Conclusão

Agora você tem uma campainha silenciosa para evitar que os entregadores da Amazon te acordem! Entre em contato se tiver alguma dúvida ou se apresentar alguma modificação exclusiva.

Recomendado: