{"id":1668,"date":"2021-01-28T15:32:49","date_gmt":"2021-01-28T14:32:49","guid":{"rendered":"http:\/\/miniprojets.net\/?p=1668"},"modified":"2022-12-17T17:18:40","modified_gmt":"2022-12-17T16:18:40","slug":"mise-en-place-dun-capteur-de-temperature-de-leau-dune-serre","status":"publish","type":"post","link":"https:\/\/miniprojets.net\/index.php\/2021\/01\/28\/mise-en-place-dun-capteur-de-temperature-de-leau-dune-serre\/","title":{"rendered":"Mise en place d\u2019un capteur de temp\u00e9rature de l\u2019eau d\u2019une serre"},"content":{"rendered":"\n<p>Written by <strong>Lola Dussosoy, Benoit Ribeaud, Sophie Bodart<\/strong><\/p>\n\n\n\n<p>Univ. Grenoble Alpes, Grenoble INP, ENSE3, F-38000 Grenoble, France<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>R\u00c9SUM\u00c9 <\/strong><\/p>\n\n\n\n<p><em>La ma\u00eetrise de l\u2019\u00e9nergie dans les b\u00e2timents est une cl\u00e9 de la r\u00e9ussite de la transition \u00e9nerg\u00e9tique. Pour cela la domotique est tr\u00e8s utile, car elle permet de monitorer les consommations d\u2019un b\u00e2timent puis de le piloter intelligemment \u00e0 distance. Le syst\u00e8me mis en \u0153uvre dans cette \u00e9tude, utilisant un LoPy, le module LoRa, le serveur The Things Network (TTN) et une Raspberry Pi permet de cr\u00e9er un syst\u00e8me de domotique peu cher, puissant et facile \u00e0 prendre en main. Il permet de r\u00e9cup\u00e9rer des donn\u00e9es de temp\u00e9rature d\u2019un capteur gr\u00e2ce \u00e0 la LoPy, de transmettre les donn\u00e9es par wifi \u00e0 un serveur TTN gr\u00e2ce au module LoRa, puis de stocker les donn\u00e9es sur InfluxDB, et enfin de les visualiser et traiter sur Grafana.<\/em><\/p>\n\n\n\n<p><em>MOTS-CL\u00c9S : capteur, <\/em><em>LoPy, LoRa, serveur TTN, base de donn\u00e9es, visualisation<\/em><\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>ABSTRACT<\/strong><\/p>\n\n\n\n<p><em>Energy management in buildings is a key to a successful energy transition. To do this, home automation is very useful, because it allows monitoring the consumption of a building and then controlling it intelligently from a distance. The system implemented in this study, using a LoPy, the LoRa module, the TTN server and a Raspberry Pi, makes it possible to create a home automation system that is affordable, powerful and easy to use. It allows to retrieve temperature data from a sensor thanks to the LoPy, to transmit the data by wifi to a TTN server thanks to the LoRa module, then to store the data on Influx DB, and finally to visualize and process them on Grafana.<\/em><\/p>\n\n\n\n<p><em>KEYWORDS : sensor, LoPy, LoRa, TTN server, database,visualization<\/em><\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>La domotique pour ma\u00eetriser ses consommations \u00e9nerg\u00e9tiques<\/strong><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Importance de la ma\u00eetrise de l&#8217;\u00c9nergie dans les b\u00e2timents<\/strong><\/p>\n\n\n\n<p>Alors que la consommation globale d\u2019\u00e9lectricit\u00e9 ne fait qu\u2019augmenter, la ma\u00eetrise de l\u2019\u00e9nergie dans les b\u00e2timents appara\u00eet comme l\u2019une des mesures les plus efficaces pour lutter contre le changement climatique puisque la moiti\u00e9 de l\u2019\u00e9nergie mondiale est consomm\u00e9e dans les b\u00e2timents, et que le secteur des b\u00e2timent est le plus \u00e9metteurs de CO2 tout en ayant les r\u00e9ductions d\u2019\u00e9missions les moins ch\u00e8res \u00e0 mettre en \u0153uvre (voir figure 1).<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"911\" height=\"659\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-53.png\" alt=\"\" class=\"wp-image-1669\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-53.png 911w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-53-300x217.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-53-768x556.png 768w\" sizes=\"auto, (max-width: 911px) 100vw, 911px\" \/><\/figure><\/div>\n\n\n\n<p class=\"has-text-align-center\"><em><u>Figure 1&nbsp;: R\u00e9partition des \u00e9missions de CO2 par secteur<\/u><\/em><\/p>\n\n\n\n<p>Une des solutions les moins ch\u00e8res et les moins invasives pour r\u00e9duire la consommation \u00e9nerg\u00e9tique des b\u00e2timents est d\u2019utiliser la domotique et de rendre son b\u00e2timent intelligent.<\/p>\n\n\n\n<p>La domotique consiste \u00e0 utiliser l\u2019informatique et les t\u00e9l\u00e9communications pour optimiser les consommations de la maison et am\u00e9liorer le confort des usagers.<\/p>\n\n\n\n<p>La premi\u00e8re \u00e9tape est d\u2019analyser la consommation du b\u00e2timent en disposant des capteurs \u00e0 diff\u00e9rents endroits de la maison. On pourra par exemple installer des capteurs de pr\u00e9sence, de luminosit\u00e9, de consommation \u00e9lectrique au niveau des prises, de temp\u00e9rature et humidit\u00e9, de CO2. Le processus de cr\u00e9ation des capteurs, r\u00e9cup\u00e9ration des donn\u00e9es et analyse sera d\u00e9taill\u00e9 plus bas.<\/p>\n\n\n\n<p>L\u2019analyse des donn\u00e9es des capteurs permettra ensuite d\u2019identifier les postes de r\u00e9ductions des consommations, puis programmer des sc\u00e9narios de commande du chauffage, des volets, de l\u2019\u00e9clairage, etc. afin d\u2019optimiser la consommation \u00e9nerg\u00e9tique de la maison en fonction de la pr\u00e9sence ou non d\u2019usagers et des conditions m\u00e9t\u00e9orologiques.<\/p>\n\n\n\n<p>Automatiser la maison, pr\u00e9dire la consommation, comprendre sa consommation, identifier les postes de r\u00e9ductions, chauffage intelligent en fonction de l\u2019occupation du b\u00e2timent, idem \u00e9clairage, contr\u00f4le des appareils m\u00e9nagers pour consommer aux creux de consommation afin de soulager le r\u00e9seau. Fermer les volets pour garder la chaleur \u00e0 int\u00e9rieure,<\/p>\n\n\n\n<p>Dans notre cas d\u2019\u00e9tude, nous nous \u00e9loignons un peu de la probl\u00e9matique de l\u2019\u00e9nergie dans les b\u00e2timents pour chercher \u00e0 installer un capteur pour r\u00e9cup\u00e9rer la temp\u00e9rature de l\u2019eau d\u2019un bassin, aquarium ou serre d\u2019aquaponie. Mais une fois le processus acquis, la m\u00e9thode est la m\u00eame pour installer des capteurs utiles dans la maison.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Un syst\u00e8me domotique tr\u00e8s peu co\u00fbteux gr\u00e2ce au LoPy et LoRa<\/strong><\/p>\n\n\n\n<p>Afin d\u2019\u00e9tendre l\u2019utilisation des capteurs \u00e0 des utilisations domestiques, il est important de d\u00e9velopper des capteurs \u00e0 bas co\u00fbts, de petites tailles et grandes puissances, avec une batterie longue dur\u00e9e. C\u2019est ce qu\u2019on peut faire avec une LoPy. Il faut ensuite rendre la r\u00e9cup\u00e9ration, le stockage et le traitement des donn\u00e9es accessible \u00e0 tous gr\u00e2ce \u00e0 une prise en main tr\u00e8s facile et des logiciels open sources.<\/p>\n\n\n\n<p>Gr\u00e2ce \u00e0 une LoPy, on peut r\u00e9aliser chez soi facilement et \u00e0 bas co\u00fbt un syst\u00e8me domotique qui pourra piloter une maison, adapt\u00e9 aux besoins pr\u00e9cis de chacun, puis agr\u00e9ger les donn\u00e9es des capteurs.<\/p>\n\n\n\n<p>La technologie LoRa nous permet ensuite de t\u00e9l\u00e9communiquer les donn\u00e9es.<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Pr\u00e9sentation de l\u2019\u00e9tude<\/strong><\/p>\n\n\n\n<p>L\u2019objectif de notre projet est d\u2019installer un capteur autonome de temp\u00e9rature d\u2019eau dans un bassin, de r\u00e9cup\u00e9rer les donn\u00e9es sur un serveur, puis de pouvoir les stocker et les visualiser.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Le Capteur<\/strong><\/p>\n\n\n\n<p>On utilise un capteur de temp\u00e9rature submersible DS18B20. Ce capteur poss\u00e8de une plage de temp\u00e9rature allant de -55\u00b0C&nbsp; \u00e0 125\u00b0C avec une tol\u00e9rance comprise entre -0.5\u00b0C\/+0.5\u00b0 si celle-ci se situe entre-10\u00b0C et 80\u00b0C. Cela est largement suffisant pour acqu\u00e9rir la temp\u00e9rature de l\u2019eau d\u2019un bassin ext\u00e9rieur.<\/p>\n\n\n\n<p>L\u2019acquisition des donn\u00e9es se fait gr\u00e2ce \u00e0 la biblioth\u00e8que OneWire. Nous avons trouv\u00e9 le code pour r\u00e9cup\u00e9rer les donn\u00e9es sur internet (Voir bibliographie source 2).<\/p>\n\n\n\n<p>C\u2019est un capteur num\u00e9rique ce qui permet de le brancher sur n\u2019importe quelle borne de notre microcontr\u00f4leur, et il est moins sujet aux parasites.<\/p>\n\n\n\n<p>C\u2019est un capteur OneWire ce qui signifie qu\u2019on peut brancher plusieurs capteurs sur la m\u00eame broche du microcontr\u00f4leur. Cet avantage ne sera pas utile dans le cadre de notre projet, mais il peut \u00eatre tr\u00e8s int\u00e9ressant dans un projet de domotique o\u00f9 l\u2019on souhaite installer de nombreux capteurs.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"929\" height=\"512\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-54.png\" alt=\"\" class=\"wp-image-1670\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-54.png 929w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-54-300x165.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-54-768x423.png 768w\" sizes=\"auto, (max-width: 929px) 100vw, 929px\" \/><\/figure><\/div>\n\n\n\n<p class=\"has-text-align-center\"><em>Figure 2&nbsp;: le capteur DS18X20 install\u00e9 dans le bassin<\/em><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Le micro contr\u00f4leur<\/strong><\/p>\n\n\n\n<p>Nous utilisons un Pycom LoPy4 comme nano ordinateur qui va lire les donn\u00e9es du capteur de temp\u00e9rature. Comme \u00e9nonc\u00e9 pr\u00e9c\u00e9demment, il a l\u2019avantage d\u2019\u00eatre peu cher, de petite taille et suffisamment puissant pour le travail qu\u2019on lui demande.<\/p>\n\n\n\n<p>Nous ajoutons une plaque d\u2019extension Pycom makr pour la programmation.<\/p>\n\n\n\n<p>L\u2019avantage de ce microcontr\u00f4leur est qu\u2019il consomme tr\u00e8s peu d\u2019\u00e9nergie (3 mA, 3,3 \u00e0 5,5 Vcc) .<\/p>\n\n\n\n<p>La LoPy est dot\u00e9e d\u2019un module LoRa qui permet de t\u00e9l\u00e9communiquer les donn\u00e9es \u00e0 longue port\u00e9e et bas d\u00e9bit pour des objets \u00e0 faible consommation \u00e9lectrique. Ce module permet de transmettre les donn\u00e9es au serveur par l\u2019interm\u00e9diaire d\u2019une gateway.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"849\" height=\"534\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-55.png\" alt=\"\" class=\"wp-image-1671\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-55.png 849w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-55-300x189.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-55-768x483.png 768w\" sizes=\"auto, (max-width: 849px) 100vw, 849px\" \/><\/figure><\/div>\n\n\n\n<p class=\"has-text-align-center\"><em>Figure 3&nbsp;: Photo du syst\u00e8me complet&nbsp;: le capteur, la <\/em><em>LoPy et son antenne pour envoyer les donn\u00e9es sur le serveur TTN<\/em><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Le serveur The Things Network (TTN)<\/strong><\/p>\n\n\n\n<p>The Things Network est le serveur que nous avons choisi d\u2019utiliser lors de notre projet, c\u2019est un r\u00e9seau communautaire permettant \u00e0 des objets de transmettre des petits volumes d\u2019informations en consommant tr\u00e8s peu d\u2019\u00e9nergie. Il utilise la technologie LoRa en ad\u00e9quation avec les standards LoRaWAN. L\u2019un des avantages de cette technologie est le d\u00e9ploiement de passerelles ou gateway[1].<\/p>\n\n\n\n<p>En effet, chaque passerelle est utilisable par tous les utilisateurs, ainsi chaque objet peut continuer \u00e0 \u00e9mettre des donn\u00e9es vers nos applications. Inversement les passerelles que nous installons chez nous sont susceptibles de recevoir des donn\u00e9es d\u2019objets qui ne nous appartiennent pas. The Things Network d\u00e9veloppe une passerelle \u00e0 petit prix pour aider au d\u00e9ploiement communautaire du r\u00e9seau mais il est aussi possible d\u2019utiliser des passerelles faites soi-m\u00eame ou bien d\u2019autres fabricants.<\/p>\n\n\n\n<p>Les donn\u00e9es envoy\u00e9es par la LoPy sont transmises au serveur TTN en passant par la gateway.<\/p>\n\n\n\n<p>La gateway\u00a0est une porte d\u2019entr\u00e9e accessible \u00e0 tous sur son rayon d\u2019action (quelques km), car le syst\u00e8me LoRa est open source. Elle est reli\u00e9e \u00e0 un c\u00e2ble \u00e9thernet qui envoie les donn\u00e9es sur le serveur TTN.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"415\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-56-1024x415.png\" alt=\"\" class=\"wp-image-1672\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-56-1024x415.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-56-300x121.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-56-768x311.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-56.png 1030w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p class=\"has-text-align-center\"><em>Figure 4 : Photo d\u2019une passerelle d\u00e9velopp\u00e9e par The Things Network<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>[1] Passerelle : porte d\u2019entr\u00e9e accessible \u00e0 tous sur son rayon d\u2019action. Technologie Open Source.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Raspberry Pi<\/strong><\/p>\n\n\n\n<p>Tout d\u2019abord il convient d\u2019expliquer ce qu\u2019est un Raspberry Pi, c\u2019est un nano ordinateur de tr\u00e8s petite taille (en moyenne de la taille d\u2019une carte de cr\u00e9dit) avec les connectiques n\u00e9cessaires pour le brancher \u00e0 un \u00e9cran et pouvoir l\u2019utiliser comme un ordinateur standard. Il est n\u00e9anmoins beaucoup moins cher qu\u2019un ordinateur standard et beaucoup plus compact ce qui en fait son int\u00e9r\u00eat. Il peut \u00eatre utilis\u00e9 pour diff\u00e9rentes applications et notamment la cr\u00e9ation de serveur Web chez soi. Du fait de sa taille il ne faut pas s\u2019attendre \u00e0 des performances exceptionnelles n\u00e9anmoins il est suffisant pour notre projet de mise en place d\u2019un capteur d\u2019eau dans un bassin.<\/p>\n\n\n\n<p>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; En effet nous allons nous servir de la Raspberry Pi pour r\u00e9cup\u00e9rer les donn\u00e9es pr\u00e9sentes sur le serveur TTN et les renvoyer vers notre base de donn\u00e9es InfluxDB et notre plateforme pour les visualis\u00e9es Grafana.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>InfluxDB<\/strong><\/p>\n\n\n\n<p>InfluxDB est un time series database (TDSB). Elle est utilis\u00e9e pour stocker des larges volumes de donn\u00e9es chronologiques ou des s\u00e9ries temporelles venant de sources diff\u00e9rentes. Elle a \u00e9t\u00e9 cr\u00e9\u00e9e dans le but de collecter le volume croissant de donn\u00e9es issues de l\u2019internet des objets notamment dans le domaine de la domotique.<\/p>\n\n\n\n<p>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; Dans notre projet, elle servira \u00e0 stocker les donn\u00e9es collect\u00e9es par notre capteur. Nous allons aussi connecter cette base de donn\u00e9es avec l\u2019outil de visualisation qu\u2019est le logiciel Grafana pour avoir un monitoring et une visualisation de nos donn\u00e9es dans le temps.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Grafana<\/strong><\/p>\n\n\n\n<p>Grafana est une plateforme open source servant \u00e0 la surveillance, l\u2019analyse et \u00e0 la visualisation de diff\u00e9rentes donn\u00e9es. Elle permet de g\u00e9n\u00e9rer des graphiques et des tableaux de bord \u00e0 partir de bases de donn\u00e9es de s\u00e9ries temporelles (TDSB) telles que Graphite, InfluxDB ou OpenTSDB.<\/p>\n\n\n\n<p>Elle va nous permettre d\u2019afficher sous forme de graphique les donn\u00e9es renvoy\u00e9es par notre capteur.<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Architecture des diff\u00e9rents mat\u00e9riels pour notre projet<\/strong><\/p>\n\n\n\n<p>Voici ci-dessous l\u2019architectures des diff\u00e9rents mat\u00e9riels composant notre syst\u00e8me :<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"461\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-57-1024x461.png\" alt=\"\" class=\"wp-image-1673\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-57-1024x461.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-57-300x135.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-57-768x346.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-57.png 1059w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p class=\"has-text-align-center\"><em>Figure 5 : Architecture des diff\u00e9rents mat\u00e9riels composant notre projet<\/em><\/p>\n\n\n\n<p>Concernant la partie LoPy, notre LoPy va r\u00e9cup\u00e9rer les donn\u00e9es du capteur dans notre bassin et les transmettre \u00e0 notre serveur TTN.<\/p>\n\n\n\n<p>Concernant la partie TTN, les donn\u00e9es transmises par notre LoPy vont \u00eatre r\u00e9cup\u00e9r\u00e9es par le serveur \u00e0 l\u2019aide de cl\u00e9s API dont nous d\u00e9taillerons le fonctionnement dans les parties suivantes.&nbsp;<\/p>\n\n\n\n<p>Concernant la partie Raspberry Pi, notre nano ordinateur va venir r\u00e9cup\u00e9rer les donn\u00e9es pr\u00e9sentes sur TTN et les envoyer sur InfluxDB pour pouvoir les stocker.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Acquisition des donn\u00e9es gr\u00e2ce \u00e0 la LoPy<\/strong><\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; La partie concernant l\u2019acquisition des donn\u00e9es gr\u00e2ce \u00e0 la LoPy a \u00e9t\u00e9 tr\u00e8s chronophage pour nous. En effet, il nous a fallu chercher sur internet comment notre capteur \u00e9mettait la donn\u00e9e et sous quelle forme pour ensuite pouvoir \u00e9crire un code qui allait pouvoir permettre \u00e0 notre LoPy de r\u00e9cup\u00e9rer l\u2019information et ensuite la transmettre. Tout d\u2019abord, nous avons essay\u00e9 de nous inspirer des programmes que nous avions utilis\u00e9s auparavant pour la mise en place du capteur DHT22 mais les donn\u00e9es n&#8217;\u00e9taient pas cod\u00e9es sous le m\u00eame format.<\/p>\n\n\n\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Finalement apr\u00e8s avoir pass\u00e9 en revue quelques forums, nous avons trouv\u00e9 le code de Dani Campora publi\u00e9 sur github en libre acc\u00e8s avec la librairie permettant de faire de r\u00e9cup\u00e9rer les donn\u00e9es de notre capteur (voir bibliographie source 2). Une fois impl\u00e9ment\u00e9 dans notre \u00e9diteur de texte Atom, nous avons pu avoir acc\u00e8s aux donn\u00e9es r\u00e9cup\u00e9r\u00e9es par notre capteur et nous avons pu les transmettre \u00e0 notre plateforme TTN.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Transfert des donn\u00e9es sur le serveur TTN<\/strong><\/p>\n\n\n\n<p>Une fois les donn\u00e9es r\u00e9cup\u00e9r\u00e9es avec la LoPy, nous voulons envoyer celle-ci vers le serveur TTN afin de les visualiser en ligne et les stocker sur une base de donn\u00e9es.<\/p>\n\n\n\n<p>La premi\u00e8re \u00e9tape est de connecter notre LoPy au serveur TTN apr\u00e8s avoir cr\u00e9\u00e9 une nouvelle application sur le serveur. Pour cela, il suffit de cr\u00e9er un nouvel appareil li\u00e9 \u00e0 l\u2019application et de g\u00e9n\u00e9rer automatiquement trois identifiant qui permettent de connecter la LoPy \u00e0 notre serveur :<\/p>\n\n\n\n<p>&#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Device EUI (Extended Unique Identifier) : globally unique device ID by the network&nbsp;&nbsp;&nbsp; server<\/p>\n\n\n\n<p>&#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application EUI : globally unique application ID<\/p>\n\n\n\n<p>&#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; App Key : Is used to calculate the cryptographic signature for join-request message<\/p>\n\n\n\n<p>Nous rentrons ensuite ces informations sur Atom afin de relier notre LoPy \u00e0 notre serveur :<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"588\" height=\"97\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-58.png\" alt=\"\" class=\"wp-image-1674\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-58.png 588w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-58-300x49.png 300w\" sizes=\"auto, (max-width: 588px) 100vw, 588px\" \/><\/figure><\/div>\n\n\n\n<p>Nous r\u00e9cup\u00e9rons ensuite les donn\u00e9es du capteur DS18B20 pour les envoyer sur le serveur TTN. Nous appliquons un \u00ab time.sleep \u00bb de 900 secondes, ce qui signifie que notre LoPy r\u00e9cup\u00e8rera les donn\u00e9es du capteur toutes les 900 secondes, c\u2019est-\u00e0-dire toutes les 15 min. En effet, il n\u2019est pas pertinent d\u2019avoir un temps plus court entre deux acquisitions car la temp\u00e9rature du bassin ne varie pas rapidement.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"363\" height=\"225\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-59.png\" alt=\"\" class=\"wp-image-1675\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-59.png 363w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-59-300x186.png 300w\" sizes=\"auto, (max-width: 363px) 100vw, 363px\" \/><\/figure><\/div>\n\n\n\n<p>Il est important de noter que les donn\u00e9es ne sont pas envoy\u00e9es vers le serveur TTN sous la forme de flottant, mais elles sont en r\u00e9alit\u00e9 transform\u00e9es en chaine de caract\u00e8re Unicode puis transform\u00e9es une seconde fois en une repr\u00e9sentation bytes de la cha\u00eene Unicode, cod\u00e9e dans l\u2019encodage demand\u00e9 gr\u00e2ce \u00e0 la fonction \u00ab .encode \u00bb. Une fois transmis \u00e0 notre serveur, nous allons donc devoir d\u00e9coder ces donn\u00e9es afin de les lire dans un format compr\u00e9hensible.<\/p>\n\n\n\n<p>Pour cela, la fonction inverse de la fonction decode est la fonction encode. Nous rentrons donc le code suivant dans la partie \u00ab Payload Format \u00bb de notre application :<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"121\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-60.png\" alt=\"\" class=\"wp-image-1676\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-60.png 605w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-60-300x60.png 300w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/figure><\/div>\n\n\n\n<p>Nous visualisation ainsi la temp\u00e9rature en direct sur le serveur :<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"112\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-61.png\" alt=\"\" class=\"wp-image-1677\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-61.png 605w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-61-300x56.png 300w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/figure><\/div>\n\n\n\n<p>Afin de conserver ces donn\u00e9es qui disparaissent une fois le serveur ferm\u00e9, nous allons les stocker sur une base de donn\u00e9es. Pour cela, nous allons dans la partie \u00ab Integrations \u00bb de notre application TTN et cr\u00e9ons cette base de donn\u00e9es. Cette base de donn\u00e9es ne permet cependant de stocker les donn\u00e9es que pendant 7 jours. Nous allons maintenant voir comment les stocker sur un serveur permanent gr\u00e2ce \u00e0 l\u2019outil InfluxDB et les visualiser sur Grafana.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Traitement et visualisation des donn\u00e9es sur Grafana<\/strong><\/p>\n\n\n\n<p>InfluxDB est un outil de gestion de base de donn\u00e9es qui va nous permettre de stocker les donn\u00e9es de mani\u00e8re permanente. Pour cette partie, nous aurons besoin d\u2019un Raspberry Pi. Nous installerons InfluxDB sur le Raspberry Pi en s\u2019inspirant des travaux de Simon Hearne (voir bibliographie source 3).<\/p>\n\n\n\n<p>Une fois InfluxDB install\u00e9, nous allons visualiser les donn\u00e9es sur Grafana. Grafana est un logiciel libre qui permet de visualiser des donn\u00e9es depuis des bases temporelles comme InfluxDB. Une fois Grafana install\u00e9 sur le Raspberry Pi, nous pouvons nous connecter sur le serveur et ajouter tout type de graphique afin de visualiser nos donn\u00e9es. Vous trouverez ci-dessous un exemple de tableau de bord traitant des donn\u00e9es issus de plusieurs capteurs diff\u00e9rents :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"355\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-62-1024x355.png\" alt=\"\" class=\"wp-image-1678\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-62-1024x355.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-62-300x104.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-62-768x266.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-62.png 1452w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-large-font-size\"><strong>R\u00e9sultats de l\u2019\u00e9tude<\/strong><\/p>\n\n\n\n<p>Nous n\u2019avons pas pu r\u00e9cup\u00e9rer les donn\u00e9es de temp\u00e9ratures du bassin sur Grafana.<\/p>\n\n\n\n<p>Cependant on peut voir sur les graphiques ci-dessous les donn\u00e9es de temp\u00e9rature et d\u2019humidit\u00e9 telles qu\u2019elles s\u2019affichent sur Grafana. L\u2019analyse de ces donn\u00e9es constitue la premi\u00e8re \u00e9tape pour apprendre \u00e0 ma\u00eetriser ses consommations.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"895\" height=\"342\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-63.png\" alt=\"\" class=\"wp-image-1679\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-63.png 895w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-63-300x115.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-63-768x293.png 768w\" sizes=\"auto, (max-width: 895px) 100vw, 895px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"836\" height=\"302\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-64.png\" alt=\"\" class=\"wp-image-1680\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-64.png 836w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-64-300x108.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/01\/image-64-768x277.png 768w\" sizes=\"auto, (max-width: 836px) 100vw, 836px\" \/><\/figure>\n\n\n\n<p class=\"has-large-font-size\"><strong>Conclusion<\/strong><\/p>\n\n\n\n<p>Dans cet article nous montrons l\u2019int\u00e9r\u00eat des microcontr\u00f4leurs de type LoPy et Raspberry Pi pour faire de la domotique peu ch\u00e8re, adapt\u00e9e aux besoins de chacun et ais\u00e9e \u00e0 prendre en main et \u00e0 terme r\u00e9duire ses consommations \u00e9nerg\u00e9tiques dans son logement. Ces syst\u00e8mes trouvent aussi des applications dans l\u2019industrie, en rempla\u00e7ant des syst\u00e8mes industriels excessivement chers.<\/p>\n\n\n\n<p>Le serveur The Things Network est aussi tr\u00e8s int\u00e9ressant car c\u2019est un r\u00e9seau communautaire permettant \u00e0 des objets de transmettre des petits volumes d\u2019informations en consommant tr\u00e8s peu d\u2019\u00e9nergie.<\/p>\n\n\n\n<p>De mani\u00e8re g\u00e9n\u00e9rale, nous nous sommes rendus compte qu\u2019il est assez facile de cr\u00e9er des syst\u00e8mes utilisant l\u2019internet des objets de nos jours. Il existe beaucoup de plateformes communautaires sur internet o\u00f9 l\u2019on peut trouver diff\u00e9rents types d\u2019aides tel que github pour la programmation,des forums ainsi que des sites web tel que Miniprojets.net. Nous avons trouv\u00e9 ce projet tr\u00e8s enrichissant et instructif avec de tr\u00e8s fortes ouvertures sur le monde de demain auquel nous allons participer en tant qu&#8217;ing\u00e9nieur(e).&nbsp;<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Bibliographie<\/strong><\/p>\n\n\n\n<p>(Miniprojet 2019) Sylvain, Monitoring d\u2019une serre, du capteur jusqu\u2019au serveur via le trio LoRa, InfluxDB, Grafana <a href=\"https:\/\/miniprojets.net\/index.php\/2019\/07\/23\/monitoring-dune-serre-du-capteur-jusquau-serveur\/\">https:\/\/miniprojets.net\/index.php\/2019\/07\/23\/monitoring-dune-serre-du-capteur-jusquau-serveur\/<\/a><\/p>\n\n\n\n<p>(Code DS18X20) <a href=\"https:\/\/github.com\/pycom\/pycom-libraries\/tree\/master\/examples\/DS18X20?fbclid=IwAR3v2lCVpgaFtdslYuXYQH0IDtem3SyvKvlEaBNrQIBvgqw7gHa5SKz_CUM\">https:\/\/github.com\/pycom\/pycom-libraries\/tree\/master\/examples\/DS18X20<\/a><\/p>\n\n\n\n<p>Simon Hearne. \u00ab Installing InfluxDB &amp; Grafana on Raspberry Pi \u00bb. Consult\u00e9 le 18 janvier 2021. https:\/\/simonhearne.com\/2020\/pi-influx-grafana\/.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Written by Lola Dussosoy, Benoit Ribeaud, Sophie Bodart Univ. Grenoble Alpes, Grenoble INP, ENSE3, F-38000 Grenoble, France R\u00c9SUM\u00c9 La ma\u00eetrise&hellip;<\/p>\n","protected":false},"author":1,"featured_media":1671,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[60],"tags":[80],"class_list":["post-1668","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bureaux-detudes","tag-bureaux-detude"],"_links":{"self":[{"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/posts\/1668","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/comments?post=1668"}],"version-history":[{"count":0,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/posts\/1668\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/media\/1671"}],"wp:attachment":[{"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/media?parent=1668"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/categories?post=1668"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/tags?post=1668"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}