Table des matières:
- Étape 1: Outils et matériaux
- Étape 2: Démontage de l'unité d'origine
- Étape 3: Circuits expliqués
- Étape 4: Préparation de l'ATTiny85
- Étape 5: Construire le bouclier Wemos
- Étape 6: Préparation du Wemos
- Étape 7: Tout assembler
Vidéo: IOToilet : 7 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
L'IOToilet est le premier support de papier toilette intelligent, qui garde une trace de notre utilisation quotidienne de papier toilette et permet d'accumuler des statistiques montrant ces métriques. Et pourquoi devrais-je me soucier de mon utilisation quotidienne de papier toilette, me demanderez-vous? Eh bien, il s'avère que notre santé abdominale, en particulier le cycle de digestion, a beaucoup à voir avec notre santé physique et mentale. Par exemple, voici une belle conférence TED (l'une des nombreuses, d'ailleurs) qui développe ce sujet:
J'ai été initialement chargé de construire 10 unités de cet appareil pour une agence de branding, dont vous pouvez voir le clip ci-dessus (2e emplacement), pour une campagne marketing destinée à une grande entreprise. Au début, j'ai rejeté l'idée comme venant d'un autre esprit trop créatif essayant désespérément de gagner un compte client, mais peu à peu, cela m'a envahi, jusqu'à ce que je réalise la valeur des informations collectées via cet appareil.
La construction était basée sur un matériel existant que mon client a obtenu d'EBay, un appareil d'enregistrement vocal encapsulé dans un porte-papier hygiénique. Il avait le bon facteur de forme et tous les périphériques nécessaires déjà intégrés, comme un haut-parleur, un capteur de mouvement pour déclencher l'appareil, des ressorts pour maintenir le papier toilette lui-même, un compartiment à piles et un interrupteur marche-arrêt, alors j'ai volontiers opté en utilisant ce ready-made plutôt que de modéliser et d'imprimer le mien.
Étape 1: Outils et matériaux
Les matériaux utilisés:
Un porte papier-toillette
Wemos D1 Mini
Puce ATTiny85, emballage DIP
2 transistors 2n2222
Résistance 220 Ohms
Résistance 2 * 1KOhm
Accéléromètre MPU6050
Facultatif, au cas où je n'utiliserais pas mon PCB:
Bouclier de prototypage Wemos
fil, soudure, etc.
Les outils utilisés:
Dremel avec un disque à tronçonner
Carte de développement ATTiny (pour télécharger facilement le firmware)
Programmeur USB Tiny ISP
tournevis triangulaire, j'ai utilisé ce kit:
Étape 2: Démontage de l'unité d'origine
Après avoir obtenu l'axe de papier toilette d'origine, j'ai ouvert son boîtier à l'aide d'un tournevis triangulaire et retiré le PCB d'origine, déconnectant le haut-parleur et laissant autant de fil que possible connecté dessus.
J'ai ensuite soudé la LED et le capteur d'inclinaison du PCB d'origine, pour être ensuite intégrés dans le nouveau circuit. Faites attention à ne pas surchauffer le commutateur d'inclinaison, car cela pourrait l'endommager. Le mien était gris, mais comme je n'en ai pas pris une bonne photo lors du retrait de l'appareil d'origine, j'ai dû utiliser une photo du net (voir ci-dessus), où elle était verte. Juste un petit détail.
Après avoir ouvert le boîtier et retiré l'électronique, j'ai également utilisé un Dremel pour retirer l'excès de plastique qui servait à maintenir le PCB d'origine en place, ces petites étagères en plastique et l'un des 4 tuyaux à vis. Vous pouvez reporter cela à l'étape de l'assemblage si vous le souhaitez, mais dans tous les cas, un rognage en plastique sera nécessaire.
Étape 3: Circuits expliqués
Alors, voici un peu la logique derrière le circuit:
Pour que les batteries durent longtemps, j'ai dû mettre à la fois l'accéléromètre MPU6050 et le processeur ESP8266 dans le Wemos D1 Mini pour dormir entre les activations. Le premier a été facilement réalisé en utilisant un transistor qui a allumé et éteint le MPU6050.
Remarque: j'ai d'abord pensé que je pouvais le programmer pour envoyer un signal d'interruption qui réveillera le processeur principal. Hélas, je n'ai pas trouvé le moyen d'y arriver, la configuration des registres appropriés du MPU6050 était une tâche délicate que je ne sais toujours pas si possible du tout…
Ma deuxième option consistait à utiliser l'interrupteur d'inclinaison fourni avec l'unité d'origine pour réveiller l'ESP. Je l'ai d'abord lié directement à la broche Wemos RESET comme décrit sur les photos ci-dessus, en utilisant un transistor pour activer/désactiver le mécanisme. Lorsque la base du transistor était haute, le GND pouvait passer à travers le commutateur d'inclinaison et le faire se connecter temporairement à la broche RESET, provoquant la réinitialisation du MCU (c'est le seul moyen de réveiller un ESP d'un sommeil profond, apparemment). J'ai ensuite connecté D0 à la base du transistor, en partant du principe que cette jambe est HAUTE tant que le MCU est en veille, et dès qu'il se réveille, D0 revient à BAS, désactivant le mécanisme de réinitialisation. Après tout, je n'avais pas besoin d'une réinitialisation récurrente, juste pour la première fois lorsque le porte-papier hygiénique a commencé à bouger.
Cependant, ce que j'ai découvert, c'est que la broche D0 met assez de temps après la réinitialisation du MCU pour revenir à LOW, environ 200 ms. Cela signifiait que si je faisais tourner le porte-papier hygiénique assez rapidement pendant que le MCU dormait, plusieurs RESET se produiraient, au lieu de compter les tours, comme il se doit.
J'ai donc essayé de résoudre cette nouvelle situation avec des composants discrets (condensateurs, transistors, etc.) mais je n'ai réussi à obtenir qu'une solution partielle au problème.
J'ai fini par ajouter un autre MCU, un ATTiny85, qui serait réveillé du sommeil par le commutateur d'inclinaison, puis réveillerait l'ESP8266 et attendrait un certain temps avant de se rendormir. Je sais que ce n'est probablement pas la solution la plus économique au problème, mais j'avais un délai…
Vous pouvez voir la solution détaillée dans le schéma que j'ai inclus. Veuillez noter que les résistances 10K ont été remplacées par 1K car celles de 10k étaient trop élevées pour que les transistors s'ouvrent complètement.
Étape 4: Préparation de l'ATTiny85
Si vous n'avez jamais programmé un ATTiny85, n'ayez crainte ! L'utilisation de l'IDE Arduino bien-aimé peut vous aider jusqu'au bout. Commencez par ces instructions sur la façon de configurer l'IDE Arduino:
github.com/SpenceKonde/ATTinyCore/blob/mas…
Ensuite, installez les pilotes pour USBTinyISP à partir d'ici:
learn.adafruit.com/usbtinyisp/drivers
Maintenant, chargez le code de test ci-joint: WakeOnExternalInterruptTest.ino
et connectez (voir schéma de brochage ATTiny85):
1. Bouton tactile entre la broche 3 et la masse
2. Une led et une résistance de 220 Ohm en série, entre la broche 2 et la masse
Prochain, Sélectionnez USBTinyISP en tant que programmeur (sous Outils -> Programmeur) et téléchargez le croquis de test sur la carte.
La LED doit clignoter 5 fois, puis la puce doit se mettre en veille. En appuyant sur le bouton, il se réveillera et répétera cette séquence.
Est-ce que ça marche ? super! Téléchargez le croquis final "Awakener" sur l'ATTiny, à utiliser sur le circuit final.
Étape 5: Construire le bouclier Wemos
Donc, pour construire le bouclier, vous avez le choix entre 3 options:
1. Utilisez un protoshield standard pour le Wemos et soudez les circuits dessus.
2. Fabriquez un PCB, sur la base des fichiers EAGLE joints.
3. Demandez-moi un PCB que je peux vous envoyer par courrier postal (j'en ai quelques-uns qui traînent, le coût est presque nul).
Dans tous les cas, je recommande de construire le circuit sur une maquette avant de s'engager dans le PCB !
Si vous utilisez les options PCB, assurez-vous de connecter le fil noir comme sur les photos, à l'avant ou à l'arrière de la carte (ce dernier a mieux fonctionné pour moi). Ce fil relie le GND du Wemos à l'ATTiny85 et sans lui, le réveil n'aura pas lieu.
Il suffit de bien regarder les images et de lire les annotations que j'ai ajoutées, cela devrait suffire.
Étape 6: Préparation du Wemos
Si vous n'avez jamais utilisé l'IDE Arduino pour programmer une carte Wemos, commencez par installer le gestionnaire de carte et sélectionnez la carte dans le menu Outils -> Carte, comme décrit ici:
github.com/esp8266/Arduino
Commencez par télécharger le croquis clignotant sur votre tableau, en vous assurant que le code est téléchargé correctement.
Étape 7: Tout assembler
Installez le bouclier sur le Wemos. Vous pouvez le souder, mais je recommande d'utiliser des embases femelles soudées au Wemos qui permettront une connexion temporaire entre le Wemos et le shield, en cas de problème. N'oubliez pas que le collecteur femelle devra descendre lors de la dernière étape de l'assemblage pour que l'unité s'insère dans la coque en plastique. De plus, pour compliquer un peu les choses, il y a de fortes chances que lorsque le shield est connecté au Wemos, le téléchargement de code soit désactivé. J'ai rencontré ce phénomène de manière non cohérente et je n'ai pas eu le temps de le rechercher.
Un conseil: prévoyez à l'avance.
Maintenant, testez !
Une fois installé, commencez par télécharger le croquis de test BlinkAccelerometer sur le Wemos et assurez-vous qu'il allume et éteint la LED MPU6050. Sinon, vérifiez le câblage du transistor responsable de l'alimentation du MPU6050. Sa base doit être connectée à la broche D5 du Wemos, le collecteur doit être connecté au GND de l'accéléromètre et l'émetteur doit être connecté au GND commun.
Ensuite, téléchargez le croquis TurnCountTest1 sur la carte Wemos et ouvrez Serial Monitor. Vous devriez voir les données provenant de l'accéléromètre présentées sur le moniteur. S'il ne fonctionne pas, vérifiez le câblage de l'horloge et des données: CLK doit être connecté à D1 et DATA doit être connecté à D2.
Maintenant, soudez le commutateur d'inclinaison aux trous désignés dans la carte (voir les annotations), en vous assurant qu'il est perpendiculaire à l'axe de rotation afin que la rotation de la broche ferme et ouvre la connexion entre ses deux fils.
Ensuite, connectez l'entrée de la batterie 3V au Wemos VCC et sa borne moins au Wemos GND. Assurez-vous que l'activation de l'interrupteur allume l'unité. Enfin, connectez le haut-parleur à GND et à la broche D4 du Wemos.
Téléchargez le code final sur le Wemos - un croquis appelé SmartWipe. Ouvrez un moniteur série et assurez-vous que l'unité se met en veille après 3 minutes et se réveille en déplaçant le commutateur d'inclinaison (les messages correspondants doivent apparaître sur le moniteur).
Si vous souhaitez réduire le temps d'éveil du Wemos (principalement à des fins de test), diminuez la valeur de WIFI_CONFIGURATION_IDLE_TIMEOUT définie dans params.h et téléchargez le croquis sur le tableau. Assurez-vous qu'après que le Wemos soit passé en veille profonde, le déplacement de l'interrupteur d'inclinaison provoque le réveil de l'ATTiny (signalé par la LED), qui, à son tour, réveille le Wemos.
Remettez la valeur du paramètre à 180000L (3 minutes, en millisecondes) et assurez-vous que le Wemos déclenche un point d'accès appelé IOToilet_XXXXXXXX où XXXXXXX sera récupéré à partir de l'adresse MAC de la puce. Connectez-vous à ce Wifi à l'aide d'un téléphone intelligent et vous devriez être dirigé vers un formulaire d'inscription (un mécanisme appelé Portail captif). Remplissez les détails, le SSID et le mot de passe de votre wifi local sont particulièrement importants, et soumettez le formulaire. L'unité doit alors essayer de se connecter au réseau à l'aide des informations d'identification fournies et, en cas de succès, diffuser 3 sons ascendants sur le haut-parleur. S'il y avait eu un problème de connexion au Wifi, 3 sons descendants seront joués. Après cela, le Wemos devrait s'endormir profondément, jusqu'à ce qu'il soit réveillé par le mouvement.
Enfin: test du système de bout en bout.
Faites rouler le porte-papier hygiénique le long de son axe de rotation de quelques tours, puis placez-le sur une surface stable (pour signaler que l'utilisation du rouleau est terminée et déclencher le téléchargement des données). Attendez environ 10 secondes que le nombre de rouleaux soit envoyé au cloud, puis accédez à https://smartwipe-iot.appspot.com/ et cliquez sur Requête. Vous devriez voir les détails de votre inscription et votre nombre d'utilisations récentes dans le cloud ! Assurez-vous d'écrire votre uuid, qui est votre identifiant unique dans le système, extrait de l'adresse MAC de votre Wemos.
Si vous souhaitez extraire uniquement vos statistiques au format JSON, utilisez une URL similaire à celle-ci:
smartwipe-iot.appspot.com/api?action=query&uuid=1234567890
remplacez simplement uuid par le vôtre.
J'ai inclus toutes les sources de l'application Web, qui est hébergée sur le moteur Google App afin que les utilisateurs qui souhaitent obtenir plus de confidentialité pour les données puissent la déployer sur leur propre utilisateur Google, ajouter une authentification, etc.
Lorsque tout fonctionne, placez l'électronique dans la coque en plastique, en coupant le plastique avec un dremel si nécessaire. La pièce entière doit bien s'intégrer dans le boîtier.
Difficulté? Écris moi!
UNIS NOUS Caca !
Conseillé:
Prenez de superbes photos avec un iPhone : 9 étapes (avec photos)
Prenez de superbes photos avec un iPhone : la plupart d'entre nous ont un smartphone partout avec nous ces jours-ci, il est donc important de savoir comment utiliser l'appareil photo de votre smartphone pour prendre de superbes photos ! Je n'ai un smartphone que depuis quelques années et j'aime avoir un appareil photo décent pour documenter les choses que je
Plateforme avec des niveaux infinis sur GameGo avec Makecode Arcade : 5 étapes (avec photos)
Plateforme avec des niveaux infinis sur GameGo avec Makecode Arcade : GameGo est une console portable de jeu rétro compatible Microsoft Makecode développée par TinkerGen STEM education. Il est basé sur la puce STM32F401RET6 ARM Cortex M4 et est destiné aux éducateurs STEM ou simplement aux personnes qui aiment s'amuser à créer un jeu vidéo rétro
Balance intelligente bricolage avec réveil (avec Wi-Fi, ESP8266, Arduino IDE et Adafruit.io): 10 étapes (avec photos)
Balance intelligente bricolage avec réveil (avec Wi-Fi, ESP8266, Arduino IDE et Adafruit.io): Dans mon projet précédent, j'ai développé une balance de salle de bain intelligente avec Wi-Fi. Il peut mesurer le poids de l'utilisateur, l'afficher localement et l'envoyer vers le cloud. Vous pouvez obtenir plus de détails à ce sujet sur le lien ci-dessous : https://www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Tapis avec capteurs/communication RF avec Arduino Micro : 4 étapes (avec photos)
Tapis avec capteurs/communication RF avec Arduino Micro : J'ai récemment terminé l'installation Tout aussi diversifiée, qui est composée d'une série de lampes qui réagissent aux capteurs placés dans un tapis sous les lampes. Voici comment j'ai fait le tapis avec des capteurs de pression. J'espère que vous trouverez ça utile.:)
Lancez votre diaporama de photos de vacances avec une touche de magie ! : 9 étapes (avec photos)
Lancez votre diaporama de photos de vacances avec une touche de magie ! : Au fil des ans, j'ai pris l'habitude d'emporter une petite figurine avec moi en voyage : j'achète souvent un petit artoy vierge (comme celui sur la photo) et je peins il correspond au drapeau et au thème du pays que je visite (dans ce cas, la Sicile). T