Përmbajtje:
- Hapi 1: Kërkohet harduer:
- Hapi 2: Bashkimi i harduerit:
- Hapi 3: Kodi për Matjen e Lagështisë dhe Temperaturës:
- Hapi 4: Aplikimet:
Video: Matja e lagështisë dhe temperaturës duke përdorur HTS221 dhe Arduino Nano: 4 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:16
HTS221 është një sensor dixhital ultra kompakt kapacitiv për lagështinë dhe temperaturën relative. Ai përfshin një element ndijimi dhe një qark të integruar specifik të aplikimit të sinjalit të përzier (ASIC) për të siguruar informacionin e matjes përmes ndërfaqeve serike dixhitale. I integruar me kaq shumë karakteristika ky është një nga sensorët më të përshtatshëm për matjet kritike të lagështisë dhe temperaturës.
Në këtë tutorial është ilustruar ndërfaqja e modulit të sensorit HTS221 me arduino nano. Për të lexuar vlerat e lagështisë dhe temperaturës, ne kemi përdorur arduino me një përshtatës I2c. Ky përshtatës I2C e bën lidhjen me modulin e sensorit të lehtë dhe më të besueshëm.
Hapi 1: Kërkohet harduer:
Materialet që na duhen për të arritur qëllimin tonë përfshijnë përbërësit e mëposhtëm të harduerit:
1. HTS221
2. Arduino Nano
3. Kabllo I2C
4. Mburoja I2C për Arduino Nano
Hapi 2: Bashkimi i harduerit:
Seksioni i lidhjes së harduerit në thelb shpjegon lidhjet e telave të kërkuara midis sensorit dhe arduino nano. Sigurimi i lidhjeve të sakta është nevoja themelore gjatë punës në çdo sistem për daljen e dëshiruar. Pra, lidhjet e nevojshme janë si më poshtë:
HTS221 do të funksionojë mbi I2C. Këtu është shembulli i diagramit të instalimeve elektrike, duke demonstruar se si të lidhni secilën ndërfaqe të sensorit.
Jashtë kutisë, bordi është i konfiguruar për një ndërfaqe I2C, si i tillë ne rekomandojmë përdorimin e këtij bashkimi nëse përndryshe jeni agnostik.
Gjithçka që ju nevojitet janë katër tela! Vetëm katër lidhje kërkohen kunjat Vcc, Gnd, SCL dhe SDA dhe këto janë të lidhura me ndihmën e kabllit I2C.
Këto lidhje demonstrohen në fotot e mësipërme.
Hapi 3: Kodi për Matjen e Lagështisë dhe Temperaturës:
Le të fillojmë me kodin Arduino tani.
Ndërsa përdorim modulin e sensorit me Arduino, ne përfshijmë bibliotekën Wire.h. Biblioteka "Wire" përmban funksione të cilat lehtësojnë komunikimin i2c midis sensorit dhe bordit Arduino.
I gjithë kodi Arduino është dhënë më poshtë për lehtësinë e përdoruesit:
#përfshi
// Adresa HTS221 I2C është 0x5F
#përcaktoni Addr 0x5F
void setup ()
{
// Filloni komunikimin I2C si MASTER
Wire.begin ();
// Filloni komunikimin serik, vendosur normën e baudit = 9600
Serial.filloj (9600);
// Filloni Transmetimin I2C
Wire.beginTransmetimi (Addr);
// Zgjidh regjistrin mesatar të konfigurimit
Wire.write (0x10);
// Mostrat mesatare të temperaturës = 256, Mostrat mesatare të lagështisë = 512
Wire.write (0x1B);
// Ndaloni Transmetimin I2C
Wire.endTransmission ();
// Filloni Transmetimin I2C
Wire.beginTransmetimi (Addr);
// Zgjidhni regjistrin e kontrollit1
Wire.write (0x20);
// Ndezje, Përditësim i vazhdueshëm, Shkalla e daljes së të dhënave = 1 Hz
Wire.write (0x85);
// Ndaloni Transmetimin I2C
Wire.endTransmission ();
vonesë (300);
}
lak void ()
{
të dhëna int të panënshkruara [2];
int val i panënshkruar [4];
pa shenja int H0, H1, H2, H3, T0, T1, T2, T3, i papërpunuar;
// Vlerat e kalibrimit të lagështirës
për (int i = 0; i <2; i ++)
{
// Filloni Transmetimin I2C
Wire.beginTransmetimi (Addr);
// Dërgoni regjistrin e të dhënave
Wire.write ((48 + i));
// Ndaloni Transmetimin I2C
Wire.endTransmission ();
// Kërkoni 1 bajt të dhëna
Tela. Kërkohet Nga (Addr, 1);
// Lexoni 1 bajt të dhëna
nëse (Wire.available () == 1)
{
të dhënat = Wire.read ();
}
}
// Shndërroni të dhënat e lagështisë
H0 = të dhëna [0] / 2;
H1 = të dhëna [1] / 2;
për (int i = 0; i <2; i ++)
{
// Filloni Transmetimin I2C
Wire.beginTransmetimi (Addr);
// Dërgoni regjistrin e të dhënave
Wire.write ((54 + i));
// Ndaloni Transmetimin I2C
Wire.endTransmission ();
// Kërkoni 1 bajt të dhëna
Tela. Kërkohet Nga (Addr, 1);
// Lexoni 1 bajt të dhëna
nëse (Wire.available () == 1)
{
të dhënat = Wire.read ();
}
}
// Shndërroni të dhënat e lagështisë
H2 = (të dhëna [1] * 256.0) + të dhëna [0];
për (int i = 0; i <2; i ++)
{
// Filloni Transmetimin I2C
Wire.beginTransmetimi (Addr);
// Dërgoni regjistrin e të dhënave
Wire.write ((58 + i));
// Ndaloni Transmetimin I2C
Wire.endTransmission ();
// Kërkoni 1 bajt të dhëna
Tela. Kërkohet Nga (Addr, 1);
// Lexoni 1 bajt të dhëna
nëse (Wire.available () == 1)
{
të dhënat = Wire.read ();
}
}
// Shndërroni të dhënat e lagështisë
H3 = (të dhëna [1] * 256.0) + të dhëna [0];
// Vlerat e kalibrimit të temperaturës
// Filloni Transmetimin I2C
Wire.beginTransmetimi (Addr);
// Dërgoni regjistrin e të dhënave
Wire.write (0x32);
// Ndaloni Transmetimin I2C
Wire.endTransmission ();
// Kërkoni 1 bajt të dhëna
Tela. Kërkohet Nga (Addr, 1);
// Lexoni 1 bajt të dhëna
nëse (Wire.available () == 1)
{
T0 = Wire.read ();
}
// Filloni Transmetimin I2C
Wire.beginTransmetimi (Addr);
// Dërgoni regjistrin e të dhënave
Wire.write (0x33);
// Ndaloni Transmetimin I2C
Wire.endTransmission ();
// Kërkoni 1 bajt të dhëna
Tela. Kërkohet Nga (Addr, 1);
// Lexoni 1 bajt të dhëna
nëse (Wire.available () == 1)
{
T1 = Wire.read ();
}
// Filloni Transmetimin I2C
Wire.beginTransmetimi (Addr);
// Dërgoni regjistrin e të dhënave
Wire.write (0x35);
// Ndaloni Transmetimin I2C
Wire.endTransmission ();
// Kërkoni 1 bajt të dhëna
Tela. Kërkohet Nga (Addr, 1);
// Lexoni 1 bajt të dhëna
nëse (Wire.available () == 1)
{
i papërpunuar = Wire.read ();
}
i papërpunuar = i papërpunuar & 0x0F;
// Shndërroni vlerat e kalibrimit të temperaturës në 10-bit
T0 = ((e papërpunuar & 0x03) * 256) + T0;
T1 = ((e papërpunuar & 0x0C) * 64) + T1;
për (int i = 0; i <2; i ++)
{
// Filloni Transmetimin I2C
Wire.beginTransmetimi (Addr);
// Dërgoni regjistrin e të dhënave
Wire.write ((60 + i));
// Ndaloni Transmetimin I2C
Wire.endTransmission ();
// Kërkoni 1 bajt të dhëna
Tela. Kërkohet Nga (Addr, 1);
// Lexoni 1 bajt të dhëna
nëse (Wire.available () == 1)
{
të dhënat = Wire.read ();
}
}
// Shndërroni të dhënat
T2 = (të dhëna [1] * 256.0) + të dhëna [0];
për (int i = 0; i <2; i ++)
{
// Filloni Transmetimin I2C
Wire.beginTransmetimi (Addr);
// Dërgoni regjistrin e të dhënave
Wire.write ((62 + i));
// Ndaloni Transmetimin I2C
Wire.endTransmission ();
// Kërkoni 1 bajt të dhëna
Tela. Kërkohet Nga (Addr, 1);
// Lexoni 1 bajt të dhëna
nëse (Wire.available () == 1)
{
të dhënat = Wire.read ();
}
}
// Shndërroni të dhënat
T3 = (të dhëna [1] * 256.0) + të dhëna [0];
// Filloni Transmetimin I2C
Wire.beginTransmetimi (Addr);
// Dërgoni regjistrin e të dhënave
Wire.write (0x28 | 0x80);
// Ndaloni Transmetimin I2C
Wire.endTransmission ();
// Kërkoni 4 bajt të dhëna
Tela. Kërkohet Nga (Addr, 4);
// Lexoni 4 bajt të dhëna
// lagështia msb, lagështia lsb, temp msb, temp lsb
nëse (Wire. në dispozicion () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// Shndërroni të dhënat
lagështia notuese = (val [1] * 256.0) + val [0];
lagështia = ((1.0 * H1) - (1.0 * H0)) * (1.0 * lagështia - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);
int temp = (val [3] * 256) + val [2];
noton cTemp = (((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);
noton fTemp = (cTemp * 1.8) + 32;
// Dalja e të dhënave në monitorin serik
Serial.print ("Lagështia relative:");
Serial.print (lagështia);
Serial.println (" % RH");
Serial.print ("Temperatura në Celsius:");
Serial.print (cTemp); Serial.println ("C");
Serial.print ("Temperatura në Fahrenheit:");
Serial.print (fTemp);
Serial.println ("F");
vonesë (500);
}
Në bibliotekën Wire.write () dhe Wire.read () përdoret për të shkruar komandat dhe lexuar daljen e sensorit.
Serial.print () dhe Serial.println () përdoret për të shfaqur daljen e sensorit në monitorin serik të Arduino IDE.
Dalja e sensorit tregohet në figurën e mësipërme.
Hapi 4: Aplikimet:
HTS221 mund të përdoret në produkte të ndryshme të konsumit si lagështues të ajrit dhe frigoriferë, etj. Ky sensor gjithashtu gjen aplikimin e tij në një arenë më të gjerë duke përfshirë automatizimin e shtëpisë inteligjente, automatizimin industrial, pajisjet e frymëmarrjes, përcjelljen e aseteve dhe mallrave.
Recommended:
Matja e lagështisë dhe temperaturës duke përdorur HIH6130 dhe Arduino Nano: 4 hapa
Matja e lagështisë dhe temperaturës duke përdorur HIH6130 dhe Arduino Nano: HIH6130 është një sensor lagështie dhe temperature me dalje dixhitale. Këta sensorë ofrojnë një nivel saktësie ± 4% RH. Me stabilitet afatgjatë udhëheqës të industrisë, I2C të vërtetë dixhitale të kompensuar nga temperatura, besueshmëri udhëheqëse në industri, efikasitet energjetik
Matja e temperaturës dhe lagështisë duke përdorur HDC1000 dhe Arduino Nano: 4 hapa
Matja e Temperaturës dhe Lagështisë duke Përdorur HDC1000 dhe Arduino Nano: HDC1000 është një sensor dixhital i lagështisë me sensor të integruar të temperaturës që siguron saktësi të shkëlqyeshme të matjes me fuqi shumë të ulët. Pajisja mat lagështinë bazuar në një sensor të ri kapacitiv. Sensorët e lagështisë dhe temperaturës janë të dukshme
Matja e lagështisë dhe temperaturës duke përdorur HTS221 dhe Raspberry Pi: 4 hapa
Matja e lagështisë dhe temperaturës duke përdorur HTS221 dhe Raspberry Pi: HTS221 është një sensor dixhital ultra kompakt kapacitiv për lagështinë dhe temperaturën relative. Ai përfshin një element ndijues dhe një qark të integruar specifik të aplikimit të sinjalit të përzier (ASIC) për të siguruar informacionin e matjes përmes serialit dixhital
Matja e lagështisë dhe temperaturës duke përdorur HIH6130 dhe Raspberry Pi: 4 hapa
Matja e lagështisë dhe temperaturës duke përdorur HIH6130 dhe Raspberry Pi: HIH6130 është një sensor lagështie dhe temperature me dalje dixhitale. Këta sensorë ofrojnë një nivel saktësie ± 4% RH. Me stabilitet afatgjatë udhëheqës të industrisë, I2C të vërtetë dixhitale të kompensuar nga temperatura, besueshmëri udhëheqëse në industri, efikasitet energjetik
Matja e lagështisë dhe temperaturës duke përdorur HTS221 dhe foton grimcash: 4 hapa
Matja e lagështisë dhe temperaturës duke përdorur HTS221 dhe Foton Particle: HTS221 është një sensor dixhital ultra kompakt kapacitiv për lagështinë dhe temperaturën relative. Ai përfshin një element ndijues dhe një qark të integruar specifik të aplikimit të sinjalit të përzier (ASIC) për të siguruar informacionin e matjes përmes serialit dixhital