EcoCard – Solution technique

Envoyé par le 20 Déc 2021

This entry is part 3 of 3 in the series Ecocard

Auteurs : M. BARATON, V. BLONDEL, M. CZERNICHOW, L. REYNAUD

I. Contexte 

Nous sommes un groupe de 4 étudiants à IMT Atlantique et devions réaliser un projet dans le cadre de notre thématique d’approfondissement de Conception d’Objet Connecté (CoOC). C’est pourquoi, au fil des dernières semaines, nous avons cherché à répondre à la problématique suivante : comment éviter la surconsommation d’énergie dans les entreprises ? Nous allons vous présenter notre solution, EcoCard.

II. Présentation de la solution technique

   1. Présentation du système et de son fonctionnement 

EcoCard est un système qui permet d’éteindre ou d’allumer un ordinateur depuis un appareil extérieur afin qu’un ordinateur ne reste pas allumer indéfiniment en l’absence de son utilisateur par exemple. Notre solution se présente sous la forme d’un boitier contenant une carte Raspberry PI et un lecteur RFID connectés. La carte Raspberry PI reçoit des informations du lecteur RFID et donne ensuite des consignes à l’ordinateur cible. La connexion entre l’ordinateur cible et la carte Raspberry se fait via un câble Ethernet. Pour entamer le processus, l’utilisateur doit introduire un badge RFID dans une fente du boîtier prévu à cet effet. Le lecteur RFID présent dans le boîtier pourra alors récupérer les informations du badge et les transmettre à la carte Raspberry PI.

Voici un schéma explicatif dans le cas où l’on cherche à utiliser EcoCard dans le cas où l’ordinateur cible est allumé et l’objectif est de l’éteindre :

Schéma explicatif EcoCard

Si le badge a bien les autorisations nécessaires, un message s’affichera sur l’écran de l’ordinateur cible (« Vous allez être déconnecté, arrêt en cours… ») puis l’ordinateur s’éteindra au bout de quelques secondes.

Attention, notre solution fonctionne uniquement sur des appareils OS Windows et non sur des appareils Mac OS ou Linux. Il est possible d’adapter EcoCard à ce type d’appareil en changeant notamment le code présent sur la carte Raspberry PI.

2. Architecture boitier

Pour des raisons fonctionnelles, ergonomiques et esthétiques, l’équipe a opté pour la conception d’un boîtier afin que les fils, la carte Raspberry PI ou le capteur RFID n’encombrent pas l’utilisateur.

La conception s’est faite en deux temps. Tout d’abord la partie principale du boîtier a été modélisée en 3D sur SolidWorks. Cette partie sert à fixer les différents éléments du montage comme le capteur RFID et la carte Raspberry Pi. Elle permet également de créer la fente dans laquelle la carte doit être glissée. Cette partie a été imprimée en 3D. Suite à des complications la partie fixation de la carte Raspberry Pi a été enlevée. Ensuite, il a fallu concevoir le toit et la partie arrière du boîtier. Ces deux parties ont été découpées dans du bois au laser. La partie supérieure a été collé au pistolet à colle car elle a besoin d’être fixée. La partie arrière est vissée à la partie imprimée en 3D de sorte que l’on puisse sortir et rentrer les éléments pour la maintenance éventuelle.

Schéma du boîtier sur SolidWorks sans le toit ni la plaque arrière

Pour concevoir notre système, il faut dans un premier temps connecter la carte Raspberry PI au lecteur RFID. Puis à l’aide de deux vis il faut fixer le lecteur RFID à l’intérieur du boîtier, on le fixe à la partie supérieure, celle accolée à la fente prévue pour les badges RFID. Ensuite on fixe la carte Raspberry PI sur la paroi droite du boitier à l’intérieur afin d’éviter d’avoir à faire les connexions dans l’espace restreint du boitier. Il reste à brancher le câble d’alimentation de la carte grâce à un trou dans la paroi droite du boitier et le câble Ethernet via un trou dans la paroi de derrière. Enfin on referme le boîtier à l’aide des 4 vis prévues à cet effet.

3. Montage électronique et matériel utilisé.

Liste du matériel utilisé :

  • Raspberry Pi 3B+
  • Module RFID-RC522
  • Un câble Ethernet
  • Un câble d’alimentation 5V 3000mA Micro USB
  • Des câbles et des vis

 

Présentation du circuit électronique [2]

  Pour des raisons de priorisation des fonctionnalités, nous avons par la suite retiré les LEDs du circuit.

      a. La Raspberry Pi 3B+

L’action d’éteindre ou d’allumer un ordinateur à distance doit se faire à partir d’un autre ordinateur. Dans ce projet, la Raspberry Pi 3B+ fait office d’ordinateur monocarte et fonctionne sous Raspbian 11.

Ce modèle est basée sur un processeur ARM Cortex-A53 64 bits quatre coeurs à 1,4 GHz, il dispose de 1GB de mémoire RAM, une interface Wi-Fi, une interface Bluetooth, 4 ports USB, un port Ethernet, un port HDMI, un port micro-SD et un connecteur GPIO avec 40 broches d’E/S.

Carte Raspberry Pi 3B+

Le fait de disposer à la fois d’une interface Wifi et d’un port Ethernet permet d’utiliser selon la situation un de ces deux protocoles de communication avec l’ordinateur cible. C’est également grâce à cette interface Wifi qu’il est possible d’utiliser l’interface graphique de la Raspberry Pi via VNC sur un ordinateur portable.

Nous avons décidé pour ce projet d’utiliser un système d’exploitation (Raspbian) sous Linux plutôt que sous Windows car la création de l’interface était plus simple avec Raspbian. De plus, les versions des systèmes d’exploitation windows sur Raspberry Pi sont très lourdes et demandent plus de performances et de ressources, ce qui était peu adapté au projet.

      b. Le module RFID-RC522

Module RFID-RC522

 

Nous avions également besoin d’un module permettant de détecter la présence d’une carte et de lire son UID afin de vérifier que l’utilisateur a le droit d’avoir les accès sur l’ordinateur : nous avons choisi le lecteur RFID-RC522.

Ce module est utilisé pour lire et écrire sur des cartes ou badges RFID de type Mifare. Il fonctionne en transmettant, à travers des ondes radio, de l’énergie au tag RFID. La carte microprocesseur (Arduino, Raspberry ou compatible) et le module RFID communiquent via le bus SPI permettant de laisser libres les autres ports de la carte pour d’autres applications.

  

Connexion des ports du RC522 aux ports de la Raspberry Pi

4. Pré-configuration de l’ordinateur cible

a. Généralités

L’utilisation du Shutdown, du Wake on Lan et de la mise en veille à distance requiert qu’un certain nombre de paramètres de l’ordinateur cible soit modifiés. Il s’agit en fait d’autoriser sa communication avec les ordinateurs distants. L’ordinateur cible doit être autorisé dans les paramètres à pouvoir:

  • Se réveiller grâce à un paquet magique (activation dans le Bios)
  • Pouvoir partager et recevoir des fichiers de la part d’un ordinateur distant.
  • Pouvoir recevoir un paquet magique de la part d’un ordinateur distant.
  • Accéder à distance à un ordinateur distant
  • Etre forcé de s’arrêter à partir d’un ordinateur distant.

Tous ces paramètres à activer réduisent la sécurité de l’ordinateur à éteindre vis à vis des ordinateurs distants. De plus, le nom d’utilisateur et le mot de passe d’une session administrateur doivent être inclus dans le code, ce qui pose un problème de sécurité pour cette session. La Pré-configuration est détaillée dans le fichier Read du Git.

b. Le Wake on Lan

Attention, malheureusement seuls certains appareils sont compatibles avec le Wake on Lan. Pour déterminer si votre appareil possède cette fonctionnalité, il faut se rendre dans le BIOS de votre ordinateur, aller dans les options avancées, puis dans gestion de l’alimentation avancée, il faut ensuite activer le démarrage du système par périphériques PCI-E, si l’option n’est pas disponible votre appareil n’est pas compatible.

Dans le cas où votre appareil est compatible, il faut se rendre dans le gestionnaire de périphériques de Windows, ouvrir la carte réseau puis ouvrir la carte Ethernet. Il faut ensuite aller dans l’onglet avancé, cliquer sur Wake On Magic Packet, il faut l’activer. Dans l’onglet Gestion de l’alimentation, tous les éléments doivent être cochés, c’est à dire :

  • « Autoriser ce périphérique à sortir l’ordinateur du mode veille »
  • « Autoriser uniquement un paquet magique à sortir l’ordinateur du mode veille »

Il faut également récupérer l’adresse MAC de l’ordinateur à allumer via la commande ipconfig /all

Votre appareil est alors configuré pour le Wake On Lane. Cela vous permettra de démarrer à distance votre ordinateur complètement éteint.

La commande à entrer sur la carte Raspberry PI utilise la librairie etherwake, elle contient une unique ligne contentant en particulier l’adresse MAC de l’ordinateur cible. Cette commande permet d’envoyer un paquet magique à l’ordinateur à allumer.

   5. Explication et lien vers le code 

Comme le projet est divisé en différentes fonctionnalités, nous avons décidé d’écrire des scripts shell différents pour chacune de ces fonctionnalités (Shutdown, Wake on Lan…). Cela permet de tester ces scripts shell indépendamment avant de les inclure dans le code.

Un code python va permettre d’appeler les scripts shell à exécuter selon le badge RFID lu. Ce code va être exécuté grâce à un autre script shell appelé lancement.sh qui permet d’exécuter le code python main directement au démarrage de la Raspberry Pi. En effet, on utilise le crontab qui est un programme qui permet aux utilisateurs de Linux d’exécuter automatiquement des scripts à une date ou à une heure spécifiée. Ici, on a spécifié que le script devait être exécuté à chaque lancement grâce à la commande @reboot. L’ensemble du code est disponible ici.

   6. Protocole de Communication

Nous avons choisi, dans le cadre de notre projet, d’utiliser la technologie de transmission Ethernet. Pour l’IEEE (institut des ingénieurs et électriciens), Ethernet est en fait le protocole 802.3. C’est le type de réseau local le plus utilisé aujourd’hui.

Un réseau local (LAN) est un réseau d’ordinateurs connectés dans une zone restreinte. C’est la connexion utilisée dans la grande majorité des bureaux. L’Ethernet est un réseau local nécessitant un câblage.

Le choix de transmission qui s’est présenté à nous était le suivant : Wi-Fi ou Ethernet.

Le Wi-Fi (réseau local) était une solution possible pour réaliser notre système, car l’ordinateur et le boîtier restent très proches l’un de l’autre et peuvent être connectés en LAN (local area network).  Cependant, une telle technologie de transmission implique deux choses : un réseau local fonctionnel à disposition et une connexion permanente de la raspberry pi à ce réseau ainsi que de l’ordinateur. En effet, le réseau local doit être bien choisi : par exemple, le wifi de l’école ne fonctionnait pas. De plus, la connexion permanente des deux outils numériques est une contrainte. Nous avons également constaté lors des recherches réalisées pour coder le Wake on Lan que ce processus se faisait en Ethernet dans la majorité des cas (bien que le Wi-Fi reste une possibilité de transmission).

Nous avons donc opté pour la connexion Ethernet. Cette connexion possède un avantage important : elle permet une connexion beaucoup plus stable. En effet, il n’y a pas de problème d’interférence avec un réseau Ethernet câblé. Or les interférences dans un bureau sont communes, pouvant être créées par le partage de connexion, les connexions bluetooth, etc. En s’affranchissant de toutes ces interférences, via le câble Ethernet, la connexion connaît moins de ralentissements, de déconnexions ou de problèmes de connexions.

De plus, la technologie Ethernet assure une connexion complètement sécurisée. En effet, avec une connexion physique, nous pouvons garder le contrôle sur ce qui est connecté sur notre réseau local. Un réseau Wi-Fi aurait pu s’étendre au-delà des murs de l’entreprise, les impacts du système aussi.

III. Résultats

Notre système de réduction de la consommation d’énergie pour un poste de travail s’est soldé par la mise en place d’un système permettant d’éteindre un ordinateur grâce à un badge RFID. Pour terminer le système, il suffit d’acheter une multiprise maître-esclave et de brancher l’ordinateur sur la prise dite « maître ».

Nous avons donc mis en place et testé trois fonctionnalités du système : le boîtier, le shutdown d’un PC distant par introduction du badge RFID ainsi que l’automatisation du système au démarrage de celui-ci. Ces tests sont présentés dans la vidéo suivante.

IV. Perspectives 

   1. prise de recul sur les points délicats du système

Un des points délicat que nous avons constaté lors de la réalisation de notre projet est l’importance du choix dans le matériel utilisé. En effet, nous avons très rapidement opté pour une carte arduino pour finalement réaliser qu’une carte Raspberry Pi était plus adaptée au projet. De plus, nous avons été confrontés à des problèmes, assez attendus, de cyber sécurité.

Exemple concret :  mon ordinateur se déverrouille grâce à mon empreinte digitale, je dois entrer un code à 4 chiffres si l’ordinateur ne reconnaît pas l’empreinte, mais ce code n’est pas considéré comme le moyen principal de déverrouillage de mon ordinateur. Ainsi dans le script du shutdown lorsque j’indique mon code à 4 chiffres comme mot de passe associé à mon login, cela ne fonctionne pas. Il faut que je désactive l’empreinte digitale et que je mette un mot de passe sous forme d’une chaine de caractère pour que le script du shutdown fonctionne correctement. C’est une des limites de samba-common.

La réalisation du système demandant de nombreuses recherches qui menaient toujours à plus de découverte et de tâches à réaliser, nous avons donc dû prioriser certaines fonctionnalités. C’est pourquoi lors de chaque nouveau sprint, de nouvelles User story ont été ajoutées.

   2. prise de recul sur les forces du système 

La détection RFID est une force du système car c’est un système très fiable qui permet de sécuriser le système en autorisant uniquement une seule carte à déclencher l’arrêt.

Une autre force du système est qu’il est possible de le mettre hors tension puis de le rebrancher sans qu’il y ait d’impact sur son utilisation, ce qui donne des possibilités d’améliorations en terme de consommation pour la Raspberry Pi même si cette consommation est assez minime

   3. descriptions des actions à réaliser pour compléter le système actuel 

Pour compléter le système, il faudrait finaliser le Wake on Lan, en trouvant un ordinateur supportant le Wake on Lan et adapté au code pour ensuite affiner notre code.

Il faudrait également créer une interface pour que le système s’adapte facilement à tous type d’ordinateur et soit facilement configurable, notamment en ce qui concerne l’adresse IP, l’adresse Mac, le nom d’utilisateur et le mot de passe de l’ordinateur distant. Une idée que nous avions était de créer une interface digitale directement sur le boîtier pour avoir un système plus ludique. La fonctionnalité de mise en veille doit également être ajoutée.

Finalement, la dernière tâche à réaliser pour obtenir un système répondant à la problématique initiale, à savoir la réduction de la consommation d’énergie au sein d’une entreprise, est simplement de réaliser le branchement adapté à l’aide d’une prise maître esclave. L’ordinateur serait en fait branché en tant que maître, et lors de son extinction, l’ensemble des autres objets numériques branchés en temps qu’esclaves s’éteindront.

   4. suggestion de pistes concrètes pour l’ajout de nouvelles fonctionnalités 

Il pourrait être ajouté à l’interface un calcul de l’énergie économisée depuis l’utilisation de EcoCard. Une utilisation par défaut est à définir et pourrait être changée.

Après avoir connecté toutes les Raspberry Pi à des postes de travail, on peut créer une carte virtuelle avec leurs positions géographiques reportées sur cette carte. Suite à cela, si jamais plusieurs boitiers EcoCard proches détectent des ordinateurs éteints, la lumière, le chauffage et toutes autres consommations d’énergie inutiles seraient arrêtées.

 

Series Navigation<< EcoCard– Etude terrain et personas

Laisser une réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *