Mündəricat:
Video: Arduino Nano - HTS221 Nisbi Nəmlik və İstilik Sensoru Dərsliyi: 4 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
HTS221 nisbi rütubət və temperatur üçün ultra kompakt kapasitiv rəqəmsal sensordur. Ölçmə məlumatlarını rəqəmsal serial interfeysləri ilə təmin etmək üçün bir hissedici element və qarışıq siqnal tətbiqinin xüsusi inteqrasiya edilmiş dövrə (ASIC) daxildir. Bir çox xüsusiyyətə sahib olan bu, kritik rütubət və temperatur ölçmələri üçün ən uyğun sensorlardandır. Budur arduino nano ilə nümayiş.
Addım 1: Nə Lazımdır..
1. Arduino Nano
2. HTS221
3. I²C Kabel
4. Arduino Nano üçün I²C Shield
Addım 2: Bağlantılar:
Arduino Nano üçün bir I2C qalxanı götürün və Nanonun sancaqlarından yumşaq bir şəkildə itələyin.
Sonra I2C kabelinin bir ucunu HTS221 sensoruna, digər ucunu isə I2C ekranına bağlayın.
Bağlantılar yuxarıdakı şəkildə göstərilmişdir.
Addım 3: Kod:
HTS221 üçün arduino kodu github depomuzdan yüklənə bilər- DCUBE Birliyi.
İşdə bunun üçün bağlantı:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
Sensorun Arduino lövhəsi ilə I2c əlaqəsini asanlaşdırmaq üçün Wire.h kitabxanasına daxildir.
Kodu buradan da kopyalaya bilərsiniz, belə verilir:
// Azad iradə lisenziyası ilə paylanmışdır.
// İstənilən şəkildə, mənfəət və ya pulsuz istifadə edin, əlaqəli əsərlərinin lisenziyalarına uyğun gəlir.
// HTS221
// Bu kod HTS221_I2CS I2C Mini Modulu ilə işləmək üçün hazırlanmışdır
#daxil edin
// HTS221 I2C ünvanı 0x5F -dir
#Addr 0x5F təyin edin
boş quraşdırma ()
{
// I2C ünsiyyətini MASTER olaraq başladın
Wire.begin ();
// Serial rabitəni işə salın, baud dərəcəsini = 9600 olaraq təyin edin
Serial.begin (9600);
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Orta konfiqurasiya qeydini seçin
Wire.write (0x10);
// Orta temperatur nümunələri = 256, Orta rütubət nümunələri = 512
Wire.write (0x1B);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Nəzarət reyestrini seçin1
Wire.write (0x20);
// Güc AÇIQ, Davamlı yeniləmə, Məlumat çıxış sürəti = 1 Hz
Wire.write (0x85);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
gecikmə (300);
}
boşluq döngəsi ()
{
imzasız int məlumatları [2];
imzasız int val [4];
işarəsiz int H0, H1, H2, H3, T0, T1, T2, T3, xam;
// Nəmlik kalibrləmə dəyərləri
üçün (int i = 0; i <2; i ++)
{
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Məlumat qeydini göndərin
Wire.write ((48 + i));
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
// 1 bayt məlumat tələb edin
Wire.requestFrom (Addr, 1);
// 1 bayt məlumat oxuyun
əgər (Tel.available () == 1)
{
data = Wire.read ();
}
}
// Nəmlik məlumatlarını çevirin
H0 = məlumat [0] / 2;
H1 = məlumat [1] / 2;
üçün (int i = 0; i <2; i ++)
{
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Məlumat qeydini göndərin
Wire.write ((54 + i));
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
// 1 bayt məlumat tələb edin
Wire.requestFrom (Addr, 1);
// 1 bayt məlumat oxuyun
əgər (Tel.available () == 1)
{
data = Wire.read ();
}
}
// Nəmlik məlumatlarını çevirin
H2 = (məlumat [1] * 256.0) + məlumat [0];
üçün (int i = 0; i <2; i ++)
{
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Məlumat qeydini göndərin
Wire.write ((58 + i));
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
// 1 bayt məlumat tələb edin
Wire.requestFrom (Addr, 1);
// 1 bayt məlumat oxuyun
əgər (Tel.available () == 1)
{
data = Wire.read ();
}
}
// Nəmlik məlumatlarını çevirin
H3 = (məlumat [1] * 256.0) + məlumat [0];
// İstilik kalibrləmə dəyərləri
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Məlumat qeydini göndərin
Wire.write (0x32);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
// 1 bayt məlumat tələb edin
Wire.requestFrom (Addr, 1);
// 1 bayt məlumat oxuyun
əgər (Tel.available () == 1)
{
T0 = Wire.read ();
}
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Məlumat qeydini göndərin
Wire.write (0x33);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
// 1 bayt məlumat tələb edin
Wire.requestFrom (Addr, 1);
// 1 bayt məlumat oxuyun
əgər (Tel.available () == 1)
{
T1 = Wire.read ();
}
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Məlumat qeydini göndərin
Wire.write (0x35);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
// 1 bayt məlumat tələb edin
Wire.requestFrom (Addr, 1);
// 1 bayt məlumat oxuyun
əgər (Tel.available () == 1)
{
xam = Wire.read ();
}
xam = xam & 0x0F;
// İstilik kalibrləmə dəyərlərini 10 bitə çevirin
T0 = ((xam və 0x03) * 256) + T0;
T1 = ((xam və 0x0C) * 64) + T1;
üçün (int i = 0; i <2; i ++)
{
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Məlumat qeydini göndərin
Wire.write ((60 + i));
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
// 1 bayt məlumat tələb edin
Wire.requestFrom (Addr, 1);
// 1 bayt məlumat oxuyun
əgər (Tel.available () == 1)
{
data = Wire.read ();
}
}
// Məlumatları çevirin
T2 = (məlumat [1] * 256.0) + məlumat [0];
üçün (int i = 0; i <2; i ++)
{
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Məlumat qeydini göndərin
Wire.write ((62 + i));
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
// 1 bayt məlumat tələb edin
Wire.requestFrom (Addr, 1);
// 1 bayt məlumat oxuyun
əgər (Tel.available () == 1)
{
data = Wire.read ();
}
}
// Məlumatları çevirin
T3 = (məlumat [1] * 256.0) + məlumat [0];
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Məlumat qeydini göndərin
Wire.write (0x28 | 0x80);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
// 4 bayt məlumat tələb edin
Wire.requestFrom (Addr, 4);
// 4 bayt məlumat oxuyun
// rütubət msb, rütubət lsb, temp msb, temp lsb
əgər (Tel.available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// Məlumatları çevirin
üzən rütubət = (val [1] * 256.0) + val [0];
rütubət = ((1.0 * H1) - (1.0 * H0)) * (1.0 * rütubət - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);
int temp = (dəyər [3] * 256) + dəyər [2];
float cTemp = ((((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);
float fTemp = (cTemp * 1.8) + 32;
// Məlumatların serial monitora çıxarılması
Serial.print ("Nisbi rütubət:");
Serial çap (rütubət);
Serial.println (" % RH");
Serial.print ("Selsi temperaturu:");
Serial.print (cTemp); Serial.println ("C");
Serial.print ("Fahrenheitdəki temperatur:");
Serial.print (fTemp);
Serial.println ("F");
gecikmə (500);
}
Addım 4: Tətbiqlər:
HTS221, hava nəmləndiriciləri və soyuducular kimi müxtəlif istehlak məhsullarında istifadə edilə bilər. Bu sensor, ağıllı ev avtomatlaşdırması, Sənaye avtomatlaşdırması, tənəffüs cihazları, aktiv və malların izlənməsi də daxil olmaqla daha geniş bir sahədə tətbiqini tapır.
Tövsiyə:
Raspberry Pi SHT25 Nəmlik və İstilik Sensoru Python Dərsliyi: 4 addım
Raspberry Pi SHT25 Nəmlik və Temperatur Sensoru Python Dərsliyi: SHT25 I2C Nəmlik və Temperatur Sensoru ± 1,8%RH ± 0,2 ° C I2C Mini Modulu. SHT25 yüksək dəqiqlikli rütubət və temperatur sensoru, kalibrlənmiş, xətti sensor işarəsi verən forma faktoru və zəka baxımından bir sənaye standartına çevrildi
Arduino Günəş Enerjili İstilik və Nəmlik Sensoru 433mhz Oregon Sensoru Olaraq: 6 Addım
Arduino Günəş Enerjili İstilik və Rütubət Sensoru 433mhz Oregon Sensoru olaraq: Bu günəş enerjisi ilə işləyən bir temperatur və rütubət sensoru qurğusudur. Sensor 433mhz Oregon sensorunu təqlid edir və Telldus Net şlüzündə görünür. Nə lazımdır: 1x "10-LED Günəş enerjisi hərəkət sensoru " ebaydan. 3.7v xəmir olduğunu yazdığınızdan əmin olun
Arduino Nano - TCN75A İstilik Sensoru Dərsliyi: 4 addım
Arduino Nano-TCN75A Temperatur Sensor Dərsliyi: TCN75A, temperaturdan rəqəmsal çeviriciyə daxil edilmiş iki telli serial temperatur sensordur. İstilik algılama tətbiqləri üçün rahatlıq təmin edən istifadəçi tərəfindən proqramlaşdırıla bilən qeydlər ilə birləşdirilmişdir. Qeyd ayarları istifadəçilərə imkan verir
Raspberry Pi - HIH6130 I2C Nəmlik və İstilik Sensoru Java Dərsliyi: 4 addım
Raspberry Pi - HIH6130 I2C Rütubət və Temperatur Sensoru Java Dərsliyi: HIH6130 rəqəmsal çıxışı olan rütubət və temperatur sensoru. Bu sensorlar ± 4% RH dəqiqlik səviyyəsi təmin edir. Sektorun aparıcı uzunmüddətli sabitliyi, əsl temperaturla kompensasiya edilmiş rəqəmsal I2C, Sənayenin qabaqcıl etibarlılığı, Enerji səmərəliliyi
2 "TFT Ekran və Çox Sensorlu İstilik Nisbi Rəngli Termometr: 5 addım
2 "TFT Ekranda və Çoxlu Sensorlarda Nisbi Rəngli Termometr: Bir neçə temperatur sensörünün ölçülərini göstərən bir ekran hazırladım. Ən maraqlısı odur ki, dəyərlərin rəngi temperaturla birlikdə dəyişir: > 75 dərəcə Celcius = RED > 60 > 75 = PORTAKAL > 40 < 60 = SARI > 30 < 40