Particle Photon - HDC1000 Temperatursensor Opplæring: 4 trinn
Particle Photon - HDC1000 Temperatursensor Opplæring: 4 trinn
Anonim
Image
Image

HDC1000 er en digital fuktighetssensor med integrert temperatursensor som gir utmerket målenøyaktighet ved svært lav effekt. Enheten måler fuktighet basert på en ny kapasitiv sensor. Fuktighets- og temperatursensorene er kalibrert på fabrikken. Det er funksjonelt innenfor hele -40 ° C til +125 ° C temperaturområde. Her er demonstrasjonen med partikkelfoton.

Trinn 1: Hva du trenger..

Hva trenger du..!!
Hva trenger du..!!

1. Partikkelfoton

2. HDC1000

3. I²C -kabel

4. I²C -skjold for partikkelfoton

Trinn 2: Tilkobling:

Forbindelse
Forbindelse
Forbindelse
Forbindelse
Forbindelse
Forbindelse
Forbindelse
Forbindelse

Ta et I2C -skjold for partikkelfoton og skyv det forsiktig over pinnene til partikkelfoton.

Koble deretter den ene enden av I2C -kabelen til HDC1000 -sensoren og den andre enden til I2C -skjoldet.

Tilkoblinger er vist på bildet ovenfor.

Trinn 3: Kode:

Kode
Kode

Partikkelkoden for HDC1000 kan lastes ned fra vårt GitHub-depot- Dcube Store.

Her er lenken til det samme:

github.com/DcubeTechVentures/HDC1000…

Databladet til HDC1000 finner du her:

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

Vi har brukt to biblioteker for partikkelkode, som er application.h og spark_wiring_i2c.h. Spark_wiring_i2c -biblioteket er nødvendig for å lette I2C -kommunikasjonen med sensoren.

Du kan også kopiere koden herfra, den er gitt som følger:

// Distribuert med en fri viljelisens.

// Bruk den slik du vil, profitt eller gratis, forutsatt at den passer inn i lisensene til de tilhørende verkene.

// HDC1000

// Denne koden er designet for å fungere med HDC1000_I2CS I2C Mini Module tilgjengelig i Dcube Store.

#inkludere

#inkludere

// HDC1000 I2C -adressen er 0x40 (64)

#define Addr 0x40

flyte cTemp = 0,0, fTemp = 0,0, fuktighet = 0,0;

int temp = 0, hum = 0;

ugyldig oppsett ()

{

// Angi variabel

Particle.variable ("i2cdevice", "HDC1000");

Partikkel.variabel ("fuktighet", fuktighet);

Particle.variable ("cTemp", cTemp);

// Initialiser I2C -kommunikasjon

Wire.begin ();

// Initialize Serial Communication, set baud rate = 9600

Serial.begin (9600);

// Start I2C -overføring

Wire.beginTransmission (Addr);

// Velg konfigurasjonsregister

Wire.write (0x02);

// Temperatur, fuktighet aktivert, oppløsning = 14-bits, varmeapparat på

Wire.write (0x30);

// Stopp I2C -overføring

Wire.endTransmission ();

forsinkelse (300);

}

hulrom ()

{

usignerte int -data [2];

// Start I2C -overføring

Wire.beginTransmission (Addr);

// Send kommando for temperaturmåling

Wire.write (0x00);

// Stopp I2C -overføring

Wire.endTransmission ();

forsinkelse (500);

// Be om 2 byte med data

Wire.requestFrom (Addr, 2);

// Les 2 byte med data

// temp msb, temp lsb

hvis (Wire.available () == 2)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

}

// Konverter dataene

temp = ((data [0] * 256) + data [1]);

cTemp = (temp / 65536,0) * 165,0 - 40;

fTemp = cTemp * 1,8 + 32;

// Start I2C -overføring

Wire.beginTransmission (Addr);

// Send kommando for fuktighetsmåling

Wire.write (0x01);

// Stopp I2C -overføring

Wire.endTransmission ();

forsinkelse (500);

// Be om 2 byte med data

Wire.requestFrom (Addr, 2);

// Les 2 byte med data

// temp msb, temp lsb

hvis (Wire.available () == 2)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

}

// Konverter dataene

hum = ((data [0] * 256) + data [1]);

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

// Utdata til dashbordet

Particle.publish ("Relativ fuktighet:", streng (fuktighet));

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

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

forsinkelse (1000);

}

Trinn 4: Søknader:

HDC1000 kan brukes i oppvarming, ventilasjon og klimaanlegg (HVAC), smarte termostater og rommonitorer. Denne sensoren finner også sin anvendelse i skrivere, håndholdte målere, medisinske enheter, Cargo Shipping samt Automotive Windshield Defog.