2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
HDC1000, çox aşağı gücdə əla ölçmə dəqiqliyi təmin edən inteqrasiya edilmiş temperatur sensoru olan rəqəmsal rütubət sensoru. Cihaz rütubəti yeni bir kapasitiv sensora əsaslanaraq ölçür. Rütubət və temperatur sensörleri zavodda kalibr edilmişdir. Tam -40 ° C ilə +125 ° C aralığında işləkdir. İşdə hissəcik fotonu ilə nümayişidir.
Addım 1: Nə Lazımdır..
1. Foton hissəcikləri
2. HDC1000
3. I²C Kabel
4. Partikül Foton üçün I²C Qalxanı
Addım 2: Bağlantı:
Hissəcik fotonu üçün bir I2C qalxanı götürün və zərrəcik foton sancaqlarının üzərinə itələyin.
Sonra I2C kabelinin bir ucunu HDC1000 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:
HDC1000 üçün hissəcik kodunu GitHub depomuzdan- Dcube Mağazasından yükləyə bilərsiniz.
İşdə bunun üçün bağlantı:
github.com/DcubeTechVentures/HDC1000…
HDC1000 məlumat cədvəlini burada tapa bilərsiniz:
www.ti.com.cn/cn/lit/ds/symlink/hdc1000.pdf
Hissəcik kodu üçün application.h və spark_wiring_i2c.h olan iki kitabxanadan istifadə etdik. Sensorla I2C əlaqəsini asanlaşdırmaq üçün Spark_wiring_i2c kitabxanası lazımdır.
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.
// HDC1000
// Bu kod Dcube Store -da mövcud olan HDC1000_I2CS I2C Mini Modulu ilə işləmək üçün hazırlanmışdır.
#daxil edin
#daxil edin
// HDC1000 I2C ünvanı 0x40 (64)
#təyin et Addr 0x40
float cTemp = 0.0, fTemp = 0.0, rütubət = 0.0;
int temp = 0, hum = 0;
boş quraşdırma ()
{
// Dəyişən təyin edin
Particle.variable ("i2cdevice", "HDC1000");
Hissəcik.dəyişən ("rütubət", rütubət);
Particle.variable ("cTemp", cTemp);
// I2C ünsiyyətini işə salın
Wire.begin ();
// Serial Rabitəni Başlatı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);
// Konfiqurasiya qeydini seçin
Wire.write (0x02);
// Temperatur, rütubət aktivdir, qətnamə = 14 bit, qızdırıcı aktivdir
Wire.write (0x30);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
gecikmə (300);
}
boşluq döngəsi ()
{
imzasız int məlumatları [2];
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// İstilik ölçmə əmrini göndərin
Wire.write (0x00);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
gecikmə (500);
// 2 bayt məlumat tələb edin
Wire.requestFrom (Addr, 2);
// 2 bayt məlumat oxuyun
// temp msb, temp lsb
əgər (Tel.available () == 2)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
}
// Məlumatları çevirin
temp = ((məlumat [0] * 256) + məlumat [1]);
cTemp = (temp / 65536.0) * 165.0 - 40;
fTemp = cTemp * 1.8 + 32;
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Nəm ölçmə əmrini göndərin
Wire.write (0x01);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
gecikmə (500);
// 2 bayt məlumat tələb edin
Wire.requestFrom (Addr, 2);
// 2 bayt məlumat oxuyun
// temp msb, temp lsb
əgər (Tel.available () == 2)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
}
// Məlumatları çevirin
hum = ((data [0] * 256) + data [1]);
rütubət = (zümzümə / 65536.0) * 100.0;
// Göstərişlər panelinə məlumat çıxarın
Particle.publish ("Nisbi Nəmlik:", String (rütubət));
Particle.publish ("Selsi İstiliyi:", String (cTemp));
Particle.publish ("Fahrenheitdəki temperatur:", String (fTemp));
gecikmə (1000);
}
Addım 4: Tətbiqlər:
HDC1000 istilik, havalandırma və kondisioner (HVAC), Ağıllı Termostatlar və Otaq Monitorlarında istifadə edilə bilər. Bu sensor həm də Yazıçılar, Əl Ölçənlər, Tibbi Cihazlar, Yük Göndərmə və Avtomobilin Ön Camı Dumanında tətbiqini tapır.