Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
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 étalonnés en usine. Il est fonctionnel dans toute la plage de température de -40°C à +125°C. Voici sa démonstration avec le photon de particule.
Étape 1: Ce dont vous avez besoin.
1. Photon de particule
2. HDC1000
3. Câble I²C
4. Bouclier I²C pour les photons de particules
Étape 2: Connexion:
Prenez un bouclier I2C pour le photon de particule et poussez-le doucement sur les broches du photon de particule.
Connectez ensuite l'une des extrémités du câble I2C au capteur HDC1000 et l'autre extrémité au blindage I2C.
Les connexions sont montrées dans l'image ci-dessus.
Étape 3: Coder:
Le code de particule pour HDC1000 peut être téléchargé à partir de notre référentiel GitHub - Dcube Store.
Voici le lien pour le même:
github.com/DcubeTechVentures/HDC1000…
La fiche technique du HDC1000 se trouve ici:
www.ti.com.cn/cn/lit/ds/symlink/hdc1000.pdf
Nous avons utilisé deux bibliothèques pour le code particulaire, qui sont application.h et spark_wiring_i2c.h. La bibliothèque Spark_wiring_i2c est requise pour faciliter la communication I2C avec le capteur.
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.
// HDC1000
// Ce code est conçu pour fonctionner avec le mini module HDC1000_I2CS I2C disponible dans Dcube Store.
#comprendre
#comprendre
// L'adresse I2C HDC1000 est 0x40(64)
#define Adr 0x40
float cTemp = 0,0, fTemp = 0,0, humidité = 0,0;
int temp = 0, hum = 0;
void setup()
{
// Définir la variable
Particule.variable("i2cdevice", "HDC1000");
Particle.variable("humidité", humidité);
Particule.variable("cTemp", cTemp);
// Initialisation de la communication I2C
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
Wire.write(0x02);
// Température, humidité activée, résolution = 14 bits, chauffage allumé
Wire.write(0x30);
// Arrêter la transmission I2C
Wire.endTransmission();
retard (300);
}
boucle vide()
{
données int non signées[2];
// Démarrer la transmission I2C
Wire.beginTransmission(Adr);
// Envoie la commande de mesure de température
Wire.write(0x00);
// Arrêter la transmission I2C
Wire.endTransmission();
retard (500);
// Demande 2 octets de données
Wire.requestFrom(Adr, 2);
// Lecture de 2 octets de données
// temp msb, temp lsb
si (Fil.disponible() == 2)
{
data[0] = Wire.read();
données[1] = Wire.read();
}
// Convertir les données
temp = ((données[0] * 256) + données[1]);
cTemp = (temp / 65536.0) * 165,0 - 40;
fTemp = cTemp * 1,8 + 32;
// Démarrer la transmission I2C
Wire.beginTransmission(Adr);
// Envoi de la commande de mesure d'humidité
Wire.write(0x01);
// Arrêter la transmission I2C
Wire.endTransmission();
retard (500);
// Demande 2 octets de données
Wire.requestFrom(Adr, 2);
// Lecture de 2 octets de données
// temp msb, temp lsb
si (Fil.disponible() == 2)
{
data[0] = Wire.read();
données[1] = Wire.read();
}
// Convertir les données
hum = ((données[0] * 256) + données[1]);
humidité = (hum / 65536,0) * 100,0;
// Sortie des données vers le tableau de bord
Particle.publish("Humidité relative: ", String(humidité));
Particle.publish("Température en Celsius: ", String(cTemp));
Particle.publish("Température en Fahrenheit: ", String(fTemp));
retard(1000);
}
Étape 4: Candidatures:
HDC1000 peut être utilisé dans le chauffage, la ventilation et la climatisation (CVC), les thermostats intelligents et les moniteurs de pièce. Ce capteur trouve également son application dans les imprimantes, les compteurs portables, les dispositifs médicaux, l'expédition de fret ainsi que le désembuage de pare-brise automobile.