İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
HYT939, I2C iletişim protokolü üzerinde çalışan bir dijital nem sensörüdür. Tıbbi sistemler ve laboratuvarlar söz konusu olduğunda nem çok önemli bir parametredir, bu nedenle bu hedeflere ulaşmak için HYT939'u arduino nano ile arayüzlemeye çalıştık. Bu eğitimde, HYT939 sensör modülünün arduino nano ile arayüzlenmesi gösterilmektedir.
Nem değerlerini okumak için I2c adaptörlü arduino kullandık. Bu I2C adaptör sensör modülüne bağlantıyı daha kolay ve daha güvenilir hale getiriyor.
Sensörün üzerinde çalıştığı iletişim protokolü I2C'dir. I2C, inter-entegre devre anlamına gelir. Haberleşmenin SDA(seri data) ve SCL(seri saat) hatları üzerinden gerçekleştiği bir haberleşme protokolüdür. Aynı anda birden fazla cihazın bağlanmasına izin verir. En basit ve en verimli iletişim protokollerinden biridir.
Adım 1: Donanım Gerekli:
Hedefimizi gerçekleştirmek için ihtiyaç duyduğumuz malzemeler aşağıdaki donanım bileşenlerini içerir:
1. HYT939
2. Arduino Nano
3. I2C Kablosu
4. Arduino nano için I2C kalkanı
Adım 2: Donanım Bağlantısı:
Donanım bağlantısı bölümü, temel olarak sensör ve arduino nano arasında gerekli olan kablo bağlantılarını açıklar. İstenilen çıktı için herhangi bir sistem üzerinde çalışırken doğru bağlantıların sağlanması temel zorunluluktur. Yani, gerekli bağlantılar aşağıdaki gibidir:
HYT939, I2C üzerinden çalışacaktır. Sensörün her bir arayüzünün nasıl bağlanacağını gösteren örnek kablo şeması buradadır.
Kutudan çıktığı gibi, kart bir I2C arayüzü için yapılandırılmıştır, bu nedenle, aksi takdirde agnostik iseniz bu bağlantıyı kullanmanızı öneririz. Tek ihtiyacınız olan dört tel!
Vcc, Gnd, SCL ve SDA pinlerinden sadece dört bağlantı gereklidir ve bunlar I2C kablosu yardımıyla bağlanır.
Bu bağlantılar yukarıdaki resimlerde gösterilmiştir.
Adım 3: Nem Ölçümü için Arduino Kodu:
Şimdi Arduinoo koduyla başlayalım.
Arduino ile sensör modülünü kullanırken Wire.h kütüphanesini dahil ediyoruz. "Wire" kütüphanesi, sensör ve Arduino kartı arasındaki i2c iletişimini kolaylaştıran fonksiyonları içerir.
Arduino kodunun tamamı, kullanıcının rahatlığı için aşağıda verilmiştir:
#Dahil etmek
// HYT939 I2C adresi 0x28(40)
#define Adres 0x28
geçersiz kurulum()
{
// I2C iletişimini MASTER olarak başlat
Wire.begin();
// Seri İletişimi Başlat
Seri.başla(9600);
gecikme(300);
}
boşluk döngüsü()
{
imzasız int veri[4];
// I2C İletimini Başlat
Wire.beginTransmission(Adr);
// Normal mod komutu gönder
Wire.write(0x80);
// I2C iletimini durdur
Wire.endTransmission();
gecikme(300);
// 4 bayt veri iste
Wire.requestFrom(Adr, 4);
// 4 bayt veri oku
// nem msb, nem lsb, temp msb, temp lsb
if(Wire.available() == 4)
{
data[0] = Wire.read();
data[1] = Wire.read();
data[2] = Wire.read();
veri[3] = Wire.read();
// Veriyi 14 bit'e çevir
kayan nem = (((veri[0] & 0x3F) * 256.0) + veri[1]) * (100.0 / 16383.0);
float cTemp = (((veri[2] * 256.0) + (veri[3] & 0xFC)) / 4) * (165.0 / 16383.0) - 40;
float fTemp = (cTemp * 1.8) + 32;
// Verileri seri monitöre çıkar
Serial.print("Bağıl Nem: ");
Seri.print(nem);
Serial.println(" %RH");
Serial.print("Sıcaklık Santigrat Olarak: ");
Seri.print(cTemp);
Serial.println("C");
Serial.print("Sıcaklık Fahrenhayt Olarak: ");
Seri.print(fTemp);
Serial.println("F");
}
gecikme(300);
}
Tel kitaplığında Wire.write() ve Wire.read() komutları yazmak ve sensör çıkışını okumak için kullanılır. Kodun aşağıdaki kısmı, sensör çıkışının okunmasını gösterir.
// 4 bayt veri oku // nem msb, nem lsb, temp msb, temp lsb if(Wire.available() == 4) { data[0] = Wire.read(); data[1] = Wire.read(); data[2] = Wire.read(); veri[3] = Wire.read();
}
Sensör çıkışı yukarıdaki resimde gösterilmiştir.
Adım 4: Uygulamalar:
Verimli bir dijital nem sensörü olan HYT939, Tıbbi sistemlerde, Otoklavlarda kullanılmaktadır. Basınç çiy noktası ölçümü ve Kurutma sistemleri de bu sensör modülünün kullanımını bulur. Uygun nem seviyesinin deneyler yapmak için çok önemli bir parametre olduğu çeşitli Laboratuvarlarda, bu sensör nem ölçümleri için orada kullanılabilir.