Table des matières:
Vidéo: Arduino Nano - Tutoriel sur le capteur d'humidité relative et de température HTS221 : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
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. Voici la démonstration avec arduino nano.
Étape 1: Ce dont vous avez besoin.
1. Arduino Nano
2. HTS221
3. Câble I²C
4. Bouclier I²C pour Arduino Nano
Étape 2: Connexions:
Prenez un shield I2C pour Arduino Nano et poussez-le doucement sur les broches de Nano.
Connectez ensuite l'une des extrémités du câble I2C au capteur HTS221 et l'autre extrémité au blindage I2C.
Les connexions sont montrées dans l'image ci-dessus.
Étape 3: Coder:
Le code arduino pour HTS221 peut être téléchargé à partir de notre référentiel github - Communauté DCUBE.
Voici le lien pour le même:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
Nous incluons la bibliothèque Wire.h pour faciliter la communication I2c du capteur avec la carte Arduino.
Vous pouvez également copier le code d'ici, il est donné comme suit:
// Distribué avec une licence libre-arbitre.
// Utilisez-le comme vous le souhaitez, à profit ou gratuitement, à condition qu'il rentre dans les licences de ses œuvres associées.
// HTS221
// Ce code est conçu pour fonctionner avec le mini module HTS221_I2CS I2C
#comprendre
// L'adresse HTS221 I2C est 0x5F
#define Adr 0x5F
void setup()
{
// 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é flottante = (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);
int temp = (val[3] * 256) + val[2];
float cTemp = (((T1 - T0) / 8,0) * (temp - T2)) / (T3 - T2) + (T0 / 8,0);
float fTemp = (cTemp * 1,8) + 32;
// Sortie des données vers le moniteur série
Serial.print ("Humidité relative:");
Serial.print(humidité);
Serial.println ("% RH");
Serial.print("Température en Celsius: ");
Serial.print(cTemp); Serial.println("C");
Serial.print("Température en Fahrenheit: ");
Serial.print(fTemp);
Serial.println(" F");
retard (500);
}
É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é:
Capteur de température et d'humidité à énergie solaire Arduino en tant que capteur Oregon 433 mhz : 6 étapes
Capteur de température et d'humidité à énergie solaire Arduino en tant que capteur Oregon à 433 mhz : il s'agit de la construction d'un capteur de température et d'humidité à énergie solaire. Le capteur émule un capteur Oregon de 433 mhz et est visible dans la passerelle Telldus Net. Capteur de mouvement à énergie solaire" d'Ebay. Assurez-vous qu'il est écrit 3.7v pâte
ESP8266 Surveillance de la température Nodemcu à l'aide de DHT11 sur un serveur Web local - Obtenez la température et l'humidité de la pièce sur votre navigateur : 6 étapes
ESP8266 Surveillance de la température Nodemcu à l'aide de DHT11 sur un serveur Web local | Obtenez la température et l'humidité de la pièce sur votre navigateur : Salut les gars, aujourd'hui, nous allons faire une analyse de l'humidité et de l'humidité; système de surveillance de la température utilisant ESP 8266 NODEMCU & Capteur de température DHT11. La température et l'humidité seront obtenues à partir du capteur DHT11 et de l'amp; il peut être vu sur un navigateur quelle page Web sera gérée
Comment utiliser le capteur de température DHT11 avec Arduino et la température d'impression Chaleur et humidité : 5 étapes
Comment utiliser le capteur de température DHT11 avec Arduino et la température d'impression Chaleur et humidité : Le capteur DHT11 est utilisé pour mesurer la température et l'humidité. Ce sont des amateurs d'électronique très populaires. Le capteur d'humidité et de température DHT11 permet d'ajouter très facilement des données d'humidité et de température à vos projets électroniques de bricolage. C'est par
Thermomètre avec couleur relative à la température sur un écran TFT 2" et plusieurs capteurs : 5 étapes
Thermomètre avec température relative couleur sur un écran TFT 2" et plusieurs capteurs : j'ai fait un affichage montrant les mesures de plusieurs capteurs de température. Ce qui est cool, c'est que la couleur des valeurs change avec la température :> 75 degrés Celsius = ROUGE> 60 > 75 = ORANGE> 40 < 60 = JAUNE> 30 < 40
Enregistreur de température, d'humidité relative et de pression atmosphérique utilisant Raspberry Pi et TE Connectivity MS8607-02BA01 : 22 étapes (avec photos)
Enregistreur de température, d'humidité relative et de pression atmosphérique à l'aide de Raspberry Pi et de la connectivité TE MS8607-02BA01 : Introduction : Dans ce projet, je vais vous montrer comment configurer par étape un système d'enregistrement de la température, de l'humidité et de la pression atmosphérique. Ce projet est basé sur la puce de capteur environnemental Raspberry Pi 3 Model B et TE Connectivity MS8607-02BA