Table des matières:

Sonnette silencieuse à bouton Amazon Dash : 10 étapes (avec photos)
Sonnette silencieuse à bouton Amazon Dash : 10 étapes (avec photos)

Vidéo: Sonnette silencieuse à bouton Amazon Dash : 10 étapes (avec photos)

Vidéo: Sonnette silencieuse à bouton Amazon Dash : 10 étapes (avec photos)
Vidéo: Sonnette sur batterie Eufy 2K 🔔 Sans abonnement, sans fil ... et sans gros défaut ! 2024, Juillet
Anonim
Image
Image

Regarder constamment par la fenêtre pour pouvoir intercepter les visiteurs avant qu'ils ne sonnent à la porte ? Fatigué des chiens et du bébé qui deviennent fous à chaque fois qu'il sonne ? Vous n'avez pas envie de dépenser une fortune pour une solution "intelligente" ?

Fabriquer une sonnette silencieuse est aussi simple que de pirater un bouton Amazon Dash à 5 $ ! La seule autre chose dont vous avez besoin est un ordinateur qui est toujours à la maison - comme, disons, ce Raspberry Pi que vous avez assis autour. Recevez des notifications par SMS à chaque fois que quelqu'un pousse votre nouvelle sonnette et faites le bonheur de toute la maison. (C'est encore plus cool de recevoir des notifications si vous avez une montre connectée !)

Pour ce projet, vous aurez besoin de:

  • Un bouton Amazon Dash
  • Un ordinateur qui reste à la maison (comme un Raspberry Pi)

Étape 1: Configuration de votre bouton Dash

Configuration de votre bouton de tableau de bord
Configuration de votre bouton de tableau de bord
Configuration de votre bouton de tableau de bord
Configuration de votre bouton de tableau de bord

La préparation de votre bouton Dash pour le piratage est assez simple - il vous suffit de suivre l'intégralité du processus de configuration d'Amazon sans sélectionner un produit.

Cette configuration nécessite l'application Amazon, disponible pour iOS et Android. Une fois connecté à Amazon dans l'application, accédez à Votre compte -> Boutons et appareils du tableau de bord -> Configurer un nouvel appareil. Sélectionnez "Dash Button" et suivez les instructions jusqu'à ce que vous soyez invité à sélectionner un produit.

Fermez l'application. N'annulez pas la configuration; n'appuyez pas sur le x - fermez simplement l'application. Si vous avez accidentellement sélectionné un produit ou réaffecté un ancien bouton Dash, supprimez simplement l'appareil via l'application Amazon et suivez à nouveau ces étapes.

Si vous cherchez à changer l'apparence de votre bouton, il est facile de décoller l'autocollant de l'étiquette.

Étape 2: Installez Node JS sur votre appareil

Pour trouver (et ensuite utiliser) l'adresse matérielle de votre bouton Dash, nous devons utiliser Node JS. Cela peut être installé sur n'importe quel ordinateur - Mac, Linux (Raspberry Pi) ou Windows.

Notre projet final repose sur le fait d'avoir un ordinateur connecté au même réseau que notre bouton qui exécute un script Node ininterrompu, alors gardez cela à l'esprit lorsque vous choisissez votre appareil. Un ordinateur de bureau à domicile ou Raspberry Pi serait parfait.

J'ai choisi d'utiliser un Pi 3, mais un Pi Zero avec un dongle WiFi fonctionnerait aussi !

Pour installer Node JS sur votre ordinateur, suivez les instructions appropriées:

  • Tarte aux framboises
  • Mac OS
  • les fenêtres

Alex Horton a écrit un module fantastique juste pour ce que nous essayons de faire appelé node-dash-button. Nous devons l'installer, ainsi que le gestionnaire de paquets de nœuds (npm) et libpcap. Saisissez ces commandes dans la ligne de commande:

sudo apt-get install npm

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

Étape 3: Trouvez l'adresse du bouton

Trouver l'adresse du bouton
Trouver l'adresse du bouton
Trouver l'adresse du bouton
Trouver l'adresse du bouton

Nous avons trouvé un moyen simple de trouver l'adresse de votre bouton de tableau de bord.

Tout d'abord, maintenez enfoncé le bouton de votre tableau de bord pendant environ 5 secondes jusqu'à ce que la LED commence à clignoter lentement en bleu. Sur votre téléphone, ouvrez vos paramètres wifi et recherchez le wifi « Amazon Configure Me ». Une fois connecté, ouvrez votre navigateur Web et accédez à 'https://192.168.0.1'.

L'adresse que nous recherchons est l'adresse MAC et ressemblera à "ab:64:be:8b:ce:82".

Étape 4: Tester votre bouton

Vous pouvez confirmer que vous avez trouvé la bonne adresse en écrivant un script simple pour imprimer un message à chaque fois que vous appuyez sur le bouton.

Créez un nouveau script dans le répertoire node-dash-button.

sudo nano button_test.js

Et copiez-collez ce qui suit dans le fichier:

var dash_button = require('node-dash-button'), dash = dash_button('xx:xx:xx:xx:xx:xx'), //REMPLACER PAR VOTRE ADRESSE exec = require('child_process').exec; dash.on('détecté', function() { console.log('Bouton poussé !'); });

Remplacez les x sur la deuxième ligne par votre nouvelle adresse de bouton. Enregistrez le fichier avec Ctl-x, y.

Lancez le script et appuyez sur votre bouton.

nœud sudo button_test.js

Vous devriez voir « Bouton poussé ! » imprimer. Maintenant que nous pouvons détecter les pressions sur les boutons, nous pouvons déclencher des actions en fonction de celles-ci !

Étape 5: Configurer le compte d'état initial

Configurer le compte d'état initial
Configurer le compte d'état initial
Configurer le compte d'état initial
Configurer le compte d'état initial

Maintenant que nous pouvons déclencher un message en ligne de commande lorsque nous appuyons sur le bouton Dash, nous pouvons déclencher toutes sortes d'autres choses ! Dans ce cas, je vais déclencher un SMS - nous ne voulons pas que celui qui est à la porte attende que nous consultions nos e-mails.

Il existe plusieurs façons de déclencher une notification par SMS - des services tels que Twilio ou PushBullet. L'un des moyens les plus simples que j'ai trouvés était d'utiliser Initial State. Cela nécessitait un minimum de codage supplémentaire et m'a fourni une vue du tableau de bord du moment où mon bouton avait été enfoncé.

Accédez à https://iot.app.initialstate.com et créez un nouveau compte.

Vous devez installer le SDK Initial State pour NodeJS sur votre ordinateur de bureau/ordinateur portable/Raspberry Pi. À une invite de commande (n'oubliez pas d'abord de SSH dans votre Pi), exécutez la commande suivante:

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

sudo npm installer l'état initial

Pour tester le streamer, créez un fichier de test:

nano stream_test.js

Et copiez-collez ce qui suit (également trouvé ici):

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

var bucket = IS.bucket('NodeJS_SDK_Example', 'YOUR_ACCESS_KEY_GOES_HERE'); // Pousser l'événement vers l'état initial bucket.push('Demo State', 'active'); setTimeout(function () { // Pousser un autre événement bucket.push('Demo State', 'inactive'); }, 1000);

Enregistrez le script avec Ctl-x, y.

Avant de pouvoir exécuter ce script, cependant, nous devons ajouter une clé d'accès unique à la deuxième ligne.

Sur la ligne 2, vous verrez une ligne qui commence par var bucket = IS.bucket(…. Cette ligne crée un nouveau bucket de données nommé « NodeJS_SDK_Example » et est associé à votre compte. Cette association se produit à cause du deuxième paramètre sur ce même ligne. Votre clé d'accès à votre compte Initial State est une longue série de lettres et de chiffres. Si vous accédez à votre compte Initial State dans votre navigateur Web, cliquez sur votre nom d'utilisateur en haut à droite, puis allez dans « mes paramètres », vous trouverez votre clé d'accès là-bas.

Exécutez le script de test pour vous assurer que nous pouvons créer un flux de données sur votre compte Initial State. Exécutez ce qui suit:

nœud stream_test.js

Revenez à votre compte Initial State dans votre navigateur Web. Un nouveau compartiment de données appelé « NodeJS_SDK_Example » aurait dû apparaître à gauche dans votre étagère de journaux (vous devrez peut-être actualiser la page). Cliquez sur ce bucket pour afficher les données de test.

Vous êtes maintenant prêt à envoyer vos pressions sur les boutons à l'état initial !

Étape 6: Code final

Code final
Code final

Nous avons déjà installé le SDK Initial State Node, il nous suffit donc de l'ajouter à notre code !

Voici une version modifiée du script button_test.js que nous avons utilisé précédemment:

var dash_button = require('node-dash-button'), dash = dash_button('xx:xx:xx:xx:xx:xx'), //REMPLACER PAR VOTRE ADRESSE exec = require('child_process').exec; var IS = require('initial-state'); var bucket = IS.bucket('Doorbell', 'YOUR_ACCESS_KEY'); dash.on('détecté', function() { console.log('Bouton poussé !'); bucket.push('Front Door', 'Quelqu'un est ici !'); });

Copiez-collez ce script dans un nouveau fichier (toujours à l'intérieur du répertoire node-dash-button):

sudo nano sonnette.js

Vous remarquerez qu'aux lignes 5 et 6, nous incluons le module État initial et fournissons nos paramètres de compartiment. Vous devez mettre votre clé d'accès unique d'avant sur la ligne 6.

La ligne 10 est l'endroit où nous envoyons réellement les données à l'état initial. Dans ce cas, j'ai nommé mon seau « Sonnette » et je diffuse en continu « Quelqu'un est ici ! » à ma porte d'entrée. Si vous avez plusieurs boutons Dash, vous pouvez tous les envoyer au seau « Sonnerie » mais les nommer en fonction de leur emplacement (c'est-à-dire « porte de garage », « chambre », etc.).

Enregistrez le script avec Ctl-x, y.

Pour tester votre script, exécutez:

nœud sudo doorbell.js.

Lorsque vous appuyez sur votre bouton, vous devriez pouvoir accéder à votre page État initial et voir un nouveau compartiment nommé « Sonnerie » dans la barre latérale. Ajoutons maintenant un déclencheur !

Étape 7: Définir un déclencheur SMS

Définir un déclencheur SMS
Définir un déclencheur SMS

Les "déclencheurs" sont la version des notifications d'Initial State et ils sont très faciles à ajouter. Cliquez simplement sur « Paramètres » sous le seau de sonnette, puis cliquez sur l'onglet « Déclencheurs ».

Vous pouvez sélectionner le signal que vous souhaitez déclencher dans la liste déroulante. Notre seau n'en a qu'un - "Front Door" - alors sélectionnez-le. Choisissez ensuite l'option « correspondance » et ajoutez le message que vous diffusez lorsque vous appuyez sur votre bouton - dans ce cas, « Quelqu'un est là ! »

Enfin, ajoutez votre numéro de téléphone pour recevoir des SMS. Vous devrez saisir un code de vérification envoyé sur votre téléphone la première fois que vous utiliserez ce numéro.

Assurez-vous d'appuyer sur le signe "+" à côté de votre numéro de téléphone, sinon le déclencheur ne sera pas créé.

Cliquez sur "Terminé" en bas de l'onglet Déclencheurs pour enregistrer votre déclencheur.

Vous êtes maintenant prêt à recevoir des alertes SMS ! Appuyez sur votre bouton (pendant l'exécution du script doorbell.js). Vous devriez recevoir un SMS en 8 secondes ou moins !

Votre sonnette silencieuse est prête à partir ! Si vous voulez vous assurer que votre script redémarre en cas de panne de courant, continuez à lire. Je vais également ajouter des emojis à vos noms de compartiment et de signal.

Étape 8: Personnaliser votre tableau de bord

Personnaliser votre tableau de bord
Personnaliser votre tableau de bord
Personnaliser votre tableau de bord
Personnaliser votre tableau de bord

Si vous voulez personnaliser votre tableau de bord Initial State, ajouter des emojis ou changer complètement de nom est super simple.

Pour changer le nom d'une tuile, faites simplement un clic droit sur la tuile et sélectionnez "modifier la tuile". À l'intérieur de la zone Titre qui s'affiche, vous pouvez mettre le raccourci pour n'importe quel emoji. Cliquez sur "x" en haut de la fenêtre de configuration pour enregistrer vos modifications.

Vous pouvez également le faire pour le nom de votre compartiment en cliquant sur "Paramètres" sous le nom du compartiment, puis en modifiant le champ Nom.

Vous pouvez ajouter une image d'arrière-plan à votre tableau de bord pour donner plus de personnalité et de contexte à vos données.

Étape 9: démarrer le script à partir du démarrage

Le script que vous exécutez sur votre ordinateur personnel ou Pi est la clé de notre sonnette silencieuse. Si quelque chose se produit comme une panne de courant, nous voulons nous assurer que notre script est de nouveau opérationnel.

Sur un Mac, nous allons utiliser un service appelé crontab et l'éditeur de texte nano:

env EDITEUR=nano crontab -e

À l'intérieur du fichier, ajoutez:

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

Assurez-vous de remplacer "Nom d'utilisateur" par le vôtre. Si vous avez nommé votre script autrement ou l'avez placé dans un autre répertoire, remplacez /Users/UserName/node_modules/node-dash-button/doorbell.js par le chemin correct. Le chemin dans mon exemple est le répertoire utilisateur principal suivi du répertoire node_modules/node-dash-button. Vous pouvez facilement copier le chemin d'accès d'un fichier en suivant ces instructions.

Enregistrez le fichier avec Ctl-x, y. Vous pouvez tester si cela fonctionne en redémarrant votre ordinateur.

Sous Windows Suivez les instructions ici pour démarrer votre script de nœud au redémarrage. Assurez-vous de spécifier le chemin complet du script.

Sur une machine Raspberry Pi/Linux L'exécution d'un script à partir du démarrage sur le Pi est assez simple. Nous allons utiliser un service appelé crontab:

sudo crontab -e

Choisissez votre éditeur de texte préféré (j'aime nano) et en bas du fichier (sous tous les commentaires), ajoutez:

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

Si vous avez nommé votre script autrement ou l'avez placé dans un répertoire différent, remplacez /home/pi/node_modules/node-dash-button/doorbell.js par le chemin correct. Le chemin dans mon exemple est le répertoire Pi principal suivi du répertoire node_modules/node-dash-button.

Enregistrez le fichier ! Vous devez redémarrer pour que cela prenne effet, mais si vous souhaitez également redémarrer si la connexion Internet tombe en panne, nous allons ajouter une autre tâche à notre crontab dans cette prochaine étape.

Pour gérer les pertes de réseau, j'ai décidé de simplement implémenter un moyen pour le Pi de détecter une connexion réseau et de redémarrer s'il n'est pas là.

Nous devons d'abord créer un script pour vérifier le WiFi, puis déclencher l'arrêt:

CD

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

Placez ce qui suit à l'intérieur du fichier, en veillant à remplacer l'adresse IP par l'adresse IP de votre routeur:

ping -c4 IP_ADDRESS > /dev/null

si [$ ? != 0] then sudo /sbin/shutdown -r now fi

Le ping recherche une connexion. S'il renvoie un code de sortie différent de zéro, le script envoie la commande d'arrêt. Enregistrez et quittez le script. Assurez-vous maintenant que ses autorisations sont en ordre:

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

Tout comme notre script doorbell.js, nous allons ajouter ce script à crontab:

sudo crontab -e

Endroit

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

sous la ligne que nous avons ajoutée plus tôt. Cela exécutera notre script checkwifi toutes les 5 minutes. Maintenant, quittez crontab et redémarrez le Pi:

redémarrage sudo

Tout doit être configuré et fonctionnel ! Vous pouvez également configurer un moyen de surveiller les processus en cours sur un Pi en suivant ce didacticiel.

Étape 10: Conclusion

Conclusion
Conclusion

Vous avez maintenant une sonnette silencieuse pour empêcher ces livreurs d'Amazon de vous réveiller ! Faites-moi savoir si vous avez des questions ou si vous proposez des modifications uniques.

Conseillé: