İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
MCP9805, bir bellek modülü dijital sıcaklık sensörüdür. Sıcaklık algılama uygulamaları için esneklik sağlayan kullanıcı tarafından programlanabilir kayıtlarla birleştirilmiştir. Bu sensör, mobil platform bellek modülü sıcaklık sensörüne dahil edilmek üzere tasarlanmıştır. İşte Raspberry Pi kullanan bir java kodu ile gösterim.
Adım 1: İhtiyacınız Olan Şey..!
1. Ahududu Pi
2. MCP9805
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 MCP9805 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
MCP9805 için java kodu GitHub deposu-Dcube Mağazamızdan indirilebilir.
İşte aynısı için bağlantı:
github.com/DcubeTechVentures/MCP9805
MCP9805'in veri sayfası burada bulunabilir:
ww1.microchip.com/downloads/en/DeviceDoc/21…
Java kodu için pi4j kütüphanesini kullandık, ahududu pi üzerine pi4j kurulum 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.
// MCP9805
// Bu kod, Dcube Store'da bulunan 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 MCP9805
{
public static void main(String args) İstisna atar
{
// I2C veri yolu oluştur
I2CBus Bus = I2CFactory.getInstance(I2CBus. BUS_1);
// I2C cihazını al, MCP9805 I2C adresi 0x18(24)
I2CDevice cihazı = Bus.getDevice(0x18);
Thread.sleep(300);
// Yapılandırma kaydını seç
// Sürekli dönüştürme modu, Güçlendirme
bayt yapılandırma = yeni bayt[2];
yapılandırma[0] = 0x00;
yapılandırma[1] = 0x00;
device.write(0x01, yapılandırma, 0, 2);
// Çözünürlük kaydı seç
// Çözünürlük = +0.0625 / C
device.write(0x08, (bayt)0x03);
Thread.sleep(300);
// 0x05(05) adresinden 2 bayt veri oku
// temp msb, temp lsb
bayt veri = yeni bayt[2];
device.read(0x05, veri, 0, 2);
// Veriyi 13 bit'e çevir
int temp = ((veri[0] ve 0x1F) * 256 + (veri[1] ve 0xFF));
if(sıcaklık > 4095)
{
sıcaklık -= 8192;
}
ç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..:
MCP9805, ikili hat içi bellek modülü (DIMM) sıcaklık izleme sistemleri, kişisel bilgisayarlar ve sunucuları içeren çeşitli sistemlere dahil edilebilir. Genellikle, genel amaçlı bir sıcaklık sensörü olarak kullanılabilir.