Cuprins:

Măsurarea temperaturii și umidității folosind HDC1000 și fotonul de particule: 4 pași
Măsurarea temperaturii și umidității folosind HDC1000 și fotonul de particule: 4 pași

Video: Măsurarea temperaturii și umidității folosind HDC1000 și fotonul de particule: 4 pași

Video: Măsurarea temperaturii și umidității folosind HDC1000 și fotonul de particule: 4 pași
Video: Masurarea temperaturii si umiditatii cu DHT11 2024, Iulie
Anonim
Image
Image

HDC1000 este un senzor digital de umiditate cu senzor de temperatură integrat care oferă o precizie excelentă de măsurare la o putere foarte mică. Dispozitivul măsoară umiditatea pe baza unui nou senzor capacitiv. Senzorii de umiditate și temperatură sunt calibrați din fabrică. Este funcțional în intervalul de temperatură între -40 ° C și + 125 ° C.

În acest tutorial a fost ilustrată interfața modulului senzor HDC1000 cu fotonul particulelor. Pentru a citi valorile de temperatură și umiditate, am folosit particule cu un adaptor I2c. Acest adaptor I2C face conexiunea la modulul senzor ușoară și mai fiabilă.

Pasul 1: Hardware necesar:

Hardware necesar
Hardware necesar
Hardware necesar
Hardware necesar
Hardware necesar
Hardware necesar

Materialele de care avem nevoie pentru îndeplinirea obiectivului nostru includ următoarele componente hardware:

1. HDC1000

2. Fotonul particulelor

3. Cablu I2C

4. Scutul I2C pentru fotonul particulelor

Pasul 2: conectare hardware:

Conectare hardware
Conectare hardware
Conectare hardware
Conectare hardware

Secțiunea de conectare hardware explică practic conexiunile de cablare necesare între senzor și fotonul particulelor. Asigurarea conexiunilor corecte este necesitatea de bază în timp ce lucrați la orice sistem pentru ieșirea dorită. Deci, conexiunile necesare sunt următoarele:

HDC1000 va funcționa peste I2C. Iată exemplul schemei de cablare, care demonstrează cum se conectează fiecare interfață a senzorului.

Out-of-the-box, placa este configurată pentru o interfață I2C, ca atare, vă recomandăm să utilizați această conexiune dacă sunteți altfel agnostic.

Nu ai nevoie decât de patru fire! Sunt necesare doar patru conexiuni Vcc, Gnd, SCL și pinii SDA și acestea sunt conectate cu ajutorul cablului I2C.

Aceste conexiuni sunt prezentate în imaginile de mai sus.

Pasul 3: Cod pentru măsurarea temperaturii și umidității:

Cod pentru măsurarea temperaturii și umidității
Cod pentru măsurarea temperaturii și umidității

Să începem cu codul de particule acum.

În timp ce utilizați modulul senzorului cu particula, includem biblioteca application.h și spark_wiring_i2c.h. Biblioteca „application.h” și spark_wiring_i2c.h conține funcțiile care facilitează comunicarea i2c între senzor și particulă.

Întregul cod de particule este dat mai jos pentru confortul utilizatorului:

#include

#include

// Adresa HDC1000 I2C este 0x40 (64)

#define Addr 0x40

cTemp dublu = 0,0, fTemp = 0,0, umiditate = 0,0;

int temp = 0, hum = 0;

configurare nulă ()

{

// Setați variabila

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

Particle.variable ("umiditate", umiditate);

Particle.variable ("cTemp", cTemp);

// Inițializați comunicarea I2C

Wire.begin ();

// Inițializați comunicarea în serie, setați baud rate = 9600

Serial.begin (9600);

// Porniți transmisia I2C

Wire.beginTransmission (Addr);

// Selectați registrul de configurare

Wire.write (0x02);

// Temperatură, umiditate activată, rezoluție = 14 biți, încălzitor activat

Wire.write (0x30);

// Opriți transmisia I2C

Wire.endTransmission ();

întârziere (300);

}

bucla nulă ()

{

date int nesemnate [2];

// Porniți transmisia I2C

Wire.beginTransmission (Addr);

// Trimiteți comanda de măsurare a temperaturii

Wire.write (0x00);

// Opriți transmisia I2C

Wire.endTransmission ();

întârziere (500);

// Solicitați 2 octeți de date

Wire.requestFrom (Addr, 2);

// Citiți 2 octeți de date

// temp msb, temp lsb

if (Wire.available () == 2)

{

date [0] = Wire.read ();

date [1] = Wire.read ();

}

// Conversia datelor

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

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

fTemp = cTemp * 1,8 + 32;

// Porniți transmisia I2C

Wire.beginTransmission (Addr);

// Trimiteți comanda de măsurare a umidității

Wire.write (0x01);

// Opriți transmisia I2C

Wire.endTransmission ();

întârziere (500);

// Solicitați 2 octeți de date

Wire.requestFrom (Addr, 2);

// Citiți 2 octeți de date

// temp msb, temp lsb

if (Wire.available () == 2)

{

date [0] = Wire.read ();

date [1] = Wire.read ();

}

// Conversia datelor

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

umiditate = (zumzet / 65536.0) * 100.0;

// Ieșire date în tabloul de bord

Particle.publish ("Umiditate relativă:", Șir (umiditate));

întârziere (1000);

Particle.publish ("Temperatura în grade Celsius:", Șir (cTemp));

întârziere (1000);

Particle.publish ("Temperatura în Fahrenheit:", String (fTemp));

întârziere (1000);

}

Funcția Particle.variable () creează variabilele pentru a stoca ieșirea senzorului și funcția Particle.publish () afișează ieșirea pe tabloul de bord al site-ului.

Ieșirea senzorului este prezentată în imaginea de mai sus pentru referință.

Pasul 4: Aplicații:

Aplicații
Aplicații

HDC1000 poate fi utilizat la încălzire, ventilație și aer condiționat (HVAC), termostate inteligente și monitoare de cameră. Acest senzor își găsește aplicația și în imprimante, contoare portabile, dispozitive medicale, transport marfă, precum și dezaburirea parbrizului auto.

Recomandat: