Partikel Photon - HDC1000 temperatur Sensor handledning (3 / 4 steg)
Steg 3: kod:
Partikel koden för HDC1000 kan hämtas från vår github repository-ControlEverythingCommunity
Här är länken för samma:
https://github.com/ControlEverythingCommunity/HDC1...
Databladet för HDC1000 kan hittas här:
http://www.ti.com.cn/CN/lit/DS/symlink/hdc1000.pdf
Vi har använt två bibliotek för partikel-koden, som är application.h och spark_wiring_i2c.h. Spark_wiring_i2c bibliotek krävs för att underlätta I2C kommunikationen med sensor.
Du kan också kopiera koden från här, det ges enligt följande:
Distribueras med en fri vilja licens.
Använda det något sätt du vill, vinst eller gratis, förutsatt att den passar i licenser av dess tillhörande arbeten.
HDC1000
Denna kod är utformad att fungera med HDC1000_I2CS I2C Mini modulen tillgänglig från ControlEverything.com.
https://www.controleverything.com/content/tempera...
#include < application.h >
#include < spark_wiring_i2c.h >
HDC1000 I2C adress är 0x40(64)
#define Addr 0x40
flyta cTemp = 0,0, fTemp = 0,0, fuktighet = 0,0;
int temp = 0, hum = 0;
void setup()
{
Variabeln
Particle.Variable ("i2cdevice", "HDC1000");
Particle.Variable ("fukt", fuktighet);
Particle.Variable ("cTemp", cTemp);
Initialisera I2C kommunikation
Wire.BEGIN();
Initialisera seriell kommunikation, ange baudvärde = 9600
Serial.BEGIN(9600);
Starta I2C-överföring
Wire.beginTransmission(Addr);
Välj konfigurationen register
Wire.write(0x02);
Temperatur, fuktighet aktiverad, resolultion = 14-bitar, värmare på
Wire.write(0x30);
Stoppa I2C sändningen
Wire.endTransmission();
Delay(300);
}
void loop()
{
unsigned int data [2].
Starta I2C-överföring
Wire.beginTransmission(Addr);
Skicka temp mätning kommando
Wire.write(0x00);
Stoppa I2C sändningen
Wire.endTransmission();
Delay(500);
Begäran 2 byte data
Wire.requestFrom (Addr, 2);
Läs 2 byte data
Temp msb, temp lsb
om (Wire.available() == 2)
{
data [0] = Wire.read();
data [1] = Wire.read();
}
Konvertera data
Temp = ((data [0] * 256) + data[1]);
cTemp = (temp / 65536.0) * 165.0-40;
fTemp = cTemp * 1,8 + 32.
Starta I2C-överföring
Wire.beginTransmission(Addr);
Skicka luftfuktighet mätning kommando
Wire.write(0x01);
Stoppa I2C sändningen
Wire.endTransmission();
Delay(500);
Begäran 2 byte data
Wire.requestFrom (Addr, 2);
Läs 2 byte data
Temp msb, temp lsb
om (Wire.available() == 2)
{
data [0] = Wire.read();
data [1] = Wire.read();
}
Konvertera data
hum = ((data [0] * 256) + data[1]);
fukt = (hum / 65536.0) * 100,0;
Utdata till dashboard
Particle.publish ("relativ luftfuktighet:", String(humidity));
Particle.publish ("temperaturen i Celsius:", String(cTemp));
Particle.publish ("temperaturen i Fahrenheit:", String(fTemp));
Delay(1000);
}