Orodha ya maudhui:

Arduino Nano - HTS221 Unyevu wa Jamaa na Mafunzo ya Sensorer ya Joto: Hatua 4
Arduino Nano - HTS221 Unyevu wa Jamaa na Mafunzo ya Sensorer ya Joto: Hatua 4

Video: Arduino Nano - HTS221 Unyevu wa Jamaa na Mafunzo ya Sensorer ya Joto: Hatua 4

Video: Arduino Nano - HTS221 Unyevu wa Jamaa na Mafunzo ya Sensorer ya Joto: Hatua 4
Video: Lesson 45: Measure temperature and Pressure with BME280 display on LCD1602 and LCD2004 with Arduino 2024, Novemba
Anonim
Image
Image

HTS221 ni sensorer ya hali ya juu ya hali ya hewa yenye unyevu na joto. Inajumuisha kipengee cha kuhisi na matumizi ya ishara iliyochanganywa mzunguko maalum uliounganishwa (ASIC) kutoa habari ya kipimo kupitia njia kuu za dijiti. Imejumuishwa na huduma nyingi hii ni moja ya sensorer zinazofaa zaidi kwa vipimo muhimu vya unyevu na joto. Hapa kuna maonyesho na arduino nano.

Hatua ya 1: Unachohitaji.. !

Unachohitaji..!!
Unachohitaji..!!

1. Arduino Nano

2. HTS221

3. I²C Cable

4. I²C Shield kwa Arduino Nano

Hatua ya 2: Miunganisho:

Miunganisho
Miunganisho
Miunganisho
Miunganisho
Miunganisho
Miunganisho
Miunganisho
Miunganisho

Chukua ngao ya I2C kwa Arduino Nano na usukume kwa upole juu ya pini za Nano.

Kisha unganisha mwisho mmoja wa kebo ya I2C kwenye sensorer ya HTS221 na mwisho mwingine kwenye ngao ya I2C.

Uunganisho umeonyeshwa kwenye picha hapo juu.

Hatua ya 3: Nambari:

Nambari
Nambari

Nambari ya arduino ya HTS221 inaweza kupakuliwa kutoka kwa hazina yetu ya github- Jumuiya ya DCUBE.

Hapa kuna kiunga cha hiyo hiyo:

github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino

Tunajumuisha Wire.h kuwezesha mawasiliano ya I2c ya sensa na bodi ya Arduino.

Unaweza pia kunakili nambari kutoka hapa, imepewa kama ifuatavyo:

// Imesambazwa na leseni ya hiari.

// Itumie kwa njia yoyote unayotaka, faida au bure, mradi inafaa katika leseni za kazi zake zinazohusiana.

// HTS221

// Nambari hii imeundwa kufanya kazi na Moduli ya Mini HTS221_I2CS I2C

# pamoja

// Anwani ya HTS221 I2C ni 0x5F

#fafanua Addr 0x5F

kuanzisha batili ()

{

// Anzisha mawasiliano ya I2C kama MASTER

Wire.begin ();

// Anzisha mawasiliano ya serial, weka kiwango cha baud = 9600

Kuanzia Serial (9600);

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya usanidi wastani

Andika waya (0x10);

// Sampuli za wastani wa joto = 256, Sampuli za wastani wa unyevu = 512

Andika waya (0x1B);

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya kudhibiti1

Andika waya (0x20);

// Power ON, Kuendelea kusasisha, kiwango cha pato la data = 1 Hz

Andika waya (0x85);

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

kuchelewesha (300);

}

kitanzi batili ()

{

data isiyowekwa saini [2];

unsigned int val [4];

unsigned int H0, H1, H2, H3, T0, T1, T2, T3, mbichi;

// Thamani za upunguzaji wa unyevu

kwa (int i = 0; i <2; i ++)

{

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Tuma rejista ya data

Andika waya ((48 + i));

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba 1 byte ya data

Ombi la Wire. Toka (Addr, 1);

// Soma 1 ka data

ikiwa (Waya haipatikani () == 1)

{

data = soma kwa waya ();

}

}

// Badilisha data ya Unyevu

H0 = data [0] / 2;

H1 = data [1] / 2;

kwa (int i = 0; i <2; i ++)

{

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Tuma rejista ya data

Andika waya ((54 + i));

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba 1 byte ya data

Ombi la Wire. Toka (Addr, 1);

// Soma 1 ka data

ikiwa (Waya haipatikani () == 1)

{

data = soma kwa waya ();

}

}

// Badilisha data ya Unyevu

H2 = (data [1] * 256.0) + data [0];

kwa (int i = 0; i <2; i ++)

{

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Tuma rejista ya data

Andika waya ((58 + i));

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba 1 byte ya data

Ombi la Wire. Toka (Addr, 1);

// Soma 1 ka data

ikiwa (Waya haipatikani () == 1)

{

data = soma kwa waya ();

}

}

// Badilisha data ya Unyevu

H3 = (data [1] * 256.0) + data [0];

// Thamani za upigaji joto

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Tuma rejista ya data

Andika waya (0x32);

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba 1 byte ya data

Ombi la Wire. Toka (Addr, 1);

// Soma 1 ka data

ikiwa (Waya haipatikani () == 1)

{

T0 = soma kwa waya ();

}

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Tuma rejista ya data

Andika waya (0x33);

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba 1 byte ya data

Ombi la Wire. Toka (Addr, 1);

// Soma 1 ka data

ikiwa (Waya haipatikani () == 1)

{

T1 = soma kwa waya ();

}

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Tuma rejista ya data

Andika waya (0x35);

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba 1 byte ya data

Ombi la Wire. Toka (Addr, 1);

// Soma 1 ka data

ikiwa (Waya haipatikani () == 1)

{

ghafi = waya.soma ();

}

mbichi = mbichi & 0x0F;

// Badilisha viwango vya joto vya joto kuwa 10-bits

T0 = ((mbichi & 0x03) * 256) + T0;

T1 = ((mbichi & 0x0C) * 64) + T1;

kwa (int i = 0; i <2; i ++)

{

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Tuma rejista ya data

Andika waya ((60 + i));

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba 1 byte ya data

Ombi la Wire. Toka (Addr, 1);

// Soma 1 ka data

ikiwa (Waya haipatikani () == 1)

{

data = soma kwa waya ();

}

}

// Badilisha data

T2 = (data [1] * 256.0) + data [0];

kwa (int i = 0; i <2; i ++)

{

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Tuma rejista ya data

Andika waya ((62 + i));

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba 1 byte ya data

Ombi la Wire. Toka (Addr, 1);

// Soma 1 ka data

ikiwa (Waya haipatikani () == 1)

{

data = soma kwa waya ();

}

}

// Badilisha data

T3 = (data [1] * 256.0) + data [0];

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Tuma rejista ya data

Andika waya (0x28 | 0x80);

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba ka 4 za data

Ombi la Wire. Toka (Addr, 4);

// Soma ka 4 za data

// unyevu msb, unyevu lsb, temp msb, temp lsb

ikiwa (Waya haipatikani () == 4)

{

val [0] = Soma kwa waya ();

val [1] = Soma kwa waya ();

val [2] = soma ya waya ();

val [3] = soma ya waya ();

}

// Badilisha data

unyevu wa kuelea = (val [1] * 256.0) + val [0];

unyevu = ((1.0 * H1) - (1.0 * H0)) * (1.0 * unyevu - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);

int temp = (val [3] * 256) + val [2];

kuelea cTemp = ((((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);

kuelea fTemp = (cTemp * 1.8) + 32;

// data ya Pato kwa mfuatiliaji wa serial

Serial.print ("Unyevu wa jamaa:");

Printa ya serial (unyevu);

Serial.println ("% RH");

Serial.print ("Joto katika Celsius:");

Serial.print (cTemp); Serial.println ("C");

Serial.print ("Joto katika Fahrenheit:");

Serial.print (fTemp);

Serial.println ("F");

kuchelewesha (500);

}

Hatua ya 4: Maombi:

HTS221 inaweza kuajiriwa katika bidhaa anuwai za watumiaji kama viboreshaji hewa na majokofu n.k. Sensor hii pia hupata matumizi yake katika uwanja mpana pamoja na mitambo ya Smart nyumbani, mitambo ya Viwanda, vifaa vya kupumua, ufuatiliaji wa mali na bidhaa.

Ilipendekeza: