WinSumption – Solution Technique

Envoyé par le 20 Déc 2019

Conception d’un système d’économie d’énergie en résidence

 

Ce document a pour but de présenter et documenter la solution technique mise en place afin de répondre au besoin du projet et justifier les choix techniques effectués lors de la conception ainsi que décrire les perspectives dans l’éventualité d’un projet plus long.

Document rédigé par : BENFATTALLAH Annass, GUILLAUME Jean, LALO Emile, TOBITT Eric

 

I) Présentation de l’objet électronique communiquant

 

 

 

  • Présentation synthétique :

 

 

La solution mise en oeuvre est basé sur une Arduino UNO. Un capteur relève périodiquement la température et la transmet via le module Bluetooth par la carte Arduino. L’Arduino est alimentée par un bloc de piles rechargeables afin d’assurer la portabilité du prototype.

 

(insérer photos) + mettre le schéma global d’architecture du PPT d’Eric (du thermomètre au gérant qui utilise l’appli)

 

 

  • Présentation détaillée :

 

 

1. Structure

 

Le capteur réalisé a été placé dans un boîtier conçu avec deux compartiments communicants. Le premier pour le bloc de piles, lourd, qui est maintenu en place à l’aide des parois et de vis. Le second contient l’Arduino, le module bluetooth branché sur la breadboard ainsi que le capteur de température. Du volume a été laissé pour pouvoir manipuler la configuration et le câblage. Une ouverture entre les deux compartiments est laissée pour passer le fil d’alimentation électrique. L’ensemble des composants électroniques sont fixés aux parois de leur compartiment pour éviter que des mouvements altèrent les branchements quelque peu fragiles. De plus des ouvertures d’aération ont été stratégiquement placées pour éviter que le fonctionnement du capteur influe sur la bonne mesure de la température.

 

 

 

2. Matériel électronique

 

  • Carte Arduino UNO

 

Le choix d’une carte arduino s’est fait au vu des tâches simples de transfert d’information à effectuer, ne nécessitant pas de processeur avancé. De plus la grande modularité de l’Arduino, l’existences de nombreux composants compatibles et des bibliothèques associées ainsi que la vaste ressource présente en ligne ont permis un prototypage relativement rapide et modulaire. Ainsi on a pu orienter le choix des modules et le développement du programme embarqué en fonction de contraintes fonctionnelles réelles. De plus, l’Arduino fonctionnant avec peu d’énergie, celle-ci nous a permis de faire un prototype portable utilisant des piles rechargeables, afin d’avoir une solution plus proche de la solution final souhaitée. L’installation de capteurs sans fils présente un réel intérêt pour les clients interrogés, pouvant ainsi se passer du surcoût important que représente le câblage d’un bâtiment entier.

  • Capteur de température de d’humidité DHT11

 

Ce capteur de température et d’humidité a été sélectionné pour des raisons techniques mais aussi pratiques. Sa mise en oeuvre est simple, la communication avec l’arduino se fait avec un unique port digital à sens de transmission alterné, sélectionné en début du code Arduino, émettant sur demande de l’Arduino un message contenant la température mesurée au degré près ainsi que l’humidité au pourcentage près. Le prototype réalisé ne nécessitant pas de mesures précises, et ce capteur étant disponible et fonctionnant correctement, il a été jugé satisfaisant pour la présente application. Il utilise une bibliothèque DHT existante.

  • Module Bluetooth HC-05

 

Le module HC-05 est le module Bluetooth le plus utilisé sur Arduino. Il se connecte via deux ports séries RX et TX à l’Arduino. Ceux-ci sont configurable sur des ports digitaux (ici respectivement 12 et 13) grâce à la bibliothèque SoftwareSerial afin de garder disponible les ports séries 0 et 1 utilisés par le port USB disponibles. En imprimant (print()) simplement la chaîne de caractères sur le port série TX de l’Arduino (RX du module) celle-ci est transmise via Bluetooth au téléphone connecté. Ici on transmet de cette manière, toutes les secondes, la température et l’humidité relevées.

Le choix de la communication par Bluetooth sur le prototype s’est fait pour l’économie en énergie de cette technologie, ainsi que la compatibilité aisée avec l’Arduino et le smartphone utilisé comme station de base. Une communication Wifi trop énergivore compromettrait la portabilité du prototype et le désir du client d’avoir des capteur sans fils et le Lora n’est pas disponible nativement sur Android donc rallongerait considérablement la phase de prototypage dédiée à son implémentation. Cependant, la portée limitée du Bluetooth et une consommation qui reste trop élevée ne permet probablement pas d’en faire une solution définitive à l’échelle d’un bâtiment, ce que nous détaillerons dans les perspective de développement de la solution.

  • Bloc d’alimentation

Nous avons choisi de rendre le capteur autonome en énergie. Cette réalisation est importante avec le besoin de modularité de la solution. Ainsi, suite au choix de technologies économes en énergie, nous avons choisi d’utiliser un bloc de 8 piles rechargeables fournissant 9,8V au total pour une capacité de 2200mAh. Cette alimentation branchée sur le port X1 de l’Arduino (qui prend des tensions de 9V à 12V) alimente correctement la carte ainsi que les modules connectés. On mesure une consommation de 90mA lorsque le module Bluetooth est en recherche, puis une consommation oscillant entre 50mA et 70mA lors des phases de transmission. On calcul une autonomie en fonctionnement d’environ 35h, ce qui n’est pas suffisant pour un capteur réel (voir perspectives) mais largement assez pour le démonstrateur réalisé.

 

 

3. Code Arduino

 

Le code utilisé sur l’Arduino Reprend deux bibliothèques: celle du capteur de température DHT et SoftwareSerial permettant d’utiliser le module bluetooth en parallèle du port sérial natif utilisé pour communiquer en USB.

On initialise donc le port utilisé pour le module DHT ainsi que les ports RX et TX (12 et 13 ici) utilisés pour le module Bluetooth. On démarre donc les ports série natif et Bluetooth avec le bon Baud rate (9600) et la communication en dht. Ensuite la boucle infinie procède à une pause d’une seconde pour limiter la fréquence des transmissions, récupère les données du capteur et les transmet comme chaîne de caractères en utilisant la fonction print() sur le port Bluetooth avec des séparateurs prédéfinis en accord avec l’application Android (ici “x” et “z”). Le port série natif a été utilisé à des fins d’essais.

B) Présentation de l’application Android :

 

  • Logiciel utilisé :

 

Deux d’entre nous avaient déjà participé à un projet d’application avec Android Studio. Nous avons aussi envisagé d’utiliser MIT App Inventor pour l’application Android mais il y a plusieurs inconvénients :

– la programmation par blocs met des contraintes.

– faible communauté de développeurs pour résoudre les problèmes/erreurs rencontrés

– nous avions très peu d’expertise avec cette technologie

Nous avons donc choisi le logiciel Android Studio.

 

 

  • Stockage des données : (partie que l’on peut raccourcir si besoin)

 

Pour le stockage des données de température nous avons utilisé l’API SharedPreferences.

L’idée de départ était d’utiliser une base de données de type SQLite qui est un type de base de données compatible avec Android Studio. Cependant, le temps que nous avions était restreint et nous avions peu d’information à stocker (un relevé de température par minute maximum). En effet, dialoguer avec une base de données demande d’utiliser un grand nombre de classes (« DAO »), ce qui complexifie grandement la réalisation du prototype.

L’idée suivante fut d’utiliser un fichier «.txt » stocké de préférence en stockage externe (carte SD). Nous avons tenté d’implémenter cette solution mais un problème (nous n’arrivons pas à écrire à nouveau dans un fichier existant) nous a conduits à changer de solution et à utiliser l’API SharedPreferences.

Celle-ci permet de stocker les données dans un fichier xml et fournit des services pour stocker et récupérer des entrées (clé+valeur). De plus le fichier xml correspondant est accessible depuis toutes les activités.

 

 

  • Différentes pages et navigation entre les pages :

 

La page de login est le point d’entrée de l’application. C’est de là que l’on accède à la page d’activation de la réception sans fil (bluetooth dans notre cas) d’informations des capteurs.

Le centre de l’application est la page de base d’informations sur les résidents. De là on accède aux données des capteurs correspondant à un résident en particulier. On peut aussi accéder à la page qui liste les alertes de surconsommation.

Pour l’instant, les alertes sont à rentrer manuellement lorsque le gérant remarque des une surconsommation, mais il semble important que la version finale de l’application détecte automatiquement les situations de surconsommation. Cela permet de repérer les résidents peu attentifs à leur consommation énergétique. Pour l’instant, le gérant a tout de même un historique des surconsommations dont il s’est rendu compte.

Nous avons choisi un graphique de type “LineChart” (ligne brisée) réalisé grâce à la bibliothèque “MPAndroidChart”. La page de visualisation récupère la donnée de température récupérée lors de l’activation du Bluetooth à travers l’API “SharedPreferences”.

 

 

  • Lien vers le code

https://github.com/Anassbenfathallah/Projet_Fil_Rouge_CoOC

 

C) Perspectives / Prolongation possible du projet :

   

Suite aux tests d’expérience utilisateur que nous avons réalisés, nous avons eu des retours sur de potentielles fonctionnalités à développer en cas de prolongation du projet. Ces différentes perspectives d’amélioration peuvent être séparées en deux catégories : Les améliorations techniques et les amélioration de l’interface.

 

 

  • Améliorations Techniques

 

 

Les différentes points d’amélioration techniques sont les suivants :

 

  • Compactage de la solution : Notre solution était déjà suffisamment compacte pour un prototype (95 x 80 x 130 mm). Cependant dans l’optique d’améliorer ce prototype pour se diriger vers une commercialisation, il pourrait être intéressant de le rendre encore plus compacte en remplaçant la carte arduino par un circuit imprimé spécialement conçu, intégrant bluetooth et les capteurs souhaités.

 

  • Technologie LoRa : Notre solution fait communiquer les capteurs avec l’interface via bluetooth. Bien que cette technologie soit adaptée pour un prototype simple, elle ne peut être envisagée pour une solution réelle. En effet dans l’optique d’installation de la solution en logement, la technologie bluetooth pourrait poser divers problèmes :
    • La portée d’émission du signal est relativement faible pour du bluetooth (environ 20m sans obstacles) tandis que le LoRa permet une portée d’émission de plusieurs kilomètres.
    • Le bluetooth permet simplement de jumeler deux objets entre eux mais n’est pas adapter pour faire communiquer un réseau d’objets entre eux. La technologie LoRa permet la communication entre plusieurs objets.
    • Le Bluetooth consomme plus que le LoRa compliquant donc les solutions d’alimentation en énergie.

 

  • Batterie alimentée par panneaux solaires : Notre solution comprend actuellement un bloc de 8 piles AA ce qui est trop gourmand en énergie. Il serait préférable d’intégrer une batterie alimentée par panneaux photovoltaïques. Il faut noter que la consommation énergétique de l’objet est suffisamment faible pour être alimenté par des panneaux photovoltaïques éclairé par la lumière de la chambre.

 

  • Ajout de capteurs : Notre solution comprends actuellement un seul capteur de température. Il serait plus intéressant de rajouter de nouveaux capteurs tel que un second capteur de température collé au chauffage afin d’en mesurer la consommation énergétique.

 

 

  • Améliorations de l’interface

 

 

Au-delà des améliorations techniques, des améliorations de l’interface pourrait permettre d’améliorer l’expérience utilisateur de notre solution. Voici les améliorations possibles auxquelles nous avons réfléchie :

 

  • Implémentation d’une page Web : En plus de l’application Android, il pourrait être intéressant d’accéder à l’interface via une page web afin de visualiser les informations de l’application sur un écran plutôt que sur un téléphone.

 

  • Ajout de fonctionnalité de restitution des données : Notre solution comprend actuellement un graphe permettant de restituer la température d’un logement au cours du temps. D’autres moyens de restitutions des données peuvent être envisagés. Un des retours des utilisateurs, était d’envisager d’afficher un plan par étage des bâtiments de la résidence pour y afficher la température par logement. Ceci permettrait à l’utilisateur de visualiser les différences de températures entre tous les logements d’un même étage.

 

  • Implémentation d’une page de gestion des alertes : Notre solution contient actuellement une page d’alerte permettant à l’utilisateur de visualiser des alertes de sur-consommation. Cependant toute la partie traitement des données pour automatiser la création d’alerte n’a pas été faite. Il serait intéressant d’implémenter une page permettant de gérer les seuils d’alertes à la guise de l’utilisateur.

 

Series Navigation<< WinSumption- Présentation des persona

Laisser une réponse

Votre adresse e-mail ne sera pas publiée.