Stap 3: Code:
De deeltjes code voor HDC1000 kan worden gedownload van onze github archief-ControlEverythingCommunity
Hier is de link voor hetzelfde:
https://github.com/ControlEverythingCommunity/HDC1...
Het gegevensblad van HDC1000 kan hier worden gevonden:
http://www.ti.com.CN/CN/lit/DS/symlink/hdc1000.PDF
Wij hebben twee bibliotheken gebruikt voor particle code, die application.h en spark_wiring_i2c.h. Spark_wiring_i2c bibliotheek is vereist om de I2C communicatie met de sensor.
U kunt ook de code kopiëren vanaf hier, het wordt als volgt gegeven:
Gedistribueerd met een licentie van de vrije wil.
Gebruik het elke manier wilt u, op de winst of het gratis, mits het past in de licenties van de bijbehorende werken.
HDC1000
Deze code is ontworpen om te werken met de HDC1000_I2CS I2C Mini Module beschikbaar vanaf ControlEverything.com.
https://www.controleverything.com/content/tempera...
#include < application.h >
#include < spark_wiring_i2c.h >
HDC1000 I2C adres is 0x40(64)
#define Addr 0x40
zweven cTemp = 0,0, fTemp = 0,0, vochtigheid = 0,0;
int. temp = 0, hum = 0;
VOID Setup
{
Variabele instellen
Particle.variable ("i2cdevice", "HDC1000");
Particle.variable ("vochtigheid", vochtigheid);
Particle.variable ("cTemp", cTemp);
Initialiseren van de I2C communicatie
Wire.begin();
Initialiseren van seriële communicatie, set baud-rate = 9600
Serial.begin(9600);
I2C-overdracht starten
Wire.beginTransmission(Addr);
Selecteer Configuratie register
Wire.write(0x02);
Temperatuur, vochtigheid ingeschakeld, resolultion = 14-bits, kachel op
Wire.write(0x30);
Stoppen met I2C transmissie
Wire.endTransmission();
delay(300);
}
void loop
{
unsigned int gegevens [2];
I2C-overdracht starten
Wire.beginTransmission(Addr);
Temp meting opdracht verzenden
Wire.write(0x00);
Stoppen met I2C transmissie
Wire.endTransmission();
delay(500);
2 bytes aan gegevens aanvragen
Wire.requestFrom (Addr, 2);
Lees 2 bytes aan gegevens
Temp msb, temp lsb
Als (Wire.available() == 2)
{
gegevens [0] = Wire.read();
gegevens [1] = Wire.read();
}
De gegevens converteren
Temp = ((gegevens [0] * 256) + data[1]);
cTemp = (temp / 65536.0) * 165,0-40;
fTemp = cTemp * 1.8 + 32;
I2C-overdracht starten
Wire.beginTransmission(Addr);
Vochtigheid meting opdracht verzenden
Wire.write(0x01);
Stoppen met I2C transmissie
Wire.endTransmission();
delay(500);
2 bytes aan gegevens aanvragen
Wire.requestFrom (Addr, 2);
Lees 2 bytes aan gegevens
Temp msb, temp lsb
Als (Wire.available() == 2)
{
gegevens [0] = Wire.read();
gegevens [1] = Wire.read();
}
De gegevens converteren
Hum = ((gegevens [0] * 256) + data[1]);
vochtigheid = (brom / 65536.0) * 100.0;
Uitvoergegevens naar dashboard
Particle.publish ("relatieve vochtigheid:", String(humidity));
Particle.publish ("temperatuur in Celsius:", String(cTemp));
Particle.publish ("temperatuur in Fahrenheit:", String(fTemp));
delay(1000);
}