Après avoir eu pas mal de déconvenues avec le classique DHT22 (dont le protocole aux timings très serré le rend difficilement exploitable sur un Arduino "lent"), je tente ma chance avec le plus récent SHT31 dont voici les caractéristiques :
La cerise sur le gâteau étant qu'il communique par un très classique I2C et comme ce protocole est généralement pris en charge par le matériel des micro-contrôleur, plus de problèmes avec ceux qui ont une horloge lente comme les Tiny.
On peut (suivant le fournisseur) disposé des broches suivantes :
Plus d'informations sur le Datasheet.
Ne soyons pas plus royalistes que le roi ... le schéma est simplicime :
Pas besoin de pull-up, c'est pris en charge par l'Uno.
Je me suis basé sur l'excellent tuto d'Ada fruit.
Pour la programmation, je suis parti sur la classique Adafruit_SHT31 qui est incluse dans le gestionnaire de bibliothèque de l'IDE Arduino : on clique, c'est installé.
On commence par inclure les librairies :
#include <Wire.h>
Nous allons utiliser l'I2C
#include <Adafruit_SHT31.h>
et le SHT. Enfin, nous définissons l'objet SHT
Adafruit_SHT31 sht31;
Dans la fonction setup(), la seule chose que nous avons à faire est de déclarer l'adresse sur laquelle répond notre sonde : 0x44 ou 0x45 suivant que la broche AD est connectée ou non.
sht31.begin(0x44);
Contrairement à ce qu'indique la doc d'AdaFruit, la fonction sht31.begin() ne teste absolument pas la présence de la sonde : elle renvoie toujours VRAI. Si l'on souhaite faire un test, il faut demander le status de la sonde (méthode readStatus() ) : si la réponse est 0xffff, la sonde n'est pas présente à l'adresse indiquée.
Les valeurs sont accessibles par les simples fonctions :
float temperature = sht31.readTemperature();
et
float humidite = sht31.readHumidity();
La librairie ne permet qu'une mesure de la température en haute précision qui peut prendre jusqu'à 15 millisecondes. De même en interne, les 2 mesures sont lues à chaque fois ... ce qui implique 4 lectures si on enchaine les 2 fonctions (température et humidité). Hormis si le bus I2C est vraiment occupé, cela n'aura strictement aucune importance ... même si on fait mieux niveau optimisation.
Visitez : Nos sorties Ski et rando |
Copyright Laurent Faillie
2001-2024
N'oubliez pas d'entrer le mot de passe pour voir aussi les photos perso. |
Contactez moi si vous souhaitez réutiliser ces photos et pour les obtenir avec une plus grande résolution. |
Visites durant les 7 derniers jours au total. |
Vous pouvez
laissez un commentaire
sur cette page.