Table des matières:
- Fournitures
- Étape 1: Configurez votre routeur (facultatif, mais conseillé)
- Étape 2: Coder
- Étape 3: Matériel (bêta)
- Étape 4: Outlook/Références
Vidéo: [15min] Horloge Weasley / Indicateur qui est à la maison - Basé sur TR-064 (bêta) : 4 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
MISE À JOUR: Voir l'étape 3.
Longue histoire (TL; DR ci-dessous): Il y a quelque temps, j'ai écrit un petit script bash sur mon ordinateur qui scannait le réseau pour les appareils enregistrés et comparerait leurs noms d'hôtes à une liste de noms associés. Chaque fois qu'un appareil se connectait ou se déconnectait du réseau, je recevais une notification. Comme ça, j'aurais une idée de qui est à la maison (non seulement c'est parfois agréable de savoir qui est à la maison pour leur demander s'ils veulent se joindre à un repas ou autre, mais cela peut aussi potentiellement vous aider à éviter des situations embarrassantes). Le problème est que cette méthode n'est pas très fiable. Malheureusement, certains appareils ne répondent pas aux pings (par exemple les smartphones) et semblent passer en mode d'économie d'énergie ne sont donc pas détectables de manière fiable avec des commandes comme nmap. J'ai essayé de surmonter cela en exigeant au moins 10 négatifs avant d'annoncer enfin que l'appareil a quitté le réseau. Dans l'ensemble, cela a fonctionné, mais lentement, de manière peu fiable et pas très bien. Je voulais aussi pouvoir vérifier qui est à la maison, sans ouvrir mon ordinateur. J'avais donc ces ESP8266 qui traînaient - et je voulais jouer avec eux. Mais je ne voulais pas construire la station météo 10.120.124.812th basée sur ESP ou autre (pourquoi voudriez-vous surveiller la météo avec votre thermomètre merdique ± 2°C alors que vous pouvez simplement visiter un site Web de toute façon ?). Le plan était donc fait. Malheureusement, il s'avère que l'ESP ne semble pas être équipé pour effectuer un ping correctement (ce qui était mauvais au début, vous vous en souvenez ?), et encore moins pour effectuer une analyse complète du réseau. J'ai envisagé d'écrire une bibliothèque pour cela - mais comme mon C++ est très limité, c'est mon premier projet ESP et je ne suis pas non plus un génie avec les trucs de réseau, j'ai abandonné cette idée. Après avoir fait quelques recherches, j'ai découvert que mon routeur (de marque Fritz!Box) a en fait une API ! YAY!!!! Le protocole s'appelle TR-064. Un nom si inspirant, non? En faisant quelques recherches sur le sujet, j'ai trouvé une documentation (plutôt merdique) en ligne. Il m'a fallu un certain temps pour m'en sortir. Je pourrais publier un instructable plus pratique dans les prochains jours (et comment communiquer avec/tester cette API à l'aide d'un module complémentaire de navigateur). Une fois que j'ai compris l'API, j'ai commencé à l'utiliser depuis mon ESP. Pour faire court: j'ai obtenu une solution de duck-tape-and-wd40 en cours d'exécution et de faire ce que je voulais (interroger l'API pour les appareils connectés, les comparer à une liste d'adresses MAC et changer les LED en conséquence). Mais je voulais un plus robuste et solution flexible et cette API a tellement plus à offrir (vous pouvez modifier les paramètres (activer/désactiver le wifi, changer le mot de passe, ouvrir/fermer le wifi invité, changer la puissance du signal), redémarrer le routeur, interroger la vitesse de connexion, …) - j'ai donc décidé de créer une bibliothèque universelle TR-064!TL;DR;Périphérique qui indique via des LED qui est actuellement à la maison. Fonctionne très bien, n'a pas encore de grand boîtier (hé - remarqué la version bêta dans le titre ?). Utilise le protocole SOAP pour communiquer avec le routeur. A écrit la bibliothèque Arduino pour que cela se produise. Connaissances requises• Connaissances de base Arduino/ESP• Si vous avez assemblé un exemple Blink avec votre ESP, tout ira bien !• Sinon, vous pouvez suivre les deux premières étapes de cette instruction• La soudure pourrait s'avérer utile, si vous souhaitez quitter l'étape de la maquette • Certaines conceptions 3D et/ou travail du bois peuvent être utiles pour un logement Lien du projet Github [https://github.com/Aypac/Arduino-TR-064-SOAP-Library] pour référence rapide.
Fournitures
- ESP8266 ou ESP32 sur Development-Board ou avec un autre programmeur (2~6€)
- Câble USB adapté au programmateur
- Adaptateur secteur (ex. USB ou batterie ~2€)
- Quelques LEDs et résistances (~1€)
- (Enveloppe)
=> Environ 4-6€ pour un design minimaliste. Cela signifie pour moi que je peux facilement en accrocher quelques-uns dans la maison. Si vous êtes paresseux, vous pouvez également utiliser une carte de développement avec des LED incluses (voir l'étape 4 pour plus de détails).
Étape 1: Configurez votre routeur (facultatif, mais conseillé)
Le protocole a été conçu comme un protocole général pour les routeurs, mais je sais seulement que (la plupart) des routeurs Fritz!Box (très courants au moins en Europe) l'utilisent. Je ne connais pas les autres marques. Je suppose donc que vous utilisez une Fritz!Box. Si vous pouvez faire fonctionner cela (ou ne pas le faire) sur n'importe quel autre routeur, je serais heureux de l'ajouter à cette instructable (peut-être même commencer une courte liste de compatibilité ?).
Cette étape n'est pas nécessaire, vous pouvez aussi simplement utiliser votre compte administrateur, mais ce n'est pas conseillé pour des raisons évidentes (peut être intercepté ou extrait de votre ESP, vous pourriez accidentellement changer des choses que vous ne voulez pas, …) - donc je vous conseille de le faire.
Quoi qu'il en soit, c'est parti:
- Connectez-vous à votre Fritz!Box en tapant fritz.box dans la barre d'URL de votre navigateur préféré.
- Trouvez la page pour créer un nouvel utilisateur de FRITZ!Box (vous devez avoir avancé, elle devrait être sous Système, si vous ne la trouvez pas, essayez de mettre à jour votre appareil).
- Créez un nouveau compte comme vous le voyez sur l'image (en utilisant un autre nom d'utilisateur/mot de passe !).
- Se déconnecter.
Étape 2: Coder
-
Vous pouvez obtenir la bibliothèque sur Github.
- Dans les exemples, vous trouverez un fichier appelé home-indicator.ino, qui est le code de ce projet. Placez le dossier des exemples dans le dossier d'accueil de votre projet arduino IDE et l'autre dossier dans le dossier des bibliothèques du même dossier d'accueil du projet.
- (Re)démarrez votre IDE.
- Ouvrez home-indicator.ino dans l'IDE et entrez vos paramètres. Il devrait être assez évident ce qui va où. Si vous avez des questions dites le moi!
- Vous pouvez maintenant le compiler et le transférer sur votre ESP !
Étape 3: Matériel (bêta)
Ouais… C'est l'étape, où j'ai encore besoin de travailler un peu plus. Mais je suppose qu'il y a suffisamment de matériel sur le Web pour comprendre quelque chose:) La configuration, comme sur les images, n'est qu'une diode avec une résistance de ~ 100 Ohm câblée au GPIO {5, 4, 0, 2}, qui sont les D1, Les broches D2, D3, D4 (dans cet ordre) de ma carte MCU ESP8266 et le petit câble orange emmenant les cathodes vers GND (marqué G sur ma carte). Si vous êtes paresseux, vous pouvez faire ce que vous voyez sur la deuxième image. Utilisez simplement une carte de développement avec les LED incluses (comme le "ESP-202", voir les photos - environ 3,50 à 5,00 €, frais de port compris). Vous pouvez ensuite simplement le brancher à l'alimentation USB ou utiliser la batterie incluse, dessiner une interface sur un morceau de papier et le coller au mur. Terminé. Pour cette carte spécifique, les ports sont:
int userPins[numUser] = {5, 4, 2, 14, 16};
du haut jusqu'en bas.
Étape 4: Outlook/Références
C'est ce que je prévois toujours: 1. Faire un joli boîtier (évidemment) 2. Ajouter une belle interface graphique pour gérer les utilisateurs/LEDs/MAC/périphériques connus 3. Améliorer la librairie (voir Github pour ça) 4. Correctif: parfois les LED réagir lentement (cela prend un peu jusqu'à ce qu'ils s'éteignent, après qu'un appareil soit parti) sans raison évidente 5. Accrochez la chose dans le couloir et peut-être quelques autres dans la maison J'adorerais avoir votre avis les gars ! Et comme toujours, ça me fait vraiment plaisir de voir d'autres construire la merde que vous avez imaginée, alors prenez la minute pour commenter et poster des photos !:):) Quelques autres référencesJe vais lier quelques trucs ici, qui pourraient vous aider: • Référence TR-064 • Un gars qui déconne avec le shell et TR-064 (bien pour comprendre l'API) • Wikipédia Harry Potter: Entrée de l'horloge Weasley • Certains gars construisent une horloge Weasly belle mais compliquée*_* Elle est basée sur une application pour votre téléphone qui prend votre position. Si vous vous trouvez dans certaines zones prédéfinies, le voyant correspondant sur l'horloge s'allumera. Pour moi, c'était trop compliqué et il y avait de nombreux endroits où cela pouvait casser/échouer: • Les applications doivent être tenues à jour • Tout le monde doit utiliser ces applications • Et être d'accord avec l'impact sur la confidentialité • L'application ne fonctionne qu'avec Internet connexion • Vous devez utiliser un serveur intermédiaire pour l'interfaçage de la communication (à moins que vous ne vouliez vous configurer en tant que serveur et ouvrir votre réseau domestique pour le trafic extérieur - oui, encore un autre périphérique IOT non sécurisé directement connecté à Internet !) • La le service intermédiaire peut se déconnecter un jour/changer son API, • …Vous avez besoin de plus de logiciels. Plus de logiciels signifie plus d'endroits pour faire une erreur;) Mais, ils ont fait un travail incroyable et si vous voulez faire quelque chose comme ça, rendez-vous sur leur site, c'est vraiment génial !
Conseillé:
Horloge de localisation 'Weasley' à 4 aiguilles : 11 étapes (avec photos)
Horloge de localisation 'Weasley' à 4 mains : Donc, avec un Raspberry Pi qui fonctionnait depuis un moment, je voulais trouver un beau projet qui me permettrait d'en tirer le meilleur parti. Je suis tombé sur cette grande horloge de localisation Instructable Build Your Own Weasley par ppeters0502 et j'ai pensé que
Créez votre propre console de jeu rétro portable ! qui est également une tablette Win10 ! : 6 étapes (avec photos)
Créez votre propre console de jeu rétro portable ! …… qui est également une tablette Win10 ! : Dans ce projet, je vais vous montrer comment créer une console de jeu rétro portable qui peut également être utilisée comme tablette Windows 10. Il se composera d'un 7" LCD HDMI avec écran tactile, un LattePanda SBC, un PCB d'alimentation USB Type C PD et quelques autres complémentar
Convertir l'horloge ordinaire de la maison en horloge autoluminescente : 8 étapes (avec photos)
Convertir l'horloge ordinaire de la maison en horloge auto-luminescente : D'abord, je remercie chaleureusement l'équipe d'Instructables pour que mes jours de récupération de santé soient plus réactifs. dans l'horloge auto-luminescente.>> Pour faire ça
Comment construire une horloge qui projette l'heure sur le mur : 6 étapes
Comment construire une horloge qui projette le temps sur le mur : ce Instructable vous montre comment construire une horloge de projecteur. Cet appareil permet de projeter l'heure sur le mur. Basé sur un petit réveil LCD (pas trop petit, au contraire, vous ne pourrez pas le projeter et travailler dessus), c'est un bon moyen d'afficher
Comment construire une tête de trépied pour 10 $ qui est panoramique : 5 étapes (avec photos)
Comment construire une tête de trépied pour 10 $ qui est panoramique : les logiciels d'assemblage et les appareils photo numériques rendent les photos panoramiques beaucoup plus faciles que jamais. Cependant, pour obtenir les meilleurs résultats, vous avez besoin d'une tête de trépied spéciale. Ceux-ci peuvent coûter des centaines de dollars, mais créer le vôtre n'est pas si difficile. Mieux encore, c'est di