Innholdsfortegnelse:

Måling av temperatur og fuktighet ved bruk av HDC1000 og partikkelfoton: 4 trinn
Måling av temperatur og fuktighet ved bruk av HDC1000 og partikkelfoton: 4 trinn

Video: Måling av temperatur og fuktighet ved bruk av HDC1000 og partikkelfoton: 4 trinn

Video: Måling av temperatur og fuktighet ved bruk av HDC1000 og partikkelfoton: 4 trinn
Video: Zigbee датчик освещенности, температуры и влажности с экраном на электронных чернилах Moes 2024, November
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.

I denne opplæringen har grensesnittet mellom HDC1000 -sensormodulen og partikkelfoton blitt illustrert. For å lese temperatur- og fuktighetsverdiene har vi brukt partikler med en I2c -adapter. Denne I2C -adapteren gjør tilkoblingen til sensormodulen enkel og mer pålitelig.

Trinn 1: Nødvendig maskinvare:

Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves

Materialene vi trenger for å nå målet vårt inkluderer følgende maskinvarekomponenter:

1. HDC1000

2. Partikkelfoton

3. I2C -kabel

4. I2C -skjerm for partikkelfoton

Trinn 2: Maskinvaretilkobling:

Maskinvaretilkobling
Maskinvaretilkobling
Maskinvaretilkobling
Maskinvaretilkobling

Maskinvarekoblingsdelen forklarer i utgangspunktet ledningsforbindelsene som kreves mellom sensoren og partikkelfotonet. Å sikre riktige tilkoblinger er den grunnleggende nødvendigheten mens du arbeider på et hvilket som helst system for ønsket utgang. Så de nødvendige tilkoblingene er som følger:

HDC1000 fungerer over I2C. Her er eksempel på koblingsskjema, som viser hvordan du kobler til hvert grensesnitt på sensoren.

Uten boksen er brettet konfigurert for et I2C-grensesnitt, derfor anbefaler vi å bruke denne tilkoblingen hvis du ellers er agnostiker.

Alt du trenger er fire ledninger! Bare fire tilkoblinger kreves Vcc, Gnd, SCL og SDA -pinner, og disse er koblet til ved hjelp av I2C -kabel.

Disse sammenhengene er vist på bildene ovenfor.

Trinn 3: Kode for måling av temperatur og fuktighet:

Kode for måling av temperatur og fuktighet
Kode for måling av temperatur og fuktighet

La oss begynne med partikkelkoden nå.

Mens vi bruker sensormodulen med partikkelen, inkluderer vi application.h og spark_wiring_i2c.h biblioteket. "application.h" og spark_wiring_i2c.h biblioteket inneholder funksjonene som letter i2c -kommunikasjonen mellom sensoren og partikkelen.

Hele partikkelkoden er gitt nedenfor for brukerens bekvemmelighet:

#inkludere

#inkludere

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

#define Addr 0x40

dobbel 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));

forsinkelse (1000);

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

forsinkelse (1000);

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

forsinkelse (1000);

}

Particle.variable () -funksjonen oppretter variablene for å lagre sensorens utgang og Particle.publish () -funksjonen viser utgangen på dashbordet til nettstedet.

Sensorutgangen er vist på bildet ovenfor for din referanse.

Trinn 4: Søknader:

Applikasjoner
Applikasjoner

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.

Anbefalt: