İçindekiler:
- Adım 1: Donanım Gerekli:
- Adım 2: Donanım Bağlantısı:
- Adım 3: Nem ve Sıcaklık Ölçümü Kodu:
- Adım 4: Uygulamalar:
Video: HTS221 ve Raspberry Pi Kullanarak Nem ve Sıcaklık Ölçümü: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
HTS221, bağıl nem ve sıcaklık için ultra kompakt kapasitif bir dijital sensördür. Dijital seri arabirimler aracılığıyla ölçüm bilgilerini sağlamak için bir algılama elemanı ve karma sinyal uygulamasına özel entegre devre (ASIC) içerir. Pek çok özellikle entegre edilmiş bu sensör, kritik nem ve sıcaklık ölçümleri için en uygun sensörlerden biridir.
Bu eğitimde, HTS221 sensör modülünün ahududu pi ile arayüzlenmesi ve python dili kullanılarak programlanması da gösterilmiştir. Nem ve sıcaklık değerlerini okumak için I2C adaptörlü ahududu pi kullandık. Bu I2C adaptörü sensör modülüne bağlantıyı daha kolay ve daha güvenilir hale getiriyor.
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. HTS221
2. Ahududu Pi
3. I2C Kablosu
4. Ahududu pi için I2C Kalkanı
5. Ethernet Kablosu
Adım 2: Donanım Bağlantısı:
Donanım bağlantısı bölümü temel olarak sensör ve ahududu pi 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:
HTS221, 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 ve Sıcaklık Ölçümü Kodu:
Raspberry pi kullanmanın avantajı, kartı programlamak istediğiniz programlama dilinin, sensör ile arayüz oluşturmak için size esneklik sağlamasıdır. Bu kartın bu avantajından yararlanarak, burada programlamasını python'da gösteriyoruz. HTS221 için python kodu, Her Şeyi Kontrol Et Topluluğu olan github topluluğumuzdan indirilebilir.
Kullanıcıların kolaylığının yanı sıra, kodu burada da açıklıyoruz:
Kodlamanın ilk adımı olarak, python olması durumunda smbus kitaplığını indirmeniz gerekir, çünkü bu kitaplık kodda kullanılan işlevleri destekler. Bu nedenle, kütüphaneyi indirmek için aşağıdaki bağlantıyı ziyaret edebilirsiniz:
pypi.python.org/pypi/smbus-cffi/0.5.1
Bu sensör için çalışan python kodunu buradan da kopyalayabilirsiniz:
smbus'u içe aktar
ithalat zamanı
# I2C veri yolunu alın
veri yolu = smbus. SMBus(1)
# HTS221 adresi, 0x5F(95)
# Ortalama konfigürasyon kaydı seçin, 0x10(16)
# 0x1B(27) Sıcaklık ortalama örnekleri = 256, Nem ortalama örnekleri = 512
bus.write_byte_data(0x5F, 0x10, 0x1B)
# HTS221 adresi, 0x5F(95)
# Kontrol kaydı seçin1, 0x20(32)
# 0x85(133) Güç AÇIK, Sürekli güncelleme, Veri çıkış hızı = 1 Hz
bus.write_byte_data(0x5F, 0x20, 0x85)
zaman.uyku(0.5)
# HTS221 adresi, 0x5F(95)
# Cihazın kalıcı hafızasından Kalibrasyon değerlerini oku
# Nem Kalibrasyon değerleri
# 0x30(48), 1 bayttan veriyi geri oku
değer = bus.read_byte_data(0x5F, 0x30)
H0 = değer / 2
# 0x31(49), 1 bayttan veriyi geri oku
değer = bus.read_byte_data(0x5F, 0x31)
H1 = değer/2
# 0x36(54), 2 bayttan veriyi geri oku
val0 = bus.read_byte_data(0x5F, 0x36)
val1 = bus.read_byte_data(0x5F, 0x37)
H2 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)
# 0x3A(58), 2 bayttan veriyi geri oku
val0 = bus.read_byte_data(0x5F, 0x3A)
val1 = bus.read_byte_data(0x5F, 0x3B)
H3 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)
# Sıcaklık Kalibrasyon değerleri
# 0x32(50), 1 bayttan veriyi geri oku
T0 = bus.read_byte_data(0x5F, 0x32)
T0 = (T0 & 0xFF)
# 0x32(51), 1 bayttan veriyi geri oku
T1 = bus.read_byte_data(0x5F, 0x33)
T1 = (T1 & 0xFF)
# 0x35(53), 1 bayttan veriyi geri oku
ham = bus.read_byte_data(0x5F, 0x35)
ham = (ham ve 0x0F)
# Sıcaklık Kalibrasyon değerlerini 10 bit'e dönüştürün
T0 = ((ham ve 0x03) * 256) + T0
T1 = ((ham & 0x0C) * 64) + T1
# 0x3C(60), 2 bayttan veriyi geri oku
val0 = bus.read_byte_data(0x5F, 0x3C)
val1 = bus.read_byte_data(0x5F, 0x3D)
T2 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)
# 0x3E(62), 2 bayttan veriyi geri oku
val0 = bus.read_byte_data(0x5F, 0x3E)
val1 = bus.read_byte_data(0x5F, 0x3F)
T3 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)
# Komut kaydı 0x80 (128), 4 bayt ile 0x28(40)'dan verileri geri oku
# nem msb, nem lsb, temp msb, temp lsb
veri = bus.read_i2c_block_data(0x5F, 0x28 | 0x80, 4)
# Verileri dönüştürün
nem = (veri[1] * 256) + veri[0]
nem = ((1.0 * H1) - (1.0 * H0)) * (1.0 * nem - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0)
sıcaklık = (veri[3] * 256) + veri[2]
sıcaklık > 32767 ise:
sıcaklık -= 65536
cTemp = ((T1 - T0) / 8.0) * (sıcaklık - T2) / (T3 - T2) + (T0 / 8.0)
fTemp = (cTemp * 1.8) + 32
# Ekrana veri çıkışı
print "Bağıl Nem: %.2f %%" %nem
print "Sıcaklık Santigrat cinsinden: %.2f C" %cTemp
print "Sıcaklık Fahrenheit cinsinden: %.2f F" %fTemp
Aşağıda belirtilen kod kısmı, python kodlarının doğru yürütülmesi için gerekli kitaplıkları içerir.
smbus'u içe aktar
ithalat zamanı
Komut istemine aşağıda belirtilen komutu yazarak kod çalıştırılabilir.
$> piton HTS221.py
Sensörün çıkışı da kullanıcının referans olması açısından yukarıdaki resimde gösterilmektedir.
Adım 4: Uygulamalar:
HTS221, hava nemlendiriciler ve buzdolapları vb. gibi çeşitli tüketici ürünlerinde kullanılabilir. Bu sensör ayrıca Akıllı ev otomasyonu, Endüstriyel otomasyon, solunum ekipmanları, varlık ve mal takibi dahil olmak üzere daha geniş bir alanda uygulamasını bulur.
Önerilen:
DHT11 / DHT22 ve Arduino Kullanarak Sıcaklık ve Nem Ölçümü: 4 Adım
DHT11 / DHT22 ve Arduino Kullanarak Sıcaklık ve Nemi Ölçme: Bu Arduino Eğitiminde, Arduino kartı ile sıcaklık ve nemi ölçmek için DHT11 veya DHT22 sensörünün nasıl kullanılacağını öğreneceğiz
HIH6130 ve Arduino Nano Kullanarak Nem ve Sıcaklık Ölçümü: 4 Adım
HIH6130 ve Arduino Nano Kullanarak Nem ve Sıcaklık Ölçümü: HIH6130, dijital çıkışlı bir nem ve sıcaklık sensörüdür. Bu sensörler, ±%4 RH doğruluk seviyesi sağlar. Endüstri lideri uzun vadeli kararlılık, gerçek sıcaklık kompanzasyonlu dijital I2C, Endüstri lideri güvenilirlik, Enerji verimliliği ile
HTS221 ve Arduino Nano Kullanarak Nem ve Sıcaklık Ölçümü: 4 Adım
HTS221 ve Arduino Nano Kullanarak Nem ve Sıcaklık Ölçümü: HTS221, bağıl nem ve sıcaklık için ultra kompakt kapasitif bir dijital sensördür. Dijital seri aracılığıyla ölçüm bilgilerini sağlamak için bir algılama elemanı ve karma sinyal uygulamasına özel entegre devre (ASIC) içerir
HDC1000 ve Raspberry Pi Kullanarak Sıcaklık ve Nem Ölçümü: 4 Adım
HDC1000 ve Raspberry Pi Kullanarak Sıcaklık ve Nem Ölçümü: 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 fac
HTS221 ve Parçacık Fotonu Kullanarak Nem ve Sıcaklık Ölçümü: 4 Adım
HTS221 ve Partikül Fotonu Kullanarak Nem ve Sıcaklık Ölçümü: HTS221, bağıl nem ve sıcaklık için ultra kompakt kapasitif bir dijital sensördür. Dijital seri aracılığıyla ölçüm bilgilerini sağlamak için bir algılama elemanı ve karma sinyal uygulamasına özel entegre devre (ASIC) içerir