Projet : Tableau De Bord Numérique

by x.zarian2000 in Circuits > Raspberry Pi

293 Views, 0 Favorites, 0 Comments

Projet : Tableau De Bord Numérique

ihm courbe 3.png
Matériel.png
Raspberry.jpg

Un FabLab (abréviation de FABrication LABoratory) propose un laboratoire de fabrication numérique personnel ouvert au plus grand nombre, et basé sur les projets des utilisateurs. C’est aussi une plateforme d'innovation ascendante et ouverte, il est basé sur l’échange de savoirs entre ses adhérents et les membres du réseau mondial des FabLabs, permettant de partager des ressources communes.

Dans cet espace ouvert et collaboratif, l'information doit pouvoir être disponible pour tous rapidement et à tout moment c'est pour cela qu'à émergé l'idée d'un tableau de bord numérique qui agrégerait du contenu aux formes multiples.

Dans tous les Fablabs du monde entier, sont utilisées des imprimantes 3D à fusion de filament, ces filaments sont principalement à base de PLA (acide polylactique) biosourcé avec de l’amidon de maïs). Il s'avère que la bonne conservation dans le temps du filament PLA pose problème (il est dégradé par les conditions d'humidité et de variations de température) et les résultats d'impression peuvent rapidement devenir très aléatoires. Les responsables de l'association ont souhaité disposer d'une solution de monitoring de la température et de l'humidité en plusieurs points de leurs locaux (proche de la fenêtre exposée à l'Ouest, vers la porte, etc).

Supplies

  • Une carte basée sur un module ESP8266 (+ câble USB)
  • Un capteur de type DHT11
  • Une Raspberry Pi
  • Un Ordinateur sous Windows

Installation Des Pilotes

Sans titre.png

Ici, notre carte est composée d'une puce CH340G pour l’interfaçage, c'est elle qui va gérer la communication entre la carte et le pc (sous Windows). Pour cela il est nécessaire d'installer les pilotes dédiés à cette puce, afin de permette la connexion en USB. (suivre les étapes via le lien).

IDE Arduino Et Paramétrage

ESP8266-IoT-Development-Board4.jpg

Notre carte est un "Arduino Compatible", c'est-à-dire une carte non-officielle prenant en charge les programmes codés (en langage C) avec l'IDE (Environnement de développement) Arduino. Ce dernier est open source et téléchargeable ici.

Une fois l'IDE installée, nous allons procéder à l'installation des librairies nécessaires, permettant d'utiliser nos composants. Mais avant cela allez dans : Fichier -> Préférences -> URL de gestionnaire de cartes supplémentaires, et insérer le lien suivant : http://arduino.esp8266.com/stable/package_esp8266com_index.json.

Cela permettra la gestion de notre "Arduino Compatible".

Accédez aux bibliothèques : Outils -> Gérer les bibliothèques. Cherchez puis téléchargez les librairies suivantes :

  • "Adafruit ESP8266" pour l'ESP8266
  • "Adafruit Unified Sensor"
  • "DHT sensor library" pour le DHT11

Test - DHT11

cablage.png
photo montage 2.jpg
photo montage 1.jpg
sortie dht.png

Les deux prochaines étapes auront pour unique but de tester nos composants et ne sont en rien nos programmes finaux.

Après avoir branché la carte au pc via USB, et le capteur à la carte tel que sur les images (en 3,3V), nous pouvons tester nos composants grâce aux programmes présents dans les bibliothèques précédemment installées.

Avant cela, allez dans : Outil -> Type de carte -> ESP8266 boards, sélectionner «Generic ESP8266 Module »

Toujours dans Outils -> Port, sélectionner le port auquel est connecté la carte (ex. « COM3 »)

Ouvrir : Fichier -> Exemples -> DHT sensor library -> DHTtester

  • A la ligne « #define DHTPIN 2» , remplacer le 2 selon le choix de pin de connexion du capteur à la carte (pin 5 si branché directement sur la carte)
  • Remplacer la ligne « #define DHTTYPE DHT22 » par « #define DHTTYPE DHT11 ».

Une fois ces étapes réalisées, nous pouvons téléverser à la carte afin de voir sur le port série (Outils -> Moniteur série, 9600 baud pour cet exemple) si les données sont bien transmises tel que sur la quatrième image.

Test - ESP8266

Pour tester le module Wi-Fi, commençons par créer un nouveau programme. Copiez ce programme et remplacez les valeurs initiales par vos paramètres.

Le programme :

  • L.1 à l.8 : Inclure les bibliothèques nécessaires, définir l’hôte, le réseau et créer un client pour la connexion
  • L.12 à l.17 : Initialisation du moniteur série, de la connexion au réseau Wi-Fi et vérification de la bonne connexion du module.
  • L.19 à l.23 : Accès à la Raspberry grâce au client Wi-Fi précédemment créé et confirmation (ou non).

Une fois tout cela téléversé, vous pourrez ouvrir le moniteur série (115200 baud), pour voir si tout fonctionne.

Si les deux messages de connexions sont positifs, alors votre ESP8266 fonctionne bien, sinon revérifiez vos paramètres.

Base De Données

bdd.png

Passons maintenant à la réalisation de notre système. Tout d'abord nous allons avoir besoin d'une base de données afin de stocker nos valeurs mesurées par notre capteur, et d'un serveur local afin d'accéder à celles-ci. Pour cela, nous aurons besoin de LAMP, d'Apache et de PhpMyAdmin, installé sur la Raspberry. Afin de bien installer ces programmes, référez-vous au tutoriel d'installation de la Raspberry. Sinon, de nombreux tutoriels d'installation sont disponibles sur internet tel que celui-ci : Tuto-LAMP-Rasp

Une fois cela fait, créez une base de données sur phpMyAdmin et nommez la "fablab". Si vous décidez de choisir un autre nom, il faudra par la suite le préciser dans les scripts PHP suivants, aux ligne de connexion à la base de données. Allez dans la section "SQL" puis exécutez le code suivant :

CREATE TABLE `Mesures` (
`id` bigint(20) UNSIGNED NOT NULL, `Numero_Station` int(5) NOT NULL, `Humidite` float DEFAULT NULL, `Temperature` float DEFAULT NULL, `Date` timestamp NOT NULL DEFAULT current_timestamp() );

Maintenant, notre table est créée, et prête à accueillir de futures valeurs.

Préparation Et Programme Arduino Final

requete envoyée.png

Le programme qui va suivre est un mélange des deux tests précédents avec en plus une requête HTML. Vous pourrez trouver le programme à ce lien et le télécharger. Ce programme envoie les données mesurées (à la Raspberry) grâce à un envoie de formulaire par méthode "GET", qui serons par la suite traitées par un script en PHP.

Si certaines lignes ne sont pas expliquées, rendez-vous à la "Step 4" pour plus d'informations, ou regardez les commentaires précédés par des "//", directement sur le programme.

Le programme :

  • L.41 : Fréquence d'envoie de donnée (en ms), ici toutes les 5 secondes.
  • L.52 : Attention, l'URL pointe ici vers un dossier et le script dont nous allons parler à l'étape suivante, modifiez ce chemin si nécessaire.
  • L.52 à l.74 : Création du futur URL à envoyer par la méthode GET, puis envoie de la requête au serveur.
  • L.74 à l.82 : Message de confirmation, renvoyé par le script PHP (entre les lignes "+" sur la photo).

Avant de téléverser, rendez vous à la prochaine étape afin de récupérer le script PHP permettant le stockage des valeurs dans la base de donnée.

Une fois téléversé, vous pourrez suivre tout le processus en direct via le moniteur série (Outils -> Moniteur série) fréquencé ici à 115200 baud. Votre résultat devrait être similaire à celui obtenu sur la photo ci-dessus.


Script PHP

Le script suivant va permettre aux valeurs mesurées, d'être récupérées via la méthode "GET", et d'être stockées dans notre table "Mesures" de notre base de données, ce qui nous permettra par la suite de les exploiter.

Voici le script. Tout est détaillé en commentaires. Nommez le comme vous le souhaitez, mais vérifiez qu'il soit bien en raccord avec l'URL de l'étape précédente.

*L.13 : La base de données à lire est nommée "fablab" pour cet exemple, modifiez le si nécessaire.

*Le message l.26 sera visible ou non, en fonction de la réussite de l'envoie, sur le moniteur série de l'IDE Arduino.

Alimentez votre carte avec le capteur, et voila, nos données sont désormais stockées et horodatées, en direct dans notre base de données.

Tableau De Bord Et Installation

Téléchargez l'archive suivante sur votre Raspberry : LIEN MEGA , et décompresser la en local dans le fichier « /var/www/ ». Le fichier contient les pages « Courbe » et « Historique » concernant les valeurs mesurées en temps réel.

Pour, par la suite, accéder à ces pages, ouvrez le navigateur de votre choix sur votre Raspberry à l’adresse : localhost/TableauDeBord

Ou sur un ordinateur connecté au même réseau : Adresse.de.la.Raspberry/TableauDeBord