Particle Photon - HDC1000 Temperatursensor Handledning: 4 steg
Particle Photon - HDC1000 Temperatursensor Handledning: 4 steg
Anonim
Image
Image

HDC1000 är en digital fuktsensor med integrerad temperatursensor som ger utmärkt mätnoggrannhet vid mycket låg effekt. Enheten mäter luftfuktighet baserat på en ny kapacitiv sensor. Luft- och temperatursensorerna är kalibrerade från fabrik. Den är funktionell inom hela -40 ° C till +125 ° C temperaturintervall. Här är dess demonstration med partikelfoton.

Steg 1: Vad du behöver.. !

Vad du behöver..!!
Vad du behöver..!!

1. Partikelfoton

2. HDC1000

3. I²C -kabel

4. I²C -skärm för partikelfoton

Steg 2: Anslutning:

Förbindelse
Förbindelse
Förbindelse
Förbindelse
Förbindelse
Förbindelse
Förbindelse
Förbindelse

Ta en I2C -skärm för partikelfoton och tryck försiktigt över stiften på partikelfoton.

Anslut sedan den ena änden av I2C -kabeln till HDC1000 -sensorn och den andra änden till I2C -skärmen.

Anslutningar visas på bilden ovan.

Steg 3: Kod:

Koda
Koda

Partikelkoden för HDC1000 kan laddas ner från vårt GitHub-förråd- Dcube Store.

Här är länken till samma:

github.com/DcubeTechVentures/HDC1000…

Databladet för HDC1000 hittar du här:

www.ti.com.cn/cn/lit/ds/symlink/hdc1000.pdf

Vi har använt två bibliotek för partikelkod, som är application.h och spark_wiring_i2c.h. Spark_wiring_i2c -biblioteket krävs för att underlätta I2C -kommunikationen med sensorn.

Du kan också kopiera koden härifrån, den ges enligt följande:

// Distribueras med en fri vilja licens.

// Använd den hur du vill, vinst eller gratis, förutsatt att den passar i licensen för dess associerade verk.

// HDC1000

// Denna kod är utformad för att fungera med HDC1000_I2CS I2C Mini -modulen som finns i Dcube Store.

#omfatta

#omfatta

// HDC1000 I2C -adressen är 0x40 (64)

#define Addr 0x40

float cTemp = 0,0, fTemp = 0,0, fuktighet = 0,0;

int temp = 0, hum = 0;

void setup ()

{

// Ange variabel

Partikel.variabel ("i2cdevice", "HDC1000");

Partikelvariabel ("fuktighet", fuktighet);

Particle.variable ("cTemp", cTemp);

// Initiera I2C -kommunikation

Wire.begin ();

// Initiera seriell kommunikation, ange överföringshastighet = 9600

Serial.begin (9600);

// Starta I2C -sändning

Wire.beginTransmission (Addr);

// Välj konfigurationsregister

Wire.write (0x02);

// Temperatur, fuktighet aktiverad, upplösning = 14-bitars, värmare på

Wire.write (0x30);

// Stoppa I2C -överföring

Wire.endTransmission ();

fördröjning (300);

}

void loop ()

{

osignerade int -data [2];

// Starta I2C -sändning

Wire.beginTransmission (Addr);

// Skicka kommando för tempmätning

Wire.write (0x00);

// Stoppa I2C -överföring

Wire.endTransmission ();

fördröjning (500);

// Begär 2 byte med data

Wire.requestFrom (Addr, 2);

// Läs 2 byte med 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 -sändning

Wire.beginTransmission (Addr);

// Skicka kommando för fuktmätning

Wire.write (0x01);

// Stoppa I2C -överföring

Wire.endTransmission ();

fördröjning (500);

// Begär 2 byte med data

Wire.requestFrom (Addr, 2);

// Läs 2 byte med 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]);

luftfuktighet = (hum / 65536,0) * 100,0;

// Utdata till instrumentpanelen

Particle.publish ("Relativ luftfuktighet:", Sträng (fuktighet));

Particle.publish ("Temperatur i Celsius:", String (cTemp));

Particle.publish ("Temperatur i Fahrenheit:", String (fTemp));

fördröjning (1000);

}

Steg 4: Ansökningar:

HDC1000 kan användas för uppvärmning, ventilation och luftkonditionering (HVAC), smarta termostater och rumsmonitorer. Denna sensor hittar också sin tillämpning i skrivare, handhållna mätare, medicintekniska produkter, frakt och fordonsvindrutor.