{"id":2776,"date":"2022-06-07T10:57:15","date_gmt":"2022-06-07T09:57:15","guid":{"rendered":"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/?p=2776"},"modified":"2022-06-08T17:51:22","modified_gmt":"2022-06-08T16:51:22","slug":"station-meteo-raspberry-pi-avec-module-sense-hat","status":"publish","type":"post","link":"https:\/\/blog.univ-angers.fr\/polytech_2A\/2022\/06\/07\/station-meteo-raspberry-pi-avec-module-sense-hat\/","title":{"rendered":"STATION METEO RASPBERRY PI AVEC MODULE SENSE-HAT"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large is-resized is-style-default\"><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2022\/05\/tempImageBw2Eaq-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2022\/05\/tempImageBw2Eaq-1024x768.jpg\" alt=\"\" class=\"wp-image-2782\" width=\"614\" height=\"460\" srcset=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/05\/tempImageBw2Eaq-1024x768.jpg 1024w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/05\/tempImageBw2Eaq-300x225.jpg 300w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/05\/tempImageBw2Eaq-768x576.jpg 768w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/05\/tempImageBw2Eaq-1536x1152.jpg 1536w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/05\/tempImageBw2Eaq-2048x1536.jpg 2048w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/05\/tempImageBw2Eaq-400x300.jpg 400w\" sizes=\"auto, (max-width: 614px) 100vw, 614px\" \/><\/a><figcaption>Carte <em>Raspberry Pi 4 <\/em>avec <em>Sense-Hat<\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Bonjour \u00e0 toutes et \u00e0 tous,<br><br>Nous sommes trois \u00e9tudiants en deuxi\u00e8me ann\u00e9e de classe pr\u00e9paratoire int\u00e9gr\u00e9e \u00e0 Polytech Angers. Notre \u00e9quipe est compos\u00e9e de : Dorian BRIODEAU, Hugo CRIBIER et Adrien PAULIN. \u00c9tant tous les trois int\u00e9ress\u00e9s par les domaines de l&#8217;informatique et de l&#8217;\u00e9lectronique, c&#8217;est assez naturellement que nous avons choisi ce projet de station m\u00e9t\u00e9o <em>Raspberry Pi <\/em>avec le module <em>Sense-Hat<\/em>.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Pr\u00e9sentation<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019objectif de notre projet est de r\u00e9aliser une station m\u00e9t\u00e9o qui mesure la temp\u00e9rature, la pression et l&#8217;humidit\u00e9 d&#8217;une pi\u00e8ce. Un usage possible de ces donn\u00e9es serait le suivi de l\u2019\u00e9nergie consomm\u00e9e d\u2019un b\u00e2timent. Ces donn\u00e9es doivent \u00eatre consultables sur internet. Le capteur utilis\u00e9 est le <em>Sense-Hat<\/em>, branch\u00e9 sur un <em>Raspberry Pi 4<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ainsi, les objectifs et contraintes du projet sont :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Le capteur doit mesurer la temp\u00e9rature, la pression atmosph\u00e9rique et l\u2019humidit\u00e9 de l\u2019air.<\/li><li>Les donn\u00e9es doivent \u00eatre sauvegard\u00e9es au format &#8220;.csv&#8221;.<\/li><li>Les donn\u00e9es doivent \u00eatre consultables dans une base de donn\u00e9es.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Il existe de nombreuses fa\u00e7ons de r\u00e9cup\u00e9rer les donn\u00e9es du capteur et de les rendre disponible sur internet. \u00c0 travers ce rapport, nous allons d\u00e9tailler la m\u00e9thode que nous avons utilis\u00e9e pour y parvenir. Les donn\u00e9es du projet ont \u00e9t\u00e9 r\u00e9colt\u00e9es \u00e0 Polytech Angers (Hall de technologie).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le Raspberry Pi 4 est un nano-ordinateur. Comme son nom l\u2019indique, c\u2019est un tr\u00e8s petit ordinateur, capable de tenir dans une main, ainsi pour interagir avec le Raspberry, nous utilisons un \u00e9cran, un clavier et une souris. Sur ce nano-ordinateur est fix\u00e9 le module <em>Sense-Hat<\/em>. Il s&#8217;agit d&#8217;une carte \u00e9lectronique qui poss\u00e8de plusieurs fonctionnalit\u00e9s. La premi\u00e8re est de mesurer diverses variables comme la temp\u00e9rature, la pression et l&#8217;humidit\u00e9. La seconde est de pouvoir utiliser une matrice <em>LED <\/em>pour afficher un message par exemple. Pour interagir avec le <em>Sense-Hat<\/em>, nous utilisons le langage de programmation <em>Python<\/em>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2022\/06\/Le-raspberry-scaled.jpeg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2022\/06\/Le-raspberry-1024x768.jpeg\" alt=\"\" class=\"wp-image-3429\" srcset=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/Le-raspberry-1024x768.jpeg 1024w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/Le-raspberry-300x225.jpeg 300w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/Le-raspberry-768x576.jpeg 768w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/Le-raspberry-1536x1152.jpeg 1536w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/Le-raspberry-2048x1536.jpeg 2048w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/Le-raspberry-400x300.jpeg 400w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption><em>Raspberry Pi 4 <\/em>et son module <em>Sense-Hat<\/em><\/figcaption><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">\u00c9volution du Projet<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1. R\u00e9cup\u00e9ration des donn\u00e9es<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pour commencer, nous avons cr\u00e9\u00e9 un programme python qui, chaque heure, collecte et \u00e9crit les donn\u00e9es m\u00e9t\u00e9orologiques souhait\u00e9es dans un fichier <em>CSV<\/em>.&nbsp;<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2022\/06\/Fichier-CSV-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2022\/06\/Fichier-CSV-1.png\" alt=\"\" class=\"wp-image-3431\" width=\"261\" height=\"470\" \/><\/a><figcaption>Aper\u00e7u <em>CSV<\/em><\/figcaption><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">2. Adafruit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ensuite, nous avons recherch\u00e9 comment rendre les mesures disponibles sur internet. Nous avons trouv\u00e9 une plateforme internet : <em>Adafruit<\/em>. C\u2019est un <em>broker MQTT <\/em>: un relais qui re\u00e7oit des donn\u00e9es et les transmet \u00e0 la demande d&#8217;utilisateurs.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2022\/06\/MQTT.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2022\/06\/MQTT-1024x576.png\" alt=\"\" class=\"wp-image-3103\" srcset=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/MQTT-1024x576.png 1024w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/MQTT-300x169.png 300w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/MQTT-768x432.png 768w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/MQTT-500x281.png 500w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/MQTT.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Sch\u00e9ma explicatif du r\u00f4le d\u2019un <em>broker MQTT<\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Pour uploader les nouvelles donn\u00e9es collect\u00e9es chaque heure sur <em>Adafruit<\/em>, nous avons trouv\u00e9 <em>MQTT (Message Queuing Telemetry Transport)<\/em>. Il s&#8217;agit d&#8217;un protocole en langage <em>Python <\/em>que l&#8217;on peut utiliser pour transf\u00e9rer les mesures du <em>Raspberry <\/em>vers <em>Adafruit<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;avantage d\u2019<em>Adafruit <\/em>est de proposer une interface de pr\u00e9sentation des donn\u00e9es (<em>dashboard<\/em>) visuelle avec des graphiques, des jauges, \u2026<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2022\/06\/Adafruit.png\"><img loading=\"lazy\" decoding=\"async\" width=\"698\" height=\"899\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2022\/06\/Adafruit.png\" alt=\"\" class=\"wp-image-3436\" srcset=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/Adafruit.png 698w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/Adafruit-233x300.png 233w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/a><figcaption><em>Dashboard Adafruit<\/em><\/figcaption><\/figure>\n\n\n\n<a href=\"https:\/\/io.adafruit.com\/polymeteo\/dashboards\/meteo\">Acc\u00e9der \u00e0 Adafruit<\/a>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019inconv\u00e9nient d\u2019<em>Adafruit <\/em>est que les donn\u00e9es ne sont stock\u00e9es que pendant 60 jours, ce qui pose probl\u00e8me pour les analyser sur le long terme.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. 000WebHost<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Afin de pallier ce probl\u00e8me, nous avons d\u00e9cid\u00e9 de d\u00e9velopper un site internet (en plus d\u2019<em>Adafruit<\/em>), sur lequel il est possible de consulter toutes les donn\u00e9es. Pour cela, nous avons utilis\u00e9 <em>000WebHost <\/em>qui est un h\u00e9bergeur gratuit sur lequel nous avons mis en ligne notre site cod\u00e9 en <em>HTML\/CSS <\/em>pour g\u00e9rer son apparence et en <em>PHP <\/em>pour g\u00e9rer la base de donn\u00e9es que nous avons cr\u00e9\u00e9e.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour t\u00e9l\u00e9charger le fichier <em>CSV <\/em>avec toutes les mesures collect\u00e9es par le Raspberry, nous l\u2019importons chaque heure (pour avoir sa version actualis\u00e9e) sur <em>000WebHost <\/em>et un lien dans notre code <em>HTML <\/em>permet de le t\u00e9l\u00e9charger directement sur le site web. Pour mettre \u00e0 jour la base de donn\u00e9es, nous importons un autre fichier <em>CSV <\/em>avec les m\u00eames valeurs mais respectant certaines conditions de format pour \u00eatre utilisable (\u201c,\u201d pour s\u00e9parer les donn\u00e9es ; pas de titre de colonne). Nous utilisons cette base de donn\u00e9es notamment pour afficher sur notre site <em>web <\/em>la derni\u00e8re mesure import\u00e9e.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour transf\u00e9rer les fichiers sur le site web, nous avons utilis\u00e9 un programme python sur le Raspberry qui utilise <em>FTP (File Transfert Protocol)<\/em>. C\u2019est un protocole permettant de transf\u00e9rer des fichiers entre plusieurs appareils \u00e0 travers le r\u00e9seau internet. Ainsi, nous avons pu transf\u00e9rer les fichiers <em>CSV <\/em>de la carte Raspberry vers les serveurs <em>000WebHost<\/em>. Cependant, il arrive que le transfert avec <em>FTP <\/em>ne fonctionne pas \u00e0 cause d&#8217;un trafic trop \u00e9lev\u00e9, ainsi les valeurs ne sont pas toujours actualis\u00e9es sur le site.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2022\/06\/Site.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"471\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2022\/06\/Site-1024x471.png\" alt=\"\" class=\"wp-image-3434\" srcset=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/Site-1024x471.png 1024w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/Site-300x138.png 300w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/Site-768x353.png 768w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/Site-1536x706.png 1536w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/Site-500x230.png 500w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/Site.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Page Accueil Site <em>Web<\/em><\/figcaption><\/figure>\n\n\n\n<a href=\"https:\/\/poly-meteo.000webhostapp.com\">Acc\u00e9der au site Web<\/a>\n\n\n\n<h1 class=\"wp-block-heading\">Conclusion<\/h1>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2022\/06\/Schema-general-projet.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2022\/06\/Schema-general-projet-1024x576.png\" alt=\"\" class=\"wp-image-3055\" srcset=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/Schema-general-projet-1024x576.png 1024w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/Schema-general-projet-300x169.png 300w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/Schema-general-projet-768x432.png 768w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/Schema-general-projet-500x281.png 500w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2022\/06\/Schema-general-projet.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Sch\u00e9ma r\u00e9capitulatif de notre projet<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">En conclusion, la carte <em>Raspberry <\/em>ex\u00e9cute un programme <em>Python<\/em>, qui permet de prendre les mesures de temp\u00e9ratures, de pression et d&#8217;humidit\u00e9 et de les inscrire dans des fichiers <em>CSV<\/em>. Le programme envoie ensuite les mesures sur <em>Adafruit <\/em>via <em>MQTT <\/em>o\u00f9 elles sont visibles 60 jours, et les fichiers sur <em>000Webhost <\/em>via <em>FTP<\/em>. Enfin, ces op\u00e9rations sont automatis\u00e9es et r\u00e9p\u00e9t\u00e9es chaque heure gr\u00e2ce \u00e0 l\u2019insertion dans le programme <em>Python <\/em>d&#8217;une boucle infinie et d&#8217;une pause de 3600 secondes.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e9anmoins, les mesures de temp\u00e9rature collect\u00e9es par le <em>Sense-Hat <\/em>ne sont pas correctes. En effet, comme ce dernier se trouve tr\u00e8s proche du <em>Raspberry<\/em>, la mesure collect\u00e9e est la temp\u00e9rature du nano-ordinateur qui \u00e0 tendance \u00e0 chauffer lorsqu&#8217;il est en fonctionnement. Ainsi, les temp\u00e9ratures mesur\u00e9es sont surestim\u00e9es et n\u00e9cessitent une correction pour exploitation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tuteur : Hassan Bouljroufi<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bonjour \u00e0 toutes et \u00e0 tous, Nous sommes trois \u00e9tudiants en deuxi\u00e8me ann\u00e9e de classe pr\u00e9paratoire int\u00e9gr\u00e9e \u00e0 Polytech Angers. Notre \u00e9quipe est compos\u00e9e de : Dorian BRIODEAU, Hugo CRIBIER et Adrien PAULIN. \u00c9tant tous les trois int\u00e9ress\u00e9s par les &hellip; <a href=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/2022\/06\/07\/station-meteo-raspberry-pi-avec-module-sense-hat\/\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":85714,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[522],"tags":[],"class_list":["post-2776","post","type-post","status-publish","format-standard","hentry","category-522"],"_links":{"self":[{"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/posts\/2776","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/users\/85714"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/comments?post=2776"}],"version-history":[{"count":13,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/posts\/2776\/revisions"}],"predecessor-version":[{"id":3634,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/posts\/2776\/revisions\/3634"}],"wp:attachment":[{"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/media?parent=2776"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/categories?post=2776"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/tags?post=2776"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}