Étape 3: Code :
Le code de particules de HDC1000 peut être téléchargé depuis notre dépôt github-ControlEverythingCommunity
Voici le lien pour la même chose :
https://github.com/ControlEverythingCommunity/hdc1...
Le datasheet du HDC1000 peut être trouvé ici :
http://www.TI.com.CN/CN/lit/DS/symlink/HDC1000.pdf
Nous avons utilisé les deux bibliothèques de code de particules, qui sont application.h et spark_wiring_i2c.h. Spark_wiring_i2c bibliothèque est nécessaire pour faciliter la communication I2C avec le capteur.
Vous pouvez également copier le code d’ici, il est affecté comme suit :
Distribué avec une licence libre-arbitre.
Utilisez-le toute façon vous voulez, Profitez ou libre, autant il s’intègre dans les licences de ses ouvrages connexes.
HDC1000
Copiez le code suivant est conçu pour fonctionner avec le Module HDC1000_I2CS I2C Mini, disponible de ControlEverything.com.
https://www.controleverything.com/content/tempera...
#include < application.h >
#include < spark_wiring_i2c.h >
I2C HDC1000 adresse est 0x40(64)
#define Addr 0 x 40
flotteur MTET = 0. 0, fTemp = 0,0, humidité = 0.0 ;
int temp = 0, hum = 0 ;
void setup()
{
Définissez la variable
Particle.variable ("i2cdevice", « HDC1000 ») ;
Particle.variable (« l’humidité », humidité) ;
Particle.variable ("PMTET", MTET) ;
Initialiser la communication I2C
Wire.Begin() ;
Initialiser la Communication série, réglée en bauds = 9600
Serial.Begin(9600) ;
Démarrer la Transmission I2C
Wire.beginTransmission(Addr) ;
Sélectionnez configuration de Registre
Wire.Write(0x02) ;
Température, humidité activé, Office = 14 bits, appareil de chauffage sur
Wire.Write(0x30) ;
Interrompre la Transmission I2C
Wire.endTransmission() ;
Delay(300) ;
}
void loop()
{
unsigned int données [2] ;
Démarrer la Transmission I2C
Wire.beginTransmission(Addr) ;
Envoyer commande mesure temporaire
Wire.Write(0x00) ;
Interrompre la Transmission I2C
Wire.endTransmission() ;
Delay(500) ;
Demande 2 octets de données
Wire.requestFrom (Addr, 2) ;
Lire les 2 octets de données
msb Temp, temp lsb
Si (Wire.available() == 2)
{
Data [0] = Wire.read() ;
données [1] = Wire.read() ;
}
Convertir les données
Temp = ((data [0] * 256) + data[1]) ;
MTET = (temp / 65536.0) * 165,0-40 ;
fTemp = MTET * 1.8 + 32 ;
Démarrer la Transmission I2C
Wire.beginTransmission(Addr) ;
Envoyer la commande de mesure d’humidité
Wire.Write(0x01) ;
Interrompre la Transmission I2C
Wire.endTransmission() ;
Delay(500) ;
Demande 2 octets de données
Wire.requestFrom (Addr, 2) ;
Lire les 2 octets de données
msb Temp, temp lsb
Si (Wire.available() == 2)
{
Data [0] = Wire.read() ;
données [1] = Wire.read() ;
}
Convertir les données
Hum = ((data [0] * 256) + data[1]) ;
humidité = (hum / 65536.0) * 100,0 ;
Données de sortie au tableau de bord
Particle.Publish ("Humidité Relative:", String(humidity)) ;
Particle.Publish ("température en degrés Celsius:", String(cTemp)) ;
Particle.Publish ("température en degrés Fahrenheit:", String(fTemp)) ;
Delay(1000) ;
}