İçindekiler:
Video: Raspberry Pi - MPL3115A2 Hassas Altimetre Sensörü Java Eğitimi: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
MPL3115A2, doğru Basınç/İrtifa ve Sıcaklık verileri sağlamak için I2C arayüzüne sahip bir MEMS basınç sensörü kullanır. Sensör çıkışları, yüksek çözünürlüklü 24 bit ADC ile sayısallaştırılır. Dahili işleme, ana bilgisayar MCU sisteminden tazminat görevlerini kaldırır. Sadece 0,05 kPa'da, yani 0,3 m'lik bir irtifa değişikliğine denk gelen bir değişikliği tespit etme yeteneğine sahiptir. İşte java kodunu kullanarak ahududu pi ile gösterimi.
Adım 1: İhtiyacınız Olan Şey..!
1. Ahududu Pi
2. MPL3115A2
3. I²C Kablosu
4. Raspberry Pi için I²C Kalkanı
5. Ethernet Kablosu
Adım 2: 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 MPL3115A2 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.
Adım 3: Kod:
MPL3115A2 için java kodu, github depomuz olan DCUBE Store'dan indirilebilir.
İşte aynısı için bağlantı:
github.com/DcubeTechVentures/MPL3115A2/tree/master/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.
// MPL3115A2
// Bu kod, şuradan temin edilebilen MPL3115A2_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 MPL3115A2
{
public static void main(String args) İstisna atar
{
// I2C veri yolu oluştur
I2CBus Bus = I2CFactory.getInstance(I2CBus. BUS_1);
// I2C cihazını al, MPL3115A2 I2C adresi 0x60(96)
I2CDevice cihazı = Bus.getDevice(0x60);
// Kontrol kaydı seç
// Aktif mod, OSR = 128, altimetre modu
device.write(0x26, (bayt)0xB9);
// Veri yapılandırma kaydını seç
// Rakım, basınç, sıcaklık için veri hazır olayı etkinleştirildi
device.write(0x13, (bayt)0x07);
// Kontrol kaydı seç
// Aktif mod, OSR = 128, altimetre modu
device.write(0x26, (bayt)0xB9);
thread.sleep(1000);
// 0x00(00) adresinden 6 bayt veri oku
// durum, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
bayt veri = yeni bayt[6];
device.read(0x00, veri, 0, 6);
// Veriyi 20 bit'e çevir
int Yükseklik = (((veri[1] & 0xFF) * 65536) + ((veri[2] & 0xFF) * 256) + (veri[3] & 0xF0)) / 16);
int temp = ((veri[4] * 256) + (veri[5] & 0xF0)) / 16;
çift yükseklik = tYükseklik / 16.0;
çift cTemp = (sıcaklık / 16.0);
çift fTemp = cTemp * 1.8 + 32;
// Kontrol kaydı seç
// Aktif mod, OSR = 128, barometre modu
device.write(0x26, (bayt)0x39);
thread.sleep(1000);
// 0x00(00) adresinden 4 bayt veri oku
// durum, msb1'e bas, msb'ye bas, lsb'ye bas
device.read(0x00, veri, 0, 4);
// Veriyi 20 bit'e çevir
int pres = (((veri[1] & 0xFF) * 65536) + ((veri[2] & 0xFF) * 256) + (veri[3] & 0xF0)) / 16;
çift basınç = (basınç / 4.0) / 1000.0;
// Ekrana veri çıktısı
System.out.printf("Basınç: %.2f kPa %n", basınç);
System.out.printf("Yükseklik: %.2f m %n", yükseklik);
System.out.printf("Sıcaklık Santigrat cinsinden: %.2f C %n", cTemp);
System.out.printf("Sıcaklık Fahrenhayt cinsinden: %.2f F %n", fTemp);
}
}
Adım 4: Uygulamalar:
MPL3115A2'nin çeşitli uygulamaları arasında Yüksek Doğruluk Altimetri, Akıllı Telefonlar/Tabletler, Kişisel Elektronik Altimetri vb. bulunur. Ayrıca GPS Ölü Hesaplama, Acil Servisler için GPS Geliştirme, Harita Yardımı, Navigasyon ve Hava İstasyonu Ekipmanlarına da dahil edilebilir.
Önerilen:
Raspberry Pi - TSL45315 Ortam Işığı Sensörü Java Eğitimi: 4 Adım
Raspberry Pi - TSL45315 Ortam Işığı Sensörü Java Eğitimi: TSL45315 bir dijital ortam ışığı sensörüdür. Çeşitli aydınlatma koşulları altında insan gözünün tepkisine yaklaşır. Cihazların seçilebilir üç entegrasyon süresi vardır ve bir I2C veri yolu arabirimi aracılığıyla doğrudan 16 bit lüks çıkışı sağlar. Cihaz ortak
Raspberry Pi MCP9803 Sıcaklık Sensörü Java Eğitimi: 4 Adım
Raspberry Pi MCP9803 Sıcaklık Sensörü Java Eğitimi: 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. Buraya
Raspberry Pi MCP9805 Sıcaklık Sensörü Java Eğitimi: 4 Adım
Raspberry Pi MCP9805 Sıcaklık Sensörü Java Eğitimi: 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ü sistemine dahil edilmek üzere tasarlanmıştır
Raspberry Pi - TMP100 Sıcaklık Sensörü Java Eğitimi: 4 Adım
Raspberry Pi - TMP100 Sıcaklık Sensörü Java Eğitimi: TMP100 Yüksek Doğruluk, Düşük Güç, Dijital Sıcaklık Sensörü I2C MINI modülü. TMP100, genişletilmiş sıcaklık ölçümü için idealdir. Bu cihaz, kalibrasyon veya harici bileşen sinyal koşullandırma gerektirmeden ±1°C doğruluk sunar. O
Raspberry Pi TMP112 Sıcaklık Sensörü Java Eğitimi: 4 Adım
Raspberry Pi TMP112 Sıcaklık Sensörü Java Eğitimi: TMP112 Yüksek Doğruluk, Düşük Güç, Dijital Sıcaklık Sensörü I2C MINI modülü. TMP112, genişletilmiş sıcaklık ölçümü için idealdir. Bu cihaz, kalibrasyon veya harici bileşen sinyal koşullandırma gerektirmeden ±0.5°C doğruluk sunar.