2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
HDC1000, çok düşük güçte mükemmel ölçüm doğruluğu sağlayan entegre sıcaklık sensörüne sahip bir dijital nem sensörüdür. Cihaz, yeni bir kapasitif sensöre dayalı olarak nemi ölçer. Nem ve sıcaklık sensörleri fabrikada kalibre edilmiştir. Tam -40°C ila +125°C sıcaklık aralığında çalışır. İşte parçacık foton ile gösterimi.
Adım 1: İhtiyacınız Olan Şey..!
1. Parçacık Fotonu
2. HDC1000
3. I²C Kablosu
4. Parçacık Fotonu için I²C Kalkanı
Adım 2: Bağlantı:
Parçacık fotonu için bir I2C kalkanı alın ve yavaşça parçacık fotonun pimlerinin üzerine itin.
Ardından I2C kablosunun bir ucunu HDC1000 sensörüne ve diğer ucunu I2C blendajına bağlayın.
Bağlantılar yukarıdaki resimde gösterilmiştir.
Adım 3: Kod:
HDC1000 için parçacık kodu GitHub depomuz-Dcube Store'dan indirilebilir.
İşte aynısı için bağlantı:
github.com/DcubeTechVentures/HDC1000…
HDC1000 veri sayfası burada bulunabilir:
www.ti.com.cn/cn/lit/ds/symlink/hdc1000.pdf
Partikül kodu için application.h ve spark_wiring_i2c.h olan iki kitaplık kullandık. Sensörle I2C iletişimini kolaylaştırmak için Spark_wiring_i2c kitaplığı gereklidir.
Kodu buradan da kopyalayabilirsiniz, aşağıdaki şekilde verilmiştir:
// Özgür irade lisansıyla dağıtılır.
// İlişkili çalışmalarının lisanslarına uyması koşuluyla, istediğiniz şekilde, kârlı veya ücretsiz olarak kullanın.
// HDC1000
// Bu kod, Dcube Store'da bulunan HDC1000_I2CS I2C Mini Modülü ile çalışmak üzere tasarlanmıştır.
#Dahil etmek
#Dahil etmek
// HDC1000 I2C adresi 0x40(64)
#define Addr 0x40
float cTemp = 0.0, fTemp = 0.0, nem = 0.0;
int sıcaklık = 0, uğultu = 0;
geçersiz kurulum()
{
// Değişken ayarla
Particle.variable("i2ccihaz", "HDC1000");
Particle.variable("nem",nem);
Particle.variable("cTemp",cTemp);
// I2C iletişimini başlat
Wire.begin();
// Seri İletişimi Başlat, baud hızını ayarla = 9600
Seri.başla(9600);
// I2C İletimini Başlat
Wire.beginTransmission(Adr);
// Yapılandırma kaydını seç
Wire.write(0x02);
// Sıcaklık, nem etkin, çözünürlük = 14 bit, ısıtıcı açık
Wire.write(0x30);
// I2C İletimini Durdur
Wire.endTransmission();
gecikme(300);
}
boşluk döngüsü()
{
imzasız int veri[2];
// I2C İletimini Başlat
Wire.beginTransmission(Adr);
// Sıcaklık ölçüm komutu gönder
Wire.write(0x00);
// I2C İletimini Durdur
Wire.endTransmission();
gecikme(500);
// 2 bayt veri iste
Wire.requestFrom(Adr, 2);
// 2 bayt veri oku
// temp msb, temp lsb
if (Wire.available() == 2)
{
data[0] = Wire.read();
data[1] = Wire.read();
}
// Verileri dönüştür
sıcaklık = ((veri[0] * 256) + veri[1]);
cTemp = (sıcaklık / 65536.0) * 165.0 - 40;
fTemp = cTemp * 1.8 + 32;
// I2C İletimini Başlat
Wire.beginTransmission(Adr);
// Nem ölçüm komutu gönder
Wire.write(0x01);
// I2C İletimini Durdur
Wire.endTransmission();
gecikme(500);
// 2 bayt veri iste
Wire.requestFrom(Adr, 2);
// 2 bayt veri oku
// temp msb, temp lsb
if (Wire.available() == 2)
{
data[0] = Wire.read();
data[1] = Wire.read();
}
// Verileri dönüştür
hum = ((veri[0] * 256) + veri[1]);
nem = (hum / 65536.0) * 100.0;
// Gösterge tablosuna veri çıkışı
Particle.publish("Bağıl Nem: ", String(nem));
Particle.publish("Sıcaklık Santigrat Olarak: ", String(cTemp));
Particle.publish("Sıcaklık Fahrenhayt Olarak: ", String(fTemp));
gecikme(1000);
}
Adım 4: Uygulamalar:
HDC1000, ısıtma, havalandırma ve klima (HVAC), Akıllı Termostatlar ve Oda Monitörlerinde kullanılabilir. Bu sensör aynı zamanda Yazıcılar, Portatif Sayaçlar, Tıbbi Cihazlar, Kargo Nakliyesi ve Otomotiv Ön Cam Buğu Çözmesinde de uygulama bulur.