INHOUDSOPGAWE:
Video: Arduino Nano - HTS221 Relatiewe humiditeit en temperatuur sensor handleiding: 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
HTS221 is 'n ultra kompakte kapasitiewe digitale sensor vir relatiewe humiditeit en temperatuur. Dit bevat 'n waarnemingselement en 'n gemengde seintoepassingspesifieke geïntegreerde stroombaan (ASIC) om die meetinligting deur middel van digitale seriële koppelvlakke te verskaf. Dit is geïntegreer met soveel funksies en is een van die mees geskikte sensors vir kritieke humiditeits- en temperatuurmetings. Hier is die demonstrasie met arduino nano.
Stap 1: wat u nodig het..
1. Arduino Nano
2. HTS221
3. I²C -kabel
4. I²C -skild vir Arduino Nano
Stap 2: Verbindings:
Neem 'n I2C -skild vir Arduino Nano en druk dit saggies oor die penne van Nano.
Koppel dan die een kant van die I2C -kabel aan die HTS221 -sensor en die ander kant aan die I2C -skild.
Verbindings word op die foto hierbo getoon.
Stap 3: Kode:
Die arduino-kode vir HTS221 kan afgelaai word vanaf ons github repository- DCUBE Community.
Hier is die skakel vir dieselfde:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
Ons bevat biblioteek Wire.h om die I2c -kommunikasie van die sensor met die Arduino -bord te vergemaklik.
U kan die kode ook hiervandaan kopieer; dit word soos volg gegee:
// Versprei met 'n vrywillige lisensie.
// Gebruik dit op enige manier wat u wil, wins of gratis, mits dit in die lisensies van die gepaardgaande werke pas.
// HTS221
// Hierdie kode is ontwerp om te werk met die HTS221_I2CS I2C Mini Module
#insluit
// HTS221 I2C -adres is 0x5F
#definieer Addr 0x5F
leemte opstelling ()
{
// Initialiseer I2C -kommunikasie as MASTER
Wire.begin ();
// Initialiseer seriële kommunikasie, stel baud rate = 9600 in
Serial.begin (9600);
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Kies gemiddelde konfigurasieregister
Draad.skryf (0x10);
// Temperatuur gemiddelde monsters = 256, Humiditeit gemiddelde monsters = 512
Wire.write (0x1B);
// Stop I2C -oordrag
Wire.endTransmission ();
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Kies kontroleregister1
Draad.skryf (0x20);
// Aan, deurlopende opdatering, data -uitsetsnelheid = 1 Hz
Wire.write (0x85);
// Stop I2C -oordrag
Wire.endTransmission ();
vertraging (300);
}
leemte lus ()
{
ongetekende int data [2];
ongetekende int val [4];
ongetekende int H0, H1, H2, H3, T0, T1, T2, T3, rou;
// Humiditeitsoproepwaardes
vir (int i = 0; i <2; i ++)
{
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Stuur dataregister
Wire.write ((48 + i));
// Stop I2C -oordrag
Wire.endTransmission ();
// Versoek 1 greep data
Wire.requestFrom (Addr, 1);
// Lees 1 greep data
as (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Skakel humiditeitsdata om
H0 = data [0] / 2;
H1 = data [1] / 2;
vir (int i = 0; i <2; i ++)
{
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Stuur dataregister
Wire.write ((54 + i));
// Stop I2C -oordrag
Wire.endTransmission ();
// Versoek 1 greep data
Wire.requestFrom (Addr, 1);
// Lees 1 greep data
as (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Skakel humiditeitsdata om
H2 = (data [1] * 256.0) + data [0];
vir (int i = 0; i <2; i ++)
{
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Stuur dataregister
Wire.write ((58 + i));
// Stop I2C -oordrag
Wire.endTransmission ();
// Versoek 1 greep data
Wire.requestFrom (Addr, 1);
// Lees 1 greep data
as (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Skakel humiditeitsdata om
H3 = (data [1] * 256.0) + data [0];
// Temperatuur -oproepwaardes
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Stuur dataregister
Wire.write (0x32);
// Stop I2C -oordrag
Wire.endTransmission ();
// Versoek 1 greep data
Wire.requestFrom (Addr, 1);
// Lees 1 greep data
as (Wire.available () == 1)
{
T0 = Wire.read ();
}
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Stuur dataregister
Wire.write (0x33);
// Stop I2C -oordrag
Wire.endTransmission ();
// Versoek 1 greep data
Wire.requestFrom (Addr, 1);
// Lees 1 greep data
as (Wire.available () == 1)
{
T1 = Wire.read ();
}
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Stuur dataregister
Draad.skryf (0x35);
// Stop I2C -oordrag
Wire.endTransmission ();
// Versoek 1 greep data
Wire.requestFrom (Addr, 1);
// Lees 1 greep data
as (Wire.available () == 1)
{
rou = draad.lees ();
}
rou = rou & 0x0F;
// Skakel die temperatuuroproepwaardes om na 10-bis
T0 = ((rou & 0x03) * 256) + T0;
T1 = ((rou & 0x0C) * 64) + T1;
vir (int i = 0; i <2; i ++)
{
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Stuur dataregister
Wire.write ((60 + i));
// Stop I2C -oordrag
Wire.endTransmission ();
// Versoek 1 greep data
Wire.requestFrom (Addr, 1);
// Lees 1 greep data
as (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Skakel die data om
T2 = (data [1] * 256.0) + data [0];
vir (int i = 0; i <2; i ++)
{
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Stuur dataregister
Wire.write ((62 + i));
// Stop I2C -oordrag
Wire.endTransmission ();
// Versoek 1 greep data
Wire.requestFrom (Addr, 1);
// Lees 1 greep data
as (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Skakel die data om
T3 = (data [1] * 256.0) + data [0];
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Stuur dataregister
Wire.write (0x28 | 0x80);
// Stop I2C -oordrag
Wire.endTransmission ();
// Versoek 4 grepe data
Wire.requestFrom (Addr, 4);
// Lees 4 grepe data
// humiditeit msb, humiditeit lsb, temp msb, temp lsb
as (Wire.available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// Skakel die data om
float humiditeit = (val [1] * 256.0) + val [0];
humiditeit = ((1.0 * H1) - (1.0 * H0)) * (1.0 * humiditeit - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);
int temp = (val [3] * 256) + val [2];
float cTemp = (((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);
float fTemp = (cTemp * 1.8) + 32;
// Uitset data na die seriële monitor
Serial.print ("Relatiewe humiditeit:");
Reeks.afdruk (humiditeit);
Serial.println (" % RH");
Serial.print ("Temperatuur in Celsius:");
Serial.print (cTemp); Serial.println ("C");
Serial.print ("Temperatuur in Fahrenheit:");
Serial.print (fTemp);
Serial.println ("F");
vertraging (500);
}
Stap 4: Aansoeke:
HTS221 kan gebruik word in verskillende verbruikersprodukte, soos lugbevochtigers en yskaste, ens. Hierdie sensor kan ook op 'n wyer gebied toegepas word, insluitend outomatiese huishoudelike outomatisering, industriële outomatisering, respiratoriese toerusting, opsporing van bates en goedere.
Aanbeveel:
Arduino Nano - SI7050 Temperatuur sensor handleiding: 4 stappe
Arduino Nano - SI7050 Temperatuursensor -tutoriaal: SI7050 is 'n digitale temperatuursensor wat werk op I2C -kommunikasieprotokol en bied 'n hoë akkuraatheid oor die hele werkspanning en temperatuurbereik. Hierdie hoë akkuraatheid van die sensor word toegeskryf aan die nuwe seinverwerking en analise
Meting van humiditeit en temperatuur met behulp van HIH6130 en Arduino Nano: 4 stappe
Meting van humiditeit en temperatuur met behulp van HIH6130 en Arduino Nano: HIH6130 is 'n humiditeits- en temperatuursensor met digitale uitset. Hierdie sensors bied 'n akkuraatheidsvlak van ± 4% RH. Met die toonaangewende langtermynstabiliteit, ware temperatuurgekompenseerde digitale I2C, toonaangewende betroubaarheid in die bedryf, energie-doeltreffendheid
Arduino Nano - TCN75A Temperatuur sensor handleiding: 4 stappe
Arduino Nano-TCN75A Temperatuursensor-tutoriaal: TCN75A is 'n tweedraads seriële temperatuursensor met 'n temperatuur-na-digitale omskakelaar. Dit is geïntegreer met gebruikersprogrammeerbare registers wat buigsaamheid bied vir temperatuurwaarnemingstoepassings. Met die registerinstellings kan gebruikers
Arduino Nano - TMP100 Temperatuur sensor handleiding: 4 stappe
Arduino Nano-TMP100 Temperatuursensor Tutoriaal: TMP100 Hoë akkuraatheid, lae krag, digitale temperatuur sensor I2C MINI module. Die TMP100 is ideaal vir uitgebreide temperatuurmeting. Hierdie toestel bied 'n akkuraatheid van ± 1 ° C sonder om kalibrasie of kondisionering van eksterne komponente te vereis. Hy
Temperatuur, relatiewe humiditeit, atmosferiese drukregistreerder met behulp van Raspberry Pi en TE Connectivity MS8607-02BA01: 22 stappe (met foto's)
Temperatuur, relatiewe humiditeit, atmosferiese drukregistreerder met behulp van Raspberry Pi en TE Connectivity MS8607-02BA01: Inleiding: In hierdie projek sal ek jou wys hoe om 'n logstelsel vir temperatuurvochtigheid en atmosferiese druk stap vir stap op te stel. Hierdie projek is gebaseer op die Raspberry Pi 3 Model B en TE Connectivity omgewingsensor-chip MS8607-02BA