IR-WolAndShut

De Kernel Fablab Lannion
Révision datée du 25 novembre 2015 à 00:48 par Pofexpray (discussion | contributions) (Page créée avec « = Présentation = Le projet a pour but de pouvoir démarrer et éteindre un ordinateur via une télécommande infrarouge (universel ou via récupération de code de la té... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Présentation

Le projet a pour but de pouvoir démarrer et éteindre un ordinateur via une télécommande infrarouge (universel ou via récupération de code de la télécommande de votre télévision). Le boitier doit être autonome et n'a pas besoin d'être programmé via un ordinateur avant utilisation, un logiciel doit être exécuter au démarrage sur l'ordinateur cible.

Exemple d'utilisation: - Personne à mobilité réduite (télécommande spécialisé) - Bouton de démarrage difficilement accessible - Démarrer en avance un ordinateur long à démarrer - Forcer l'extinction d'un ordinateur dans une autre pièce (l'ordinateur de l'ado qui ne veut pas venir manger) - ...

Architecture

Un arduino avec shield ethernet relié sur le même réseau local que l'ordinateur cible. Si l'ordinateur cible est relié en wi-fi au réseau local, seule la fonctionnalité d'extinction fonctionnera (pas de wake on lan sur carte wi-fi). Après l'installation du boitier et la mise en place du logiciel sur l'ordinateur, une procédure d'initialisation est à suivre (voir "installation"), ensuite tout est fonctionnelle. Cette procédure n'est pas à relancer en cas de coupure de courant sur l'arduino (les données sont gardées en mémoire par l'arduino). L'architecture de test: Une box, un switch, le boitier IR-WolAndShut sur le switch, un pc sur le même réseau (relié au switch ou à la box). Testé avec télécommande samsung et pentax.

Le boitier doit pouvoir être pointer grossièrement par la télécommande de l'utilisateur.

Hardware: - Arduino Nano (atmega328p) - Ethernet shield ENC28J60 (attention dans mon cas j'ai du alimenter ce shield en 5v malgré qu'on trouve les docs sur le net signalant qu'il est alimenté en 3.3v) - Récepteur infrarouge TSOP382 - Une led pour indicateur visuel - Deux boutons poussoir (type pullup), pour lancer les procédures d'installations.

Software: - Arduino IDE 1.6.6

Côté arduino

Librairie arduino

- IRremote v2.01: Pour la réception infraouge (https://github.com/z3t0/Arduino-IRremote) - Ethercard: Pour la partie ethernet (https://github.com/jcw/ethercard) - IPAddress et EEPROM inclus avec l'IDE arduino 1.6.6

Code arduino

Le code pourra être très largement optimisé, il est largement commenté, tout est précisé dans le fichier ci-dessous: Fichier ino v0.2 File:WolAndShut_v0.2.ino.zip

Pour information, les codes de télécommande et l'adresse mac du pc cible est enregistré lors de la procédure d'installation en EEPROM. En cas de coupure électrique ou autre, les codes sont gardés en mémoire donc il n'est pas nécéssaire de refaire la procédure d'installation.


Côté PC Cible

Matériel

Une carte réseau compatible avec la fonctionnalité Wake on lan. Il y a plein de tuto sur le net sur cette fonctionnalité et voir pour activer ou vérifier l'activation: https://openclassrooms.com/courses/wake-on-lan Le boitier arduino et l'ordinateur doivent être sur le même réseau local (rélié sur la même box)

Code python

Le code pourra être optimisé. Créé sous python 3.4. Cette version du soft est uniquement compatible windows pour le moment (mais pourra être adapté facilement à linux) Deux librairies ont été utilisé: netifaces pour la gestion des interfaces réseaux, pyinstaller pour générer le .exe L'utilisateur final n'a pas besoin d'installer python ou les librairies sur son ordinateur. Seul le fichier .exe est nécéssaire Le fichier original en .py modifiable: File:WolAndShutv0.2.zip Le fichier exécutable (generé via la commande pyinstaller -F -w nomduscriptpython): File:WolAndShut-exe-v0.2.zip


Installation

Une fois l'arduino finalisé côté hardware et chargée avec le code vous pouvez procéder à l'installation: - Brancher l'arduino au réseau ethernet puis brancher l'arduino électriquement. L'arduino allumera la lampe verte le temps du démarrage (récupération de son adresse ip) puis la led s'eteindra. - Copier le fichier exe (WolAndShut.exe) dans votre menu démarrer (le soft démarrera automatiquement avec windows). Cette étape est indispensable !!! - Pour cette première installation, cliquer sur l'exe (pour lancer le logiciel) - On passe du côté du boitier arduino maintenant - Appuyer sur le bouton poussoir qui controle l'initialisation de l'adresse mac (dans mon cas celui le plus proche de la led infrarouge). Vérifier votre montage pour savoir lequel est le votre (toutes les indications sont dans la partie architecture). - La led se met a clignotter une fois (ou un peu plus si la réponse est longue à avoir). - La led est de nouveau éteintes (moins de deux secondes après, cela signifie que tous s'est bien passé). Si elle clignotte plus longtemp un problème pour récupérer l'adresse mac de l'ordinateur peut avoir lieu. Vérifier que vous avez bien démarrer l'executable du côté de l'ordinateur (le fichier exe WolAndShut.exe). Puis redémarrer l'arduino et recommencer l'installation du côté arduino. - Prenez votre télécommande, et regarder quels sont les deux boutons que vous allez utiliser pour les fonctionnalités wake on lan et shutdown (deux boutons distincts !!!!) - Appuyer sur le bouton poussoir qui controle l'initialisation des codes a utiliser pour la télécommande - La led se met a clignoter rapidement puis va rester allumer - Quand la led est allumé, appuyer sur la touche de la télécommande prévue pour le wake on lan - La led clignotte rapidement une fois le code reçu puis va rester à nouveau allumer. - Quand la led est allumé, appuer maintenant sur la touche de la télécommande prévue pour l'extinction du PC - La led va clignotter lentement 5s et va s'éteindre. - L'installation est finit. Si vous changer de PC cible ou si vous voulez changer de bouton de la télécommande vous devrez refaire la procédure d'installation (côté arduino et côté PC en cas de changement d'ordinateur)

Utilisation

- Pointer votre télécommande vers le boitier WolAndShut - Si l'ordinateur est éteint: En cas d'appuie sur la touche de wake on lan, le pc va démarrer automatiquement. Un appuie sur la touche d'extinction ne fera rien. - Si l'ordinateur est allumé (session ouverte): En cas d'appuie sur la touche wake on lan, il ne se passe rien. Un appuie sur l'extinction va eteindre le PC après 30s en affichant un pop-up d'information. Toutes les applications seront fermés automatiquement. Pensez à sauvegarder votre travail


Bonus

Mon boitier pour ma carte (le boitier est assez spécifique car l'assemblage est un prototype) .stl a ajouter

TODO

- Compatibilité linux a mettre en place - Optimiser le code - Voir comment démarrer le logiciel .exe même si la session utilisateur n'est pas ouverte - Voir si il est possible pour l'utilisateur d'annuler l'ordre d'extinction (techniquement faisable ? proteger par mot de passe ?) - Ajouter les schemas d'architecture et schema de cablage de l'arduino - Ajouter le .stl du boitier - Ajouter photo du proto - Ajouter une partie de piste en cas de besoin de débuggage (en cas de problème éventuel) - Mise en forme et illustration dans le wiki