Indholdsfortegnelse:
Video: Arduino Nano - HTS221 Relativ luftfugtighed og temperatursensor Tutorial: 4 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
HTS221 er en ultrakompakt kapacitiv digital sensor til relativ luftfugtighed og temperatur. Det inkluderer et følerelement og et blandet signal applikationsspecifikt integreret kredsløb (ASIC) til at levere måleoplysningerne gennem digitale serielle grænseflader. Integreret med så mange funktioner er dette en af de mest passende sensorer til kritiske fugtigheds- og temperaturmålinger. Her er demonstrationen med arduino nano.
Trin 1: Hvad du har brug for..
1. Arduino Nano
2. HTS221
3. I²C -kabel
4. I²C Shield til Arduino Nano
Trin 2: Forbindelser:
Tag et I2C -skjold til Arduino Nano og skub det forsigtigt hen over stifterne på Nano.
Tilslut derefter den ene ende af I2C -kablet til HTS221 -sensoren og den anden ende til I2C -skærmen.
Forbindelser er vist på billedet ovenfor.
Trin 3: Kode:
Arduino-koden til HTS221 kan downloades fra vores github-depot- DCUBE Community.
Her er linket til det samme:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
Vi inkluderer bibliotek Wire.h for at lette I2c -kommunikationen mellem sensoren og Arduino -kortet.
Du kan også kopiere koden herfra, den er givet som følger:
// Distribueret med en fri vilje licens.
// Brug den, som du vil, profit eller gratis, forudsat at den passer ind i licenserne til de tilhørende værker.
// HTS221
// Denne kode er designet til at fungere med HTS221_I2CS I2C Mini Module
#omfatte
// HTS221 I2C -adressen er 0x5F
#define Addr 0x5F
ugyldig opsætning ()
{
// Initialiser I2C -kommunikation som MASTER
Wire.begin ();
// Initialiser seriel kommunikation, indstil baudhastighed = 9600
Serial.begin (9600);
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Vælg gennemsnitligt konfigurationsregister
Wire.write (0x10);
// Temperaturgennemsnitlige prøver = 256, Fugtighedsgennemsnitlige prøver = 512
Wire.write (0x1B);
// Stop I2C -transmission
Wire.endTransmission ();
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Vælg kontrolregister1
Wire.write (0x20);
// Tænd, kontinuerlig opdatering, dataudgangshastighed = 1 Hz
Wire.write (0x85);
// Stop I2C -transmission
Wire.endTransmission ();
forsinkelse (300);
}
hulrum ()
{
usignerede int -data [2];
usigneret int val [4];
usigneret int H0, H1, H2, H3, T0, T1, T2, T3, rå;
// Fugtighedsopkaldelsesværdier
for (int i = 0; i <2; i ++)
{
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write ((48 + i));
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 1 byte data
Wire.requestFrom (Addr, 1);
// Læs 1 byte data
hvis (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Konverter fugtighedsdata
H0 = data [0] / 2;
H1 = data [1] / 2;
for (int i = 0; i <2; i ++)
{
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write ((54 + i));
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 1 byte data
Wire.requestFrom (Addr, 1);
// Læs 1 byte data
hvis (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Konverter fugtighedsdata
H2 = (data [1] * 256,0) + data [0];
for (int i = 0; i <2; i ++)
{
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write ((58 + i));
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 1 byte data
Wire.requestFrom (Addr, 1);
// Læs 1 byte data
hvis (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Konverter fugtighedsdata
H3 = (data [1] * 256,0) + data [0];
// Temperaturopkaldsværdier
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write (0x32);
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 1 byte data
Wire.requestFrom (Addr, 1);
// Læs 1 byte data
hvis (Wire.available () == 1)
{
T0 = Wire.read ();
}
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write (0x33);
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 1 byte data
Wire.requestFrom (Addr, 1);
// Læs 1 byte data
hvis (Wire.available () == 1)
{
T1 = Wire.read ();
}
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write (0x35);
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 1 byte data
Wire.requestFrom (Addr, 1);
// Læs 1 byte data
hvis (Wire.available () == 1)
{
raw = Wire.read ();
}
rå = rå & 0x0F;
// Konverter temperaturopkaldsværdierne til 10-bit
T0 = ((rå & 0x03) * 256) + T0;
T1 = ((rå & 0x0C) * 64) + T1;
for (int i = 0; i <2; i ++)
{
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write ((60 + i));
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 1 byte data
Wire.requestFrom (Addr, 1);
// Læs 1 byte data
hvis (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Konverter dataene
T2 = (data [1] * 256,0) + data [0];
for (int i = 0; i <2; i ++)
{
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write ((62 + i));
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 1 byte data
Wire.requestFrom (Addr, 1);
// Læs 1 byte data
hvis (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Konverter dataene
T3 = (data [1] * 256,0) + data [0];
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write (0x28 | 0x80);
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 4 bytes data
Wire.requestFrom (Addr, 4);
// Læs 4 bytes data
// fugtigheds msb, fugtighed lsb, temp msb, temp lsb
hvis (Wire.available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// Konverter dataene
flydefugtighed = (val [1] * 256,0) + val [0];
fugtighed = ((1,0 * H1) - (1,0 * H0)) * (1,0 * fugtighed - 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;
// Output data til seriel skærm
Serial.print ("Relativ luftfugtighed:");
Serielt tryk (fugtighed);
Serial.println (" % RH");
Serial.print ("Temperatur i Celsius:");
Serial.print (cTemp); Serial.println ("C");
Serial.print ("Temperatur i Fahrenheit:");
Serial.print (fTemp);
Serial.println ("F");
forsinkelse (500);
}
Trin 4: Ansøgninger:
HTS221 kan bruges i forskellige forbrugerprodukter som luftfugtere og køleskabe osv. Denne sensor finder også sin anvendelse i en bredere arena, herunder smart hjemmeautomatisering, industriel automatisering, åndedrætsudstyr, aktiv- og varesporing.
Anbefalede:
Arduino Nano - SI7050 Temperatursensor Tutorial: 4 trin
Arduino Nano - SI7050 Temperatursensor Tutorial: SI7050 er en digital temperatursensor, der fungerer på I2C kommunikationsprotokol og tilbyder høj nøjagtighed over hele driftsspændingen og temperaturområdet. Denne høje nøjagtighed af sensoren tilskrives den nye signalbehandling og anal
Arduino Nano - TCN75A Temperatursensor Tutorial: 4 trin
Arduino Nano-TCN75A Temperatursensor Tutorial: TCN75A er en to-leders seriel temperatursensor med temperatur-til-digital-omformer. Det er integreret med brugerprogrammerbare registre, der giver fleksibilitet til temperaturfølende applikationer. Registerindstillingerne tillader brugere
Arduino Nano - STS21 Temperatursensor Tutorial: 4 trin
Arduino Nano - STS21 Temperatursensor Tutorial: STS21 Digital Temperature Sensor tilbyder overlegen ydeevne og et pladsbesparende fodaftryk. Det giver kalibrerede, lineariserede signaler i digitalt I2C -format. Fremstilling af denne sensor er baseret på CMOSens -teknologi, som tilskrives den overlegne
Sådan bruges DHT11 temperatursensor med Arduino og print temperatur Varme og luftfugtighed: 5 trin
Sådan bruges DHT11 temperatursensor med Arduino og print temperatur Varme og fugtighed: DHT11 sensoren bruges til at måle temperatur og fugtighed. De er meget populære elektronikhobbyister. DHT11 -fugtigheds- og temperatursensoren gør det virkelig let at tilføje fugtigheds- og temperaturdata til dine DIY -elektronikprojekter. Det er pr
Temperatur, relativ luftfugtighed, atmosfærisk tryklogger ved hjælp af Raspberry Pi og TE Connectivity MS8607-02BA01: 22 trin (med billeder)
Temperatur, relativ luftfugtighed, atmosfærisk tryklogger ved hjælp af Raspberry Pi og TE-tilslutning MS8607-02BA01: Introduktion: I dette projekt vil jeg vise dig, hvordan du opretter et logningssystem trin for trin til logning af temperaturfugtighed og atmosfærisk tryk. Dette projekt er baseret på Raspberry Pi 3 Model B og TE Connectivity miljøsensorchip MS8607-02BA