BH1715 ve Raspberry Pi Kullanarak Işık Şiddeti Ölçümü: 5 Adım
BH1715 ve Raspberry Pi Kullanarak Işık Şiddeti Ölçümü: 5 Adım
Anonim
Image
Image

Dün LCD ekranlar üzerinde çalışıyorduk ve bunlar üzerinde çalışırken ışık yoğunluğu hesaplamasının önemini fark ettik. Işık yoğunluğu sadece bu dünyanın fiziksel alanında önemli değildir, aynı zamanda biyolojik alanda da iyi söylenen rolü vardır. Işık yoğunluğunun doğru tahmini ekosistemimizde, bitkilerin büyümesinde vb. çok önemli bir rol oynar. Dolayısıyla, bu amaca hizmet etmek için 16 bit seri çıkış tipi ortam ışığı sensörü olan bu BH1715 sensörünü inceledik.

Bu derste, programlama dili olarak Java kullanarak BH1715'in Raspberry pi ile çalışmasını göstereceğiz.

Bu amaçla ihtiyaç duyacağınız donanımlar aşağıdaki gibidir:

1. BH1715 - Ortam Işığı Sensörü

2. Ahududulu Pi

3. I2C Kablosu

4. Raspberry Pi için I2C Kalkanı

5. Ethernet Kablosu

Adım 1: BH1715'e Genel Bakış:

Neye ihtiyacın var..!!
Neye ihtiyacın var..!!

Öncelikle sizi BH1715 olan sensör modülünün temel özelliklerini ve üzerinde çalıştığı iletişim protokolünü tanımak isteriz.

BH1715, I²C veri yolu arayüzüne sahip dijital bir Ortam Işığı Sensörüdür. BH1715, mobil cihazlar için LCD ve Tuş Takımı arka ışık gücünü ayarlamak için ortam ışığı verilerini elde etmek için yaygın olarak kullanılır. Bu cihaz, 16 bit çözünürlük ve ayarlanabilir ölçüm aralığı sunarak 0,23 ila 100.000 lüks arasında algılamaya olanak tanır.

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 2: İhtiyacınız Olan Şey..!

Neye ihtiyacın var..!!
Neye ihtiyacın var..!!
Neye ihtiyacın var..!!
Neye ihtiyacın var..!!
Neye ihtiyacın var..!!
Neye ihtiyacın var..!!

Hedefimizi gerçekleştirmek için ihtiyaç duyduğumuz malzemeler aşağıdaki donanım bileşenlerini içerir:

1. BH1715 - Ortam Işığı Sensörü

2. Ahududu Pi

3. I2C Kablosu

4. Raspberry Pi için I2C Kalkanı

5. Ethernet kablosu

Adım 3: Donanım Bağlantısı:

Donanım Bağlantısı
Donanım Bağlantısı
Donanım Bağlantısı
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:

BH1715, I2C üzerinde ç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 4: Java Kodunu Kullanarak Işık Yoğunluğu Ölçümü:

Java Kodunu Kullanarak Işık Yoğunluğu Ölçümü
Java Kodunu Kullanarak Işık Yoğunluğu Ölçümü
Java Kodunu Kullanarak Işık Yoğunluğu Ölçümü
Java Kodunu Kullanarak Işık Yoğunluğu Ölçümü

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 Java'da programlama olduğunu gösteriyoruz. BH1715 için Java kodu, Dcube Store 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 java durumunda pi4j kütüphanesini indirmeniz gerekiyor çünkü bu kütüphane kodda kullanılan fonksiyonları destekliyor. Bu nedenle, kütüphaneyi indirmek için aşağıdaki bağlantıyı ziyaret edebilirsiniz:

pi4j.com/install.html

Bu sensör için çalışan Java kodunu buradan da kopyalayabilirsiniz:

// Ö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.

// BH1715

// Bu kod, ControlEverything.com'da bulunan BH1715_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 BH1715

{

public static void main(String args) İstisna atar

{

// I2C veri yolu oluştur

I2CBus veri yolu = I2CFactory.getInstance(I2CBus. BUS_1);

// I2C cihazını al, BH1715 I2C adresi 0x23(35)

I2CDevice aygıtı = bus.getDevice(0x23);

// Güç açma komutu gönder

device.write((bayt)0x01);

// Sürekli ölçüm komutu gönder

device.write((bayt)0x10);

thread.sleep(500);

// 2 bayt veri oku

// parlaklık msb, parlaklık lsb

bayt veri = yeni bayt[2];

device.read(veri, 0, 2);

// Verileri dönüştür

çift parlaklık = ((veri[0] & 0xFF) * 256 + (veri[1] & 0xFF)) / 1.20;

// Ekrana veri çıktısı

System.out.printf("Ortam Işığı Parlaklığı: %.2f lux %n", parlaklık);

}

}

Sensör ve kart arasındaki i2c iletişimini kolaylaştıran kütüphane pi4j'dir, çeşitli paketleri I2CBus, I2CDevice ve I2CFctory bağlantının kurulmasına yardımcı olur.

com.pi4j.io.i2c. I2CBus'u içe aktar; com.pi4j.io.i2c. I2CDevice'ı içe aktar; com.pi4j.io.i2c. I2CFFactory'yi içe aktarın; java.io. IOException'ı içe aktarın;

Kodun bu kısmı, write() işlevi kullanılarak ilgili komutlar yazılarak sensörün ışık yoğunluğu ölçümü için çalışmasını sağlar ve ardından veriler read() işlevi kullanılarak okunur.

device.write((bayt)0x01); // açma komutu

device.write((bayt)0x10); // sürekli ölçüm komutu

bayt veri = yeni bayt[2]; // 2 bayt veri oku

device.read(veri, 0, 2);

Sensörden alınan veriler, aşağıdakiler kullanılarak uygun formata dönüştürülür:

çift parlaklık = ((veri[0] & 0xFF) * 256 + (veri[1] & 0xFF)) / 1.20;

Çıktı, System.out.println() işlevi kullanılarak aşağıdaki biçimde yazdırılır.

System.out.printf("Ortam Işığı Parlaklığı: %.2f lux %n", parlaklık);

Sensörün çıkışı yukarıdaki resimde gösterilmektedir.

Adım 5: Uygulamalar:

Uygulamalar
Uygulamalar

BH1715, Cep telefonu, LCD TV, NOT PC vb. cihazlara dahil edilebilen dijital çıkışlı bir ortam ışığı sensörüdür. Taşınabilir oyun makinesi, Dijital kamera, Dijital video kamera, PDA, LCD ekran ve daha birçok cihazda da kullanılabilir. verimli ışık algılama uygulamaları.

Önerilen: