{"id":3520,"date":"2019-01-03T01:06:52","date_gmt":"2019-01-03T00:06:52","guid":{"rendered":"https:\/\/www.fanjoe.be\/?p=3520"},"modified":"2020-04-16T03:57:58","modified_gmt":"2020-04-16T01:57:58","slug":"flower-power-de-parrot-recuperer-les-donnees-du-capteur-sur-un-raspberry-pi-avec-gatttool","status":"publish","type":"post","link":"https:\/\/www.fanjoe.be\/?p=3520","title":{"rendered":"Flower Power de Parrot : R\u00e9cup\u00e9rer les donn\u00e9es du capteur sur un Raspberry Pi avec gatttool"},"content":{"rendered":"<h1>Introduction<\/h1>\n<p><strong>Articles connexes :<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/www.fanjoe.be\/?p=64\">Flower Power de Parrot<\/a><\/li>\n<li><a href=\"https:\/\/www.fanjoe.be\/?p=2741\">Flower Care \/ MiFlora de Xiaomi : R\u00e9cup\u00e9rer les donn\u00e9es avec Gatttool sur un RPi 3<\/a><\/li>\n<\/ul>\n<hr \/>\n<p><a href=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-16.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-3581\" src=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-16-175x175.jpg\" alt=\"\" width=\"160\" height=\"160\" srcset=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-16-175x175.jpg 175w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-16-300x300.jpg 300w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-16.jpg 620w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-16-100x100.jpg 100w\" sizes=\"auto, (max-width: 160px) 100vw, 160px\" \/><\/a>Il y a quelques temps, mon Flower Power de marque Parrot a, pour une myst\u00e9rieuse raison, perdu la connexion avec l&rsquo;application sur iOS. Il \u00e9tait alors compliqu\u00e9 de concevoir un script pour le maintenir en vie et r\u00e9cup\u00e9rer les donn\u00e9es sur mon Raspberry Pi, vous allez comprendre pourquoi plus bas.<\/p>\n<p>Puis, je suis tomb\u00e9 sur le blog <a href=\"https:\/\/www.journaldulapin.com\/2017\/12\/04\/comment-jai-sauve-mon-flower-power\/\" target=\"_blank\" rel=\"noopener noreferrer\">Journal du Lapin<\/a> qui expliquait comment rem\u00e9dier au probl\u00e8me.<\/p>\n<p>Et effectivement le handle: <code>0x0003<\/code>, uuid: <code>00002a00-0000-1000-8000-00805f9b34fb<\/code> (qui correspond au Device Name) \u00e9tait vide alors que pour \u00eatre reconnu par l&rsquo;app iOS il doit contenir \u00ab\u00a0Parrot\u00a0\u00bb.<\/p>\n<p>J\u2019ai utilis\u00e9 cette commande gatttool pour le modifier :<\/p>\n<pre>$ sudo gatttool \u2013device=90:03:B7:xx:xx:xx \u2013char-write-req -a 0x03 -n 506172726f74<\/pre>\n<p>O\u00f9 <code>506172726f74<\/code> est \u00ab\u00a0Parrot\u00a0\u00bb en Hex.<\/p>\n<p>Apr\u00e8s cette manipulation, tout est rentr\u00e9 dans l&rsquo;ordre et l&rsquo;app iOS a recommenc\u00e9 \u00e0 fonctionner. J&rsquo;ai alors pu attaquer l&rsquo;\u00e9tude des donn\u00e9es.<\/p>\n<h1>Documentation de Parrot<\/h1>\n<p><a href=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-03.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3535 alignright\" src=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-03-175x175.jpg\" alt=\"\" width=\"100\" height=\"100\" srcset=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-03-175x175.jpg 175w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-03-300x300.jpg 300w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-03.jpg 620w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-03-100x100.jpg 100w\" sizes=\"auto, (max-width: 100px) 100vw, 100px\" \/><\/a>En cherchant un peu sur la toile, j&rsquo;ai rapidement trouv\u00e9 la <a href=\"https:\/\/developer.parrot.com\/docs\/FlowerPower\/FlowerPower-BLE.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">documentation<\/a> du Flower Power sur le site du constructeur.<\/p>\n<p>Je l&rsquo;ai aussi <a href=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/FlowerPowerBLE.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">h\u00e9berg\u00e9e ici<\/a> au cas ou&#8230;<\/p>\n<h2>Identification du p\u00e9riph\u00e9rique BLE<\/h2>\n<p>La documentation nous indique de le Flower Power a une MAC address qui commence toujours par <code>90:03:b7:xx:xx:xx<\/code> .<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-01.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3526\" src=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-01.png\" alt=\"\" width=\"593\" height=\"169\" srcset=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-01.png 593w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-01-175x50.png 175w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-01-300x85.png 300w\" sizes=\"auto, (max-width: 593px) 100vw, 593px\" \/><\/a><\/p>\n<h2>UUID des diff\u00e9rents services<\/h2>\n<p>La liste des UUID normalis\u00e9s est disponible \u00e0 cette adresse : <a href=\"https:\/\/www.bluetooth.com\/specifications\/gatt\/characteristics\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.bluetooth.com\/specifications\/gatt\/characteristics<\/a><\/p>\n<h3>Batterie<\/h3>\n<ul>\n<li>UUID <code>0x2A19<\/code><\/li>\n<\/ul>\n<h3>Date et heure<\/h3>\n<ul>\n<li>UUID <code>0xFD01<\/code><\/li>\n<\/ul>\n<p>La date et l&rsquo;heure sont cod\u00e9es sur 32 bits en <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Endianness#Little_endian\" target=\"_blank\" rel=\"noopener noreferrer\">little endian<\/a>.<\/p>\n<h3>Donn\u00e9es d&rsquo;environnement<\/h3>\n<p>Pour d\u00e9clencher la lecture des mesures en live, il faut inscrire 1 dans l&rsquo;UUID <code>0xFA06<\/code> et 0 pour cl\u00f4turer la lecture.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-02.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3529\" src=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-02.png\" alt=\"\" width=\"545\" height=\"201\" srcset=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-02.png 545w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-02-175x65.png 175w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-02-300x111.png 300w\" sizes=\"auto, (max-width: 545px) 100vw, 545px\" \/><\/a><\/p>\n<ul>\n<li><code>0xFA01<\/code> : \u00c9clairement (en lux)<\/li>\n<li><code>0xFA02<\/code> : Conductivit\u00e9 \u00e9lectrique du sol (milli Siemens par m\u00e8tre (mS\/m))<\/li>\n<li><code>0xFA03<\/code> : Temp\u00e9rature du sol (en \u00b0Celsius)<\/li>\n<li><code>0xFA04<\/code> : Temp\u00e9rature de l&rsquo;air (en \u00b0Celsius)<\/li>\n<li><code>0xFA05<\/code> : Contenu volum\u00e9trique d&rsquo;eau dans le sol (en m<sup>3<\/sup>\/m<sup>3<\/sup>)<\/li>\n<\/ul>\n<p>La documentation explique que la valeur \u00e0 afficher est le r\u00e9sultat de la formule indiqu\u00e9e dans le tableau. Mais <strong>il n&rsquo;en est rien !<\/strong> Et les formules sont bien plus complexes. J&rsquo;ai du porter de nombreuses mesures dans des tableaux pour parvenir \u00e0 les trouver.<\/p>\n<h3>LED<\/h3>\n<ul>\n<li>UUID <code>0xFA07<\/code><\/li>\n<\/ul>\n<p>Pour allumer ou \u00e9teindre la LED, il faut \u00e9crire <code>1<\/code> ou <code>0<\/code> dans le UUID <code>0xFA07<\/code>.<\/p>\n<h3>D\u00e9placement<\/h3>\n<ul>\n<li>UUID <code>0xFA08<\/code><\/li>\n<\/ul>\n<p>Lorsque le Flower Power est d\u00e9plac\u00e9, la date du d\u00e9placement est inscrite dans cet UUID.<\/p>\n<p><strong>NB:<\/strong> Je n&rsquo;ai pas trouv\u00e9 cet UUID dans la liste obtenue par gatttool.<\/p>\n<h1>Connexion au Flower Power<\/h1>\n<p>Je vous renvoie vers l&rsquo;article qui traite du <strong><em>Flower Care<\/em><\/strong> pour plus d&rsquo;infos sur l&rsquo;utilisation de <em><strong>gatttool<\/strong><\/em> : <a href=\"https:\/\/www.fanjoe.be\/?p=2741\">Flower Care \/ MiFlora de Xiaomi : R\u00e9cup\u00e9rer les donn\u00e9es avec Gatttool sur un RPi 3<\/a><\/p>\n<h2>D\u00e9terminer la MAC address du Flower Power<\/h2>\n<pre>$ sudo hcitool lescan<\/pre>\n<p>Ce qui devrait nous retourner la liste des p\u00e9riph\u00e9rique Bluetooth LE (Low Energy) qui se trouvent \u00e0 proximit\u00e9 :<\/p>\n<pre>LE Scan ...<br \/>FC:E4:1D:88:BD:59 FCE41D88<br \/>FC:E4:1D:88:BD:59 (unknown)<br \/>C4:7C:8D:63:85:B1 (unknown)<br \/>C4:7C:8D:63:85:B1 Flower care<br \/>90:03:B7:E7:DC:6C (unknown)<br \/><span style=\"color: #ff0000;\">90:03:B7:E7:DC:6C Parrot<\/span><br \/>2C:41:A1:8B:8C:9B (unknown)<br \/>2C:41:A1:8B:8C:9B LE-Bose Micro SoundLink<\/pre>\n<p>Le Flower Power est bien l\u00e0. Sa Mac address commence bien par <code>90:03:B7:xx:xx:xx<\/code> comme indiqu\u00e9 dans la documentation.<\/p>\n<h2>Utilisation de gatttool<\/h2>\n<h3>Afficher la liste des handles<\/h3>\n<p>La documentation de Parrot nous fournit les UUID des diff\u00e9rentes caract\u00e9ristiques. Mais nous avons besoins de l&rsquo;ID de leurs handles respectifs.<\/p>\n<p>Nous allons utiliser la commande :<\/p>\n<pre>$ sudo gatttool --device=90:03:B7:E7:DC:6C --char-desc -a 0x0001<\/pre>\n<p>Apr\u00e8s quelques secondes d&rsquo;attente, nous devrions voir apparaitre une longue liste dont voici les lignes les plus int\u00e9ressantes :<\/p>\n<pre>handle = 0x0003, uuid = 0000<span style=\"color: #ff0000;\">2a00<\/span>-0000-1000-8000-00805f9b34fb\nhandle = 0x0025, uuid = 39e1<span style=\"color: #ff0000;\">fa01<\/span>-84a8-11e2-afba-0002a5d5c51b\nhandle = 0x0029, uuid = 39e1<span style=\"color: #ff0000;\">fa02<\/span>-84a8-11e2-afba-0002a5d5c51b\nhandle = 0x002d, uuid = 39e1<span style=\"color: #ff0000;\">fa03<\/span>-84a8-11e2-afba-0002a5d5c51b\nhandle = 0x0031, uuid = 39e1<span style=\"color: #ff0000;\">fa04<\/span>-84a8-11e2-afba-0002a5d5c51b\nhandle = 0x0035, uuid = 39e1<span style=\"color: #ff0000;\">fa05<\/span>-84a8-11e2-afba-0002a5d5c51b\nhandle = 0x0039, uuid = 39e1<span style=\"color: #ff0000;\">fa06<\/span>-84a8-11e2-afba-0002a5d5c51b\nhandle = 0x003c, uuid = 39e1<span style=\"color: #ff0000;\">fa07<\/span>-84a8-11e2-afba-0002a5d5c51b\nhandle = 0x004c, uuid = 0000<span style=\"color: #ff0000;\">2a19<\/span>-0000-1000-8000-00805f9b34fb\nhandle = 0x0078, uuid = 39e1<span style=\"color: #ff0000;\">fd01<\/span>-84a8-11e2-afba-0002a5d5c51b\n<\/pre>\n<p>J&rsquo;ai indiqu\u00e9 en rouge l&rsquo;UUID. Nous pouvons voir les handles correspondants en d\u00e9but de ligne.<\/p>\n<h3>Lire les handles<\/h3>\n<p>Nous avons vu plus haut que le niveau de la batterie \u00e9tait repris par l&rsquo;UUID <code>0x2A19<\/code>, soit le handle <code>0x004c<\/code>.<\/p>\n<p>Pour lire le contenu du handle de la batterie, nous allons utiliser cette commande :<\/p>\n<pre>$ sudo gatttool --device=90:03:B7:E7:DC:6C --char-read -a 0x4c<\/pre>\n<p><strong>NB:<\/strong> On peut abr\u00e9ger le handle par <code>0x4c<\/code> au lieu de <code>0x004c<\/code>.<\/p>\n<p>On obtiendra une r\u00e9ponse sous cette forme :<\/p>\n<pre>Characteristic value\/descriptor: 54<\/pre>\n<p>C&rsquo;est une valeur hexad\u00e9cimale soit : 84 %<\/p>\n<h2>Little endian<\/h2>\n<p>Certains handles comme la temp\u00e9rature apporteront une r\u00e9ponse sur 2 octets.<\/p>\n<pre>$ sudo gatttool --device=90:03:B7:E7:DC:6C --char-read -a 0x31<\/pre>\n<pre>Characteristic value\/descriptor: 92 03<\/pre>\n<p>Comme indiqu\u00e9 sur l&rsquo;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Endianness#Little_endian\" target=\"_blank\" rel=\"noopener noreferrer\">article de Wikip\u00e9dia<\/a>, l&rsquo;octet de poids le plus faible vient en premier.<\/p>\n<p>Nous aurons donc \u00e0 permuter comme ceci :<\/p>\n<pre>92 03 =&gt; 03 92<\/pre>\n<p>Ce qui donne <code>914<\/code> en d\u00e9cimal.<\/p>\n<h1>\u00c9tude des donn\u00e9es<\/h1>\n<p>Une fois qu&rsquo;il est possible de lire les donn\u00e9es, il est n\u00e9cessaire de les comprendre. Comme les formules donn\u00e9es par le constructeur ne fonctionnent pas, j&rsquo;ai d\u00e9cid\u00e9 de proc\u00e9der \u00e0 de nombreuses mesures que j&rsquo;ai port\u00e9es dans un tableau afin de d\u00e9terminer la formule.<\/p>\n<p><strong>NB:<\/strong> Plus bas, j&rsquo;utilise r\u00e9guli\u00e8rement le terme \u00ab\u00a0Hex\u00a0\u00bb. Il faudra souvent comprendre : \u00ab\u00a0<em>la valeur brute du capteur exprim\u00e9e en hexad\u00e9cimal et convertie en d\u00e9cimal<\/em>\u00a0\u00bb .<\/p>\n<h2>Temp\u00e9rature<\/h2>\n<h3>Relev\u00e9s<\/h3>\n<p>Pour trouver la corr\u00e9lation entre la temp\u00e9rature exprim\u00e9e en hexad\u00e9cimal (Hex) dans le r\u00e9sultat de gatttool et celle affich\u00e9e en degr\u00e9s Celsius (\u00b0C) dans l&rsquo;app iOS, j&rsquo;ai d\u00e9cid\u00e9 de relever un maximum de points et de tracer une courbe.<\/p>\n<p>Pour ce faire, j&rsquo;ai plong\u00e9 de Flower Power dans une bo\u00eete en polystyr\u00e8ne et ai plac\u00e9 le tout au cong\u00e9lateur. Je l&rsquo;ai ensuite ressorti et ai relev\u00e9 r\u00e9guli\u00e8rement la temp\u00e9rature qui remontait doucement via gatttool et l&rsquo;app Flower Power sur iOS.<\/p>\n<p>J&rsquo;en ai d\u00e9duit ce tableau :<\/p>\n<p><a href=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-04.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-3540\" src=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-04-620x784.png\" alt=\"\" width=\"620\" height=\"784\" srcset=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-04.png 620w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-04-138x175.png 138w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-04-300x379.png 300w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>Comme lorsque l&rsquo;on converti une temp\u00e9rature en degr\u00e9s Fahrenheit vers des degr\u00e9s Celsius, il faut retrouver un 0 commun avant d&rsquo;appliquer une r\u00e8gle de trois.<\/p>\n<p>Dans notre cas, il faut appliquer un d\u00e9calage de 320 \u00e0 la temp\u00e9rature exprim\u00e9e en Hex afin de faire passer la droite par le point 0,0.<\/p>\n<p><a href=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-06.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-3541\" src=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-06-620x404.png\" alt=\"\" width=\"620\" height=\"404\" srcset=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-06-620x404.png 620w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-06-175x114.png 175w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-06-300x195.png 300w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-06.png 930w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>Sur le graphique, on peut constater que la courbe des tendances (une droite dans ce cas) en gris ne suit pas le trac\u00e9. Je n&rsquo;ai pas d&rsquo;explication et pourtant mes relev\u00e9s sont corrects.<\/p>\n<p style=\"padding-left: 40px;\"><strong>Edit 16\/04\/2020 : <\/strong>Le Flower Power utilise probablement 2 sondes diff\u00e9rentes pour relever les temp\u00e9ratures (basses et hautes) avec une bascule entre les deux qui se passe \u00e0 10\u00b0C. D&rsquo;o\u00f9 une sensibilit\u00e9 et des pentes diff\u00e9rentes.<\/p>\n<p>Pour r\u00e9soudre le probl\u00e8me, j&rsquo;ai trac\u00e9 une droite bris\u00e9e qui passe par x=0,y=0 et change de pente en x=10,y=130 pour rejoindre x=31,y=565.<\/p>\n<p>Je retrouve alors un trac\u00e9 (en orange) tr\u00e8s coh\u00e9rent avec mes observations (les points bleus en dessous).<\/p>\n<h3>Formule<\/h3>\n<p>Pour les valeurs de temp\u00e9rature Hex <span class=\"st\">\u2264<\/span> 130 :<\/p>\n<pre>m (pente) = 13<br \/>y = 13 x<br \/>Temp\u00e9rature \u00b0C = (Temp\u00e9rature Hex - 320) \/ 13<\/pre>\n<p>Pour les valeurs de temp\u00e9rature Hex &gt; 130 :<\/p>\n<pre>m (pente) = 20,7142<br \/>y = 20,7142 x - 77,142<br \/>Temp\u00e9rature en \u00b0C = (Temp\u00e9rature Hex - 320 + 77,142) \/ 20,7142<\/pre>\n<h2>Ensoleillement<\/h2>\n<h3>Relev\u00e9s<\/h3>\n<p>Pour mesurer l&rsquo;ensoleillement ou plut\u00f4t l&rsquo;\u00e9clairement exprim\u00e9 en lux, j&rsquo;ai plac\u00e9 le Flower Power sous une lampe de bureau et ai fait varier la distance avec la source. Les relev\u00e9s \u00e9tant forts instables, j&rsquo;ai effectu\u00e9 5 mesures \u00e0 chaque fois et en ai tir\u00e9 une moyenne.<\/p>\n<p><a href=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-07.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-3545\" src=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-07-620x397.png\" alt=\"\" width=\"620\" height=\"397\" srcset=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-07-620x397.png 620w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-07-175x112.png 175w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-07-300x192.png 300w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-07.png 1240w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>Le graphique est ici tr\u00e8s coh\u00e9rent :<\/p>\n<p><a href=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-08.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-3546\" src=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-08-620x404.png\" alt=\"\" width=\"620\" height=\"404\" srcset=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-08-620x404.png 620w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-08-175x114.png 175w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-08-300x195.png 300w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-08.png 930w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>C&rsquo;est une courbe exponentielle qu&rsquo;il faudra prolonger vers les valeurs les plus extr\u00eames et dont MS Excel nous donne la formule (courbe des tendances : puissance) :<\/p>\n<p><a href=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-09.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3547 size-large\" src=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-09-620x404.png\" alt=\"\" width=\"620\" height=\"404\" srcset=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-09-620x404.png 620w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-09-175x114.png 175w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-09-300x195.png 300w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-09.png 930w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<h3>Formule<\/h3>\n<pre>y = 8E+07 x ^<sup>-1,063<\/sup><br \/>y = 80000000 x ^<sup>-1,063<\/sup><br \/>\u00c9clairement en lux = 80000000 * (\u00c9clairement en Hex) <sup>^-1,063<\/sup><\/pre>\n\n\t\t<style>\n\t\t\t#gallery-1 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 50%;\n\t\t\t}\n\t\t\t#gallery-1 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-1' class='gallery galleryid-3520 gallery-columns-2 gallery-size-medium'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-10.jpg'><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"533\" src=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-10-300x533.jpg\" class=\"attachment-medium size-medium\" alt=\"\" srcset=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-10-300x533.jpg 300w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-10-99x175.jpg 99w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-10.jpg 349w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>\n\t\t\t<\/dt><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-11.jpg'><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"533\" src=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-11-300x533.jpg\" class=\"attachment-medium size-medium\" alt=\"\" srcset=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-11-300x533.jpg 300w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-11-99x175.jpg 99w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-11.jpg 349w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>\n\t\t\t<\/dt><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n\n<p>Avec cette formule, nous avons un minimum de 607 lux quand la valeur Hex vaut 65535. Ce qui correspond \u00e0 la lecture minimal de l&rsquo;app qui \u00ab\u00a0d\u00e9croche\u00a0\u00bb en dessous de cette valeur.<\/p>\n<p>\u00c0 l&rsquo;inverse, la lecture sur l&rsquo;app s&rsquo;arr\u00eate \u00e0 903 klux quand la valeur Hex vaut 44, soit 1 432 517 lux en appliquant la formule.<\/p>\n<p>En th\u00e9orie nous pourrions monter \u00e0 80 000 000 lux quand Hex vaut 1.<\/p>\n<h2>Humidit\u00e9 du sol et engrais<\/h2>\n<p>Malheureusement, pour une raison qui m&rsquo;\u00e9chappe, mon Flower Power n&rsquo;affiche aucune donn\u00e9es concernant l&rsquo;humidit\u00e9 du sol (Contenu volum\u00e9trique d&rsquo;eau dans le sol \/ VWC). Dans le sol, dans l&rsquo;eau, \u00e0 sec, &#8230; Rien ! Je ne peux donc pas tracer de graphique comme je l&rsquo;ai fait pour les autres param\u00e8tres.<\/p>\n<p>Quant \u00e0 l&rsquo;engrais (Conductivit\u00e9 \u00e9lectrique du sol), il n&rsquo;est pas possible d&rsquo;afficher les donn\u00e9es en live.<\/p>\n\n\t\t<style>\n\t\t\t#gallery-2 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-2 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 50%;\n\t\t\t}\n\t\t\t#gallery-2 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-2 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-2' class='gallery galleryid-3520 gallery-columns-2 gallery-size-medium'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-12.jpg'><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"533\" src=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-12-300x533.jpg\" class=\"attachment-medium size-medium\" alt=\"\" srcset=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-12-300x533.jpg 300w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-12-99x175.jpg 99w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-12.jpg 349w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>\n\t\t\t<\/dt><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-13.jpg'><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"533\" src=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-13-300x533.jpg\" class=\"attachment-medium size-medium\" alt=\"\" srcset=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-13-300x533.jpg 300w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-13-99x175.jpg 99w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-13.jpg 349w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>\n\t\t\t<\/dt><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n\n<p>C\u00f4t\u00e9 lectures sur le Raspberry Pi, j&rsquo;obtiens des donn\u00e9es incoh\u00e9rentes.<\/p>\n<h2>Temp\u00e9rature du sol<\/h2>\n<p>La documentation parle de \u00ab\u00a0Temp\u00e9rature du sol\u00a0\u00bb pour l&rsquo;UUID <code>0xFA03<\/code>. Mais encore une fois, le contenu de handle <code>0x002d<\/code> correspondant est difficile \u00e0 d\u00e9chiffrer sans r\u00e9f\u00e9rence sur l&rsquo;app.<\/p>\n<p>C&rsquo;est peut-\u00eatre un point que je vais continuer \u00e0 creuser&#8230;<\/p>\n<h1>Script<\/h1>\n<p>Voici un petit script qui va nous permettre de lire les infos :<\/p>\n<pre>[bash]\n#!\/bin\/bash\n\n# V\u00e9rifie que l'on est en Root\nif [[ $EUID -ne 0 ]];\nthen\n    echo &quot;Ce script doit \u00eatre ex\u00e9cut\u00e9 avec les privil\u00e8ges administrateur&quot;\n    exit 1\nfi\n\nMACadd=&quot;90:03:B7:xx:xx:xx&quot; # Indiquer la MACaddress de votre Flower Power\n\n# On d\u00e9sactive, puis on r\u00e9active le bluetooth pour \u00e9viter les erreurs\n#sudo hciconfig hci0 down; sudo hciconfig hci0 up\n\n# On affiche la MAC Address\necho -e &quot;MAC address : $MACadd \\n&quot;\n\n# On allume la LED\ngatttool --device=$MACadd --char-write-req -a 0x3c -n 01 #LED\n\n# On active les donn\u00e9es Live\ngatttool --device=$MACadd --char-write-req -a 0x39 -n 01 #Live Data\n\n########\n# Name #\n########\n\nhnd03=$(gatttool --device=$MACadd --char-read -a 0x03)\necho $hnd03\n\nname=$(echo &quot;$hnd03&quot; |cut -c34-65 | xxd -r -p)\necho -e &quot;Nom : $name \\n&quot;\n\n###########\n# Battery #\n###########\n\nhnd4c=$(gatttool --device=$MACadd --char-read -a 0x4c)\necho $hnd4c\n\nbattery=$((16#${hnd4c:33:2}))\necho -e &quot;Battery : $battery % \\n&quot;\n\n#########\n# Light #\n#########\n\nhnd25=$(gatttool --device=$MACadd --char-read -a 0x25)\necho $hnd25\n\nlight=$((16#${hnd25:36:2}${hnd25:33:2}))\necho Light Hex : $light\n\n#light=1\n\nif [[ $light -eq 65535 ]]\nthen\n    light=0\nelse\n    light=`python -c &quot;print int(round((80000000*($light**(-1.063))),0))&quot;`\nfi\necho -e &quot;Light lux : $light lux \\n&quot;\n\n############\n# Air Temp #\n############\n\nhnd31=$(gatttool --device=$MACadd --char-read -a 0x31)\necho $hnd31\n\nair_temp=$((16#${hnd31:36:2}${hnd31:33:2}))\necho Air Temp Hex : $air_temp\n\nif [[ $air_temp -le 450 ]]\nthen\n    air_temp=`echo &quot;scale=1;($air_temp-320)\/13&quot; | bc`\nelse\n    air_temp=`echo &quot;scale=1;(($air_temp-320)+77.142)\/20.7142&quot; | bc`\nfi\n\necho -e &quot;Air Temp \u00b0C : $air_temp \u00b0C \\n&quot;\n\n#############\n# Soil Temp #\n#############\n\nhnd2d=$(gatttool --device=$MACadd --char-read -a 0x2d)\necho $hnd2d\n\nsoil_temp=$((16#${hnd2d:36:2}${hnd2d:33:2}))\necho -e &quot;Soil Temp Hex : $soil_temp \\n&quot;\n\n###########\n# Soil EC #\n###########\n\nhnd29=$(gatttool --device=$MACadd --char-read -a 0x29)\necho $hnd29\n\nsoil_ec=$((16#${hnd29:36:2}${hnd29:33:2}))\necho -e &quot;Soil EC Hex : $soil_ec \\n&quot;\n\n############\n# Soil VWC #\n############\n\nhnd35=$(gatttool --device=$MACadd --char-read -a 0x35)\necho $hnd35\n\nsoil_vwc=$((16#${hnd35:36:2}${hnd35:33:2}))\necho Soil VWC Hex : $soil_vwc\n\n# On d\u00e9sactive les donn\u00e9es Live\ngatttool --device=$MACadd --char-write-req -a 0x39 -n 00 #Live Data\n\n[\/bash]<\/pre>\n<p>Vous devriez obtenir ce genre de donn\u00e9es :<\/p>\n<pre>MAC address : 90:03:B7:E7:DC:6C<br \/><br \/>Characteristic value\/descriptor: 50 61 72 72 6f 74<br \/>Nom : Parrot<br \/><br \/>Characteristic value\/descriptor: 50<br \/>Battery : 80 %<br \/><br \/>Characteristic value\/descriptor: 82 17<br \/>Light Hex : 6018<br \/>Light lux : 7683 lux<br \/><br \/>Characteristic value\/descriptor: f7 02<br \/>Air Temp Hex : 759<br \/>Air Temp \u00b0C : 24.9 \u00b0C<br \/><br \/>Characteristic value\/descriptor: a5 02<br \/>Soil Temp Hex : 677<br \/><br \/>Characteristic value\/descriptor: 5f 00<br \/>Soil EC Hex : 95<br \/><br \/>Characteristic value\/descriptor: 00 00<br \/>Soil VWC Hex : 0<\/pre>\n<h1>Conclusion<\/h1>\n<p><a href=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-14.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-3571\" src=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-14-620x465.jpg\" alt=\"\" width=\"620\" height=\"465\" srcset=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-14-620x465.jpg 620w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-14-175x131.jpg 175w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-14-300x225.jpg 300w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-14.jpg 930w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>Mon Flower Power est rest\u00e9 bien longtemps au fond d&rsquo;une caisse et il est possible qu&rsquo;il ait \u00e9t\u00e9 endommag\u00e9. J&rsquo;ai donc d\u00e9cid\u00e9 de l&rsquo;utiliser pour ses deux fonctions dont je peux d\u00e9chiffrer les r\u00e9sultats.<\/p>\n<p>Je l&rsquo;ai accroch\u00e9 sur le tuteur, en haut de mon ficus. Il me permet d&rsquo;obtenir des donn\u00e9es compl\u00e9mentaires \u00e0 celles de mon <a href=\"https:\/\/www.fanjoe.be\/?p=2553\">Xiaomi Flower Care<\/a> qui est plant\u00e9 dans le pot.<\/p>\n<p>Voici les r\u00e9sultats de mesures affich\u00e9s avec <a href=\"https:\/\/www.fanjoe.be\/?p=2537\">RPi-Monitor<\/a> :<\/p>\n<p><a href=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-15.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-3575\" src=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-15-620x652.png\" alt=\"\" width=\"620\" height=\"652\" srcset=\"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-15.png 620w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-15-166x175.png 166w, https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-15-300x315.png 300w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>On peut voir la diff\u00e9rence de temp\u00e9rature et d&rsquo;ensoleillement entre le feuillage et le pot.<\/p>\n<hr \/>\n<p>Voil\u00e0, si vous avez envie d&rsquo;investiguer plus avant et de vous plonger dans l&rsquo;\u00e9tude de la conductivit\u00e9 ou l&rsquo;humidit\u00e9 du sol, n&rsquo;h\u00e9sitez pas \u00e0 venir m&rsquo;en parler dans les commentaires.<\/p>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction <\/p>\n<p><strong>Articles connexes :<\/strong><\/p>\n<p> <a href=\"https:\/\/www.fanjoe.be\/?p=64\">Flower Power de Parrot<\/a> <a href=\"https:\/\/www.fanjoe.be\/?p=2741\">Flower Care \/ MiFlora de Xiaomi : R\u00e9cup\u00e9rer les donn\u00e9es&#8230;<\/p>\n","protected":false},"author":1,"featured_media":3578,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[179,10,3,12],"tags":[14,287,22],"class_list":["post-3520","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-domotique","category-geek","category-informatique","category-raspberrypi","tag-flower-power","tag-gatttool","tag-raspberry-pi","end"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/www.fanjoe.be\/wp-content\/uploads\/2019\/01\/Gatttool-Flower-Power-00.jpg","_links":{"self":[{"href":"https:\/\/www.fanjoe.be\/index.php?rest_route=\/wp\/v2\/posts\/3520","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fanjoe.be\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fanjoe.be\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fanjoe.be\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fanjoe.be\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3520"}],"version-history":[{"count":0,"href":"https:\/\/www.fanjoe.be\/index.php?rest_route=\/wp\/v2\/posts\/3520\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fanjoe.be\/index.php?rest_route=\/wp\/v2\/media\/3578"}],"wp:attachment":[{"href":"https:\/\/www.fanjoe.be\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fanjoe.be\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3520"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fanjoe.be\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}