Line 54: | Line 54: | ||
Pour gérer les leds WS2812 la meilleur solution est la librairie NeoPixel d'Adafruit: | Pour gérer les leds WS2812 la meilleur solution est la librairie NeoPixel d'Adafruit: | ||
− | + | https://github.com/adafruit/Adafruit_NeoPixel | |
− | https://github.com/adafruit/Adafruit_NeoPixel | ||
− | |||
Maintenant que vous avez tous les outils d'installés vous allez pouvoir passez à la programmation: | Maintenant que vous avez tous les outils d'installés vous allez pouvoir passez à la programmation: | ||
Author Mathieu | Last edit 9/12/2019 by Clementflipo
notification, esp8266, ws2812, star wars, android, hack, electronique, death star, lampe Système_de_notification_physique_DSC_0538.JPG Création
Le fonctionnement du système est basé sur l'utilisation de l'application Tasker installer sur le téléphone et d'un ESP8266 connecté au même réseau wifi que le téléphone.
D'un coté l'esp8266 est programmé pour allumer ou d'animer les leds d'une façon particulière en fonction des requêtes HTTP qui lui sont envoyées sur le port 80.
De l'autre côté Tascker est paramétrer pour envoyer une requête http particulière à l'adresse IP de l'ESP8266 à chaque fois qu'une application notifie d'un événement.
Par exemple si ont reçois un mail, gmail fait une notification, tasker envois la requêtes "http://192.168.0.109/gpio/01" et l'EPS allument les leds en rouge.
Pour programmer l'ESP82266 on vas tuiliser l'IDE arduino. Pour cela il vous faut tout d’abord ajouter le support de ce type de carte dans l'IDE en ajoutant l'URL suivante dans fichier>Préférences>URL de gestionnaire de cartes supplémentaires :
http://arduino.esp8266.com/package_esp8266com_index.json,http://arduino.esp8266.com/stable/package_esp8266com_index.json
Puis choisir "Generic ESP8266 Module " dans Outils>types de carte.
Et enfin relier l'ESP au convertisseur USB/série comme indiquer sur le schéma.
Pour gérer les leds WS2812 la meilleur solution est la librairie NeoPixel d'Adafruit:
https://github.com/adafruit/Adafruit_NeoPixel
Maintenant que vous avez tous les outils d'installés vous allez pouvoir passez à la programmation:
Vous pouvez ensuite modifier/rajouter des valeurs au début du "void loop" pour choisir la couleur de notification associé à chaque application. La couleur est géré par la fonction notif que prend comme paramètres 3 valeurs comprises entre 0 et 255 correspondant respectivement au taux de rouge, de vert et de bleu. Penser à modifier l'attributs NUMLED enfontion du nombre de leds que vous utilisez et à changer le ssid et le password pour vous connecter à votre réseau wifi.
Pour gérer de manière automatique et transparente l'envoi de requêtes à l'ESP8266 nous allons utiliser l’application Tasker.
{{Info|Text=Tasker est une application payante disponible sur le google play store pour quelque euros. Cependant il existe une version d'essai de 2 semaines }}
Maintenant vous pouvez paramétrez tasker (CF capture d'écran) en ajoutant un contexte de notification, entraînant une tâches envoyant une requête http sur l'IP local de l'ESP8266 sur le chemin "/gpio/NumAssocitéAL'application" pour allumer les leds puis une seconde envoyant "/gpio/0" pour les éteindre. Il peut aussi être intéressant de rajouter un contexte "wifi" pour que les requêtes aient lieu uniquement lorsque vous êtes connecté au même réseau que l'ESP8266.
Une fois toutes la partie logiciel terminée vous pouvez passer à l’électronique.
On retrouve rien de bien compliqué. L’électricité est fournie par le port usb. La tension est ensuite abaisser de 5V à 3,3V pour alimenter l'ESP8266. Ce dernier contrôle ensuite les led avec sa broche 2 par l'intermédiare du'un résistance de 330 Ohms. Enfin il est aussi intéressant d'ajouter un condensateur de 100 μF au borne des WS2812 pour lisser la tension d'alimentation.
Pour les led WS8266: https://learn.sparkfun.com/tutorials/ws2812-breakout-hookup-guide
Pour l'ESP8266: Hackable magazine numéro 7
Pour tasker: http://tasker.dinglisch.net/
You entered an invalid page name, with one or many of the following characters :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #