⛅ PROJET : LE BALLON MÉTÉO ⛅

ballon_panoramique

Notre projet

Objectifs du projet

Notre projet se base sur les problématiques suivantes :

- Quel est l’apport de l'internet des objets dans le cadre de la création d'un système d'information domotique ?
- Comment la programmation peut-elle contribuer à résoudre des problèmes de société ?

Choix des problématiques

Nous souhaitons montrer qu'il est aujourd'hui simple grâce à l'IoT de mettre en place un système d'information communicant, que ce soit pour un usage personnel ou communautaire.

Réalisation détaillée

Dans le cadre de ce projet de 72H, nous avons réalisé en groupe un ballon météorologique connecté pouvant transmettre en temps réel les données météo recueillies par des capteurs. Il a fallu dans un premier temps réfléchir aux éléments que nous utiliserons : les capteurs, contrôleurs, etc. Nous avons choisi pour la mesure des données un capteur 4 en 1 pouvant mesurer la température, l'humidité, la pression et le gaz. Pour le stockage, un simple module carte SD. Très vite, la question du protocole de communication s'est avérée cruciale. En effet, comment transmettre en temps réel des données météorologiques depuis un ballon volant à plusieurs dizaines de mètres d'altitude sans aucun câble ? Nous avons d'abord pensé à utiliser un module 4G, ce qui nous aurait permis de transmettre les données à une altitude élevée sans difficultés. Cependant, son utilisation nécessitait une carte SIM et de toute manière nous n'avions pas ce module 4G à disposition. Nous nous sommes posé la question de la portée du signal : le Wi-Fi serait-il assez puissant pour atteindre le ballon ? Nous avons conclu que oui car le ballon météo n'a pas besoin de voler à haute altitude pour recueillir les données, une altitude comprise entre 20 et 50 mètres est amplement suffisante. Nous avons donc opté pour l'utilisation du Wi-Fi avec un ESP32, qui n'est ni plus ni moins qu'un microcontrôleur mais avec en plus la capacité de pouvoir communiquer via Wi-Fi. Nous étions dès lors prêts à commencer le code Arduino en langage C++. Séance après séance, nous avons programmé nos capteurs, structuré le code et fais en sorte que chaque capteur puisse fonctionner sur l'ESP32 aussi bien que sur une carte Arduino standard. Nous avons dû pour cela faire de légères modifications, notamment adapter la tension pour les capteurs nécessitant une alimentation en 5V. Il était temps de penser à l'interface utilisateur. Dans un premier temps, notre idée était simplement de concevoir une station au sol constituée d'un récepteur qui afficherait les données sur un écran LCD. Le concept étant relativement simpliste, nous avons souhaité aller plus loin en créant de A à Z un site web en langage HTML et CSS jouant le rôle de récepteur pour afficher les données en temps réel. Ce choix s'est avéré particulièrement judicieux puisque notre microcontrôleur possède une mémoire flash prévue à cet effet : c'est un mini serveur. De cette manière, les données seraient accessibles depuis n'importe quel appareil connecté au réseau local et dans le monde entier si l'administrateur réseau accepte de mettre en place une redirection de port, c'est-à-dire faire en sorte que les requêtes extérieures émises vers le lycée sur un certain canal soient automatiquement redirigées vers le site hébergé sur le microcontrôleur de notre ballon météo. Il était alors temps de commencer la conception du site en HTML et en CSS. N'ayant jamais appris un seul de ces langages, nous sommes partis de zéro en s'aidant uniquement de sites internet et de vidéos YouTube. Nous avons tout d'abord réfléchi au design de notre site, puis au fil des séances nous avons conçu un à un les éléments de la première page, ceux des autres pages, restructuré les éléments lorsqu'une amélioration était possible et fais en sorte que notre site soit "responsive", c'est-à-dire qu'il puisse s'adapter parfaitement sur toutes les tailles d'écran de PC, tout en exploitant au maximum les propriétés de l'HTML et du CSS. À l'heure actuelle, notre site se compose d'une page d'accueil et de 4 sections. Sur la section principale intitulée "valeurs en temps réel", on retrouve un tableau des données recueillies avec les valeurs transmises par le ballon. Étant donné que nous affichons des valeurs en temps réel, il faut bien évidemment que les valeurs s'actualisent à une certaine fréquence. Mais comment actualiser uniquement les valeurs sans avoir à recharger constamment la page ? C'est là que le JavaScript entre en jeu. Le JavaScript est un langage de programmation qui sert à exécuter un script sur une page web. C'est donc exactement ce qu'il nous fallait, c'est le lien entre les langages C++ et HTML. Le script est très simple : il reçoit depuis le code C++ les valeurs sous forme de nombres à virgule flottante, puis redirige ces valeurs vers leurs emplacements attribués sur la page HTML et réitère le processus toutes les secondes. Passé cette étape, la majeure partie du travail était terminée, du moins sur le plan informatique et logiciel. Ne restait plus qu'à fabriquer un petit boitier pour y placer notre système et y ajouter une batterie pour l'alimentation de l'ensemble. Le microcontrôleur se branche en USB, une batterie portable convient donc parfaitement. Nous avons découpé des plaques de polystyrène rigide que nous avons assemblé avec de la colle chaude pour former un boitier attachable au ballon. Le système se compose donc de 4 éléments principaux : le microcontrôleur, le capteur tout-en-un, le module carte SD et la batterie portable. Nous étions prêts pour la phase finale : le lancement du ballon météo.

Conclusion

Comme vous pouvez le constater, ce projet répond parfaitement aux problématiques initiales. Il montre bien comment l'internet des objets peut être intégré dans le quotidien de chacun d'entre nous, afin d'en améliorer la qualité en répondant à un ou plusieurs besoins et comment la programmation peut être utilisée dans le cadre de la réalisation d’un système domotique afin de contribuer à résoudre des problèmes de société.
2021 Abdelhak & Caillaud  |  Retour à la page d'accueil