Table des matières:
- Étape 1: Matériel requis:
- Étape 2: connexion matérielle:
- Étape 3: Code pour la mesure de l'humidité et de la température:
- Étape 4: Candidatures:
Vidéo: Mesure de l'humidité et de la température à l'aide du HTS221 et du photon de particules : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
HTS221 est un capteur numérique capacitif ultra compact pour l'humidité relative et la température. Il comprend un élément de détection et un circuit intégré spécifique à l'application de signaux mixtes (ASIC) pour fournir les informations de mesure via des interfaces série numériques. Intégré avec tant de fonctionnalités, c'est l'un des capteurs les plus appropriés pour les mesures critiques d'humidité et de température.
Dans ce tutoriel, l'interfaçage du module de capteur HTS221 avec le photon de particules a été illustré. Pour lire les valeurs d'humidité et de température, nous avons utilisé des particules avec un adaptateur I2c. Cet adaptateur I2C rend la connexion au module capteur facile et plus fiable.
Étape 1: Matériel requis:
Les matériaux dont nous avons besoin pour atteindre notre objectif comprennent les composants matériels suivants:
1. HTS221
2. Photon de particule
3. Câble I2C
4. Bouclier I2C pour les photons de particules
Étape 2: connexion matérielle:
La section de raccordement matériel explique essentiellement les connexions de câblage requises entre le capteur et le photon particulaire. Assurer des connexions correctes est la nécessité de base tout en travaillant sur n'importe quel système pour la sortie souhaitée. Ainsi, les connexions requises sont les suivantes:
Le HTS221 fonctionnera sur I2C. Voici l'exemple de schéma de câblage, montrant comment câbler chaque interface du capteur.
Prête à l'emploi, la carte est configurée pour une interface I2C, en tant que telle, nous vous recommandons d'utiliser cette connexion si vous êtes par ailleurs agnostique.
Tout ce dont vous avez besoin, c'est de quatre fils ! Seules quatre connexions sont nécessaires pour les broches Vcc, Gnd, SCL et SDA et celles-ci sont connectées à l'aide d'un câble I2C.
Ces connexions sont illustrées dans les images ci-dessus.
Étape 3: Code pour la mesure de l'humidité et de la température:
Commençons maintenant par le code des particules.
Lors de l'utilisation du module capteur avec la particule, nous incluons les bibliothèques application.h et spark_wiring_i2c.h. Les bibliothèques "application.h" et spark_wiring_i2c.h contiennent les fonctions qui facilitent la communication i2c entre le capteur et la particule.
Le code de particule complet est donné ci-dessous pour la commodité de l'utilisateur:
#comprendre
#comprendre
// L'adresse HTS221 I2C est 0x5F
#define Adr 0x5F
double humidité = 0,0;
double cTemp = 0,0;
double fTemp = 0,0;
int temp = 0;
void setup()
{
// Définir la variable
Particule.variable("i2cdevice", "HTS221");
Particle.variable("Humidité", humidité);
Particule.variable("cTemp", cTemp);
// Initialiser la communication I2C en tant que MASTER
Fil.begin();
// Initialiser la communication série, définir le débit en bauds = 9600
Serial.begin(9600);
// Démarrer la transmission I2C
Wire.beginTransmission(Adr);
// Sélection du registre de configuration moyenne
Wire.write(0x10);
// Échantillons moyens de température = 256, Échantillons moyens d'humidité = 512
Wire.write(0x1B);
// Arrêter la transmission I2C
Wire.endTransmission();
// Démarrer la transmission I2C
Wire.beginTransmission(Adr);
// Sélection du registre de contrôle1
Wire.write(0x20);
// Mise sous tension, mise à jour continue, taux de sortie des données = 1 Hz
Wire.write(0x85);
// Arrêter la transmission I2C
Wire.endTransmission();
retard (300);
}
boucle vide()
{
données int non signées[2];
val int non signé[4];
entier non signé H0, H1, H2, H3, T0, T1, T2, T3, brut;
// Valeurs de calibrage d'humidité
for(int i = 0; i < 2; i++)
{
// Démarrer la transmission I2C
Wire.beginTransmission(Adr);
// Envoi du registre de données
Wire.write((48 + i));
// Arrêter la transmission I2C
Wire.endTransmission();
// Demande 1 octet de données
Wire.requestFrom(Adr, 1);
// Lit 1 octet de données
if(Fil.disponible() == 1)
{
data = Wire.read();
}
}
// Convertir les données d'humidité
H0 = données[0] / 2;
H1 = données[1] / 2;
for(int i = 0; i < 2; i++)
{
// Démarrer la transmission I2C
Wire.beginTransmission(Adr);
// Envoi du registre de données
Wire.write((54 + i));
// Arrêter la transmission I2C
Wire.endTransmission();
// Demande 1 octet de données
Wire.requestFrom(Adr, 1);
// Lit 1 octet de données
if(Fil.disponible() == 1)
{
data = Wire.read();
}
}
// Convertir les données d'humidité
H2 = (données[1] * 256,0) + données[0];
for(int i = 0; i < 2; i++)
{
// Démarrer la transmission I2C
Wire.beginTransmission(Adr);
// Envoi du registre de données
Wire.write((58 + i));
// Arrêter la transmission I2C
Wire.endTransmission();
// Demande 1 octet de données
Wire.requestFrom(Adr, 1);
// Lit 1 octet de données
if(Fil.disponible() == 1)
{
data = Wire.read();
}
}
// Convertir les données d'humidité
H3 = (données[1] * 256,0) + données[0];
// Valeurs d'étalonnage de la température
// Démarrer la transmission I2C
Wire.beginTransmission(Adr);
// Envoi du registre de données
Wire.write(0x32);
// Arrêter la transmission I2C
Wire.endTransmission();
// Demande 1 octet de données
Wire.requestFrom(Adr, 1);
// Lit 1 octet de données
if(Fil.disponible() == 1)
{
T0 = Wire.read();
}
// Démarrer la transmission I2C
Wire.beginTransmission(Adr);
// Envoi du registre de données
Wire.write(0x33);
// Arrêter la transmission I2C
Wire.endTransmission();
// Demande 1 octet de données
Wire.requestFrom(Adr, 1);
// Lit 1 octet de données
if(Fil.disponible() == 1)
{
T1 = Wire.read();
}
// Démarrer la transmission I2C
Wire.beginTransmission(Adr);
// Envoi du registre de données
Wire.write(0x35);
// Arrêter la transmission I2C
Wire.endTransmission();
// Demande 1 octet de données
Wire.requestFrom(Adr, 1);
// Lit 1 octet de données
if(Fil.disponible() == 1)
{
raw = Wire.read();
}
brut = brut & 0x0F;
// Convertir les valeurs d'étalonnage de température en 10 bits
T0 = ((brut & 0x03) * 256) + T0;
T1 = ((brut & 0x0C) * 64) + T1;
for(int i = 0; i < 2; i++)
{
// Démarrer la transmission I2C
Wire.beginTransmission(Adr);
// Envoi du registre de données
Wire.write((60 + i));
// Arrêter la transmission I2C
Wire.endTransmission();
// Demande 1 octet de données
Wire.requestFrom(Adr, 1);
// Lit 1 octet de données
if(Fil.disponible() == 1)
{
data = Wire.read();
}
}
// Convertir les données
T2 = (données[1] * 256,0) + données[0];
for(int i = 0; i < 2; i++)
{
// Démarrer la transmission I2C
Wire.beginTransmission(Adr);
// Envoi du registre de données
Wire.write((62 + i));
// Arrêter la transmission I2C
Wire.endTransmission();
// Demande 1 octet de données
Wire.requestFrom(Adr, 1);
// Lit 1 octet de données
if(Fil.disponible() == 1)
{
data = Wire.read();
}
}
// Convertir les données
T3 = (données[1] * 256.0) + données[0];
// Démarrer la transmission I2C
Wire.beginTransmission(Adr);
// Envoi du registre de données
Wire.write(0x28 | 0x80);
// Arrêter la transmission I2C
Wire.endTransmission();
// Demande 4 octets de données
Wire.requestFrom(Adr, 4);
// Lecture de 4 octets de données
// humidité msb, humidité lsb, temp msb, temp lsb
if(Fil.disponible() == 4)
{
val[0] = Wire.read();
val[1] = Wire.read();
val[2] = Wire.read();
val[3] = Wire.read();
}
// Convertir les données
humidité = (val[1] * 256.0) + val[0];
humidité = ((1,0 * H1) - (1,0 * H0)) * (1,0 * humidité - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0);
temp = (val[3] * 256) + val[2]; cTemp = (((T1 - T0) / 8,0) * (temp - T2)) / (T3 - T2) + (T0 / 8,0);
fTemp = (cTemp * 1,8) + 32;
// Sortie des données vers le tableau de bord
Particle.publish("Humidité relative: ", String(humidité));
retard(1000);
Particle.publish("Température en Celsius: ", String(cTemp));
retard(1000);
Particle.publish("Température en Fahrenheit: ", String(fTemp));
retard(1000);
}
La fonction Particle.variable() crée les variables pour stocker la sortie du capteur et la fonction Particle.publish() affiche la sortie sur le tableau de bord du site.
La sortie du capteur est montrée dans l'image ci-dessus pour votre référence.
Étape 4: Candidatures:
HTS221 peut être utilisé dans divers produits de consommation tels que les humidificateurs d'air et les réfrigérateurs, etc. Ce capteur trouve également son application dans un domaine plus large, notamment la domotique intelligente, l'automatisation industrielle, les équipements respiratoires, le suivi des actifs et des marchandises.
Conseillé:
Mesure de l'humidité et de la température à l'aide de HTS221 et Arduino Nano : 4 étapes
Mesure de l'humidité et de la température à l'aide de HTS221 et Arduino Nano : HTS221 est un capteur numérique capacitif ultra compact pour l'humidité relative et la température. Il comprend un élément de détection et un circuit intégré spécifique à l'application de signal mixte (ASIC) pour fournir les informations de mesure via série numérique
Mesure de la température à l'aide du MCP9803 et du photon de particules : 4 étapes
Mesure de la température à l'aide du MCP9803 et du photon de particules : Le MCP9803 est un capteur de température de haute précision à 2 fils. Ils sont dotés de registres programmables par l'utilisateur qui facilitent les applications de détection de température. Ce capteur est adapté pour un système de surveillance de la température multizone hautement sophistiqué. Dans le
Mesure de la température à l'aide du TMP112 et du photon de particules : 4 étapes
Mesure de la température à l'aide du TMP112 et du photon de particules : module de capteur de température numérique I2C MINI de haute précision et de faible puissance TMP112. Le TMP112 est idéal pour les mesures de température étendues. Cet appareil offre une précision de ±0,5°C sans nécessiter d'étalonnage ou de conditionnement de signal de composant externe.I
Mesure de l'humidité et de la température à l'aide de HIH6130 et de photons de particules : 4 étapes
Mesure d'humidité et de température à l'aide de HIH6130 et de photons de particules : HIH6130 est un capteur d'humidité et de température avec sortie numérique. Ces capteurs offrent un niveau de précision de ±4% HR. Avec une stabilité à long terme de pointe, une véritable I2C numérique à compensation de température, une fiabilité de pointe, une efficacité énergétique
Mesure de la température et de l'humidité à l'aide de HDC1000 et de photons de particules : 4 étapes
Mesure de la température et de l'humidité à l'aide du HDC1000 et du photon de particules : Le HDC1000 est un capteur d'humidité numérique avec capteur de température intégré qui offre une excellente précision de mesure à très faible puissance. L'appareil mesure l'humidité sur la base d'un nouveau capteur capacitif. Les capteurs d'humidité et de température sont fac