İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
MCP9803, 2 telli yüksek hassasiyetli bir sıcaklık sensörüdür. Sıcaklık algılama uygulamalarını kolaylaştıran, kullanıcı tarafından programlanabilen kayıtlarla yapılandırılmışlardır. Bu sensör, son derece gelişmiş çok bölgeli sıcaklık izleme sistemi için uygundur. İşte Raspberry Pi kullanan bir java kodu ile gösterim.
Adım 1: İhtiyacınız Olan Şey..!
1. Ahududu Pi
2. MCP9803
3. I²C Kablosu
4. Raspberry Pi için I²C Kalkanı
5. Ethernet Kablosu
2. Adım: Bağlantılar
Ahududu pi için bir I2C kalkanı alın ve ahududu pi'nin gpio pimlerinin üzerine hafifçe itin.
Ardından I2C kablosunun bir ucunu MCP9803 sensörüne ve diğer ucunu I2C blendajına bağlayın.
Ayrıca Ethernet kablosunu pi'ye bağlayın veya bir WiFi modülü kullanabilirsiniz. Bağlantılar yukarıdaki resimde gösterilmiştir.
3. Adım: Kodlayın
MCP9803 için java kodu github depomuzdan indirilebilir- Dcube Store
İşte aynısı için bağlantı:
github.com/DcubeTechVentures/MCP9803/blob/master/Java/MCP9803.java
Java kodu için pi4j kütüphanesini kullandık, pi4j'yi ahududu pi'ye kurma adımları burada açıklanmıştır:
pi4j.com/install.html
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.
// MCP9803
// Bu kod, MCP9808_I2CS I2C Mini Modülü ile çalışmak üzere tasarlanmıştır.
com.pi4j.io.i2c. I2CBus'u içe aktarın;
com.pi4j.io.i2c. I2CDevice'ı içe aktarın;
com.pi4j.io.i2c. I2CFFactory'yi içe aktarın;
java.io. IOException'ı içe aktarın;
genel sınıf MCP9803
{
public static void main(String args) İstisna atar
{
// I2C veri yolu oluştur
I2CBus Bus = I2CFactory.getInstance(I2CBus. BUS_1);
// I2C cihazını al, MCP9803 I2C adresi 0x48(72)
I2CDevice cihazı = Bus.getDevice(0x48);
// Yapılandırma kaydını seç
// Sürekli dönüştürme modu, Güç açma, karşılaştırma modu, 12 bit çözünürlük
device.write(0x01, (bayt)0x60);
thread.sleep(500);
// 0x00(0) adresinden 2 bayt veri oku
// temp msb, temp lsb
bayt veri = yeni bayt[2];
device.read(0x00, veri, 0, 2);
// Veriyi 12 bit'e çevir
int temp = ((veri[0] & 0xFF) * 256 + (veri[1] & 0xF0)) / 16;
if(sıcaklık > 2047)
{
sıcaklık -= 4096;
}
çift cTemp = sıcaklık * 0.0625;
çift fTemp = cTemp * 1.8 + 32;
// Ekrana veri çıktısı
System.out.printf("Sıcaklık Santigrat olarak: %.2f C %n", cTemp);
System.out.printf("Sıcaklık Fahrenheit cinsinden: %.2f F %n", fTemp);
}
}
Adım 4: Uygulamalar..:
MCP9803, kişisel bilgisayar ve çevre birimleri, sabit disk sürücüleri, çeşitli eğlence sistemleri, ofis sistemleri ve veri iletişim sistemlerini içeren geniş bir cihaz alanında kullanılabilir. Bu sensör çeşitli karmaşık sistemlere dahil edilebilir.