Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-23 12:54
Dünən LCD displeylər üzərində işləyirdik və onların üzərində işləyərkən işıq intensivliyinin hesablanmasının vacibliyini anladıq. İşıq intensivliyi təkcə bu dünyanın fiziki aləmində deyil, həm də bioloji aləmdə yaxşı ifadə olunmuş rola malikdir. İşığın intensivliyinin dəqiq qiymətləndirilməsi ekosistemimizdə, bitkilərin böyüməsində və s. Əsas rol oynayır. Bu məqsədlə xidmət etmək üçün 16 bitlik seriyalı çıxış tipli ətraf işıq sensoru olan BH1715 sensorunu öyrəndik.
Bu təlimatda, BH1715 -in Raspberry pi ilə işlədiyini, Java -nı proqramlaşdırma dili olaraq istifadə edəcəyini nümayiş etdirəcəyik.
Bu məqsədlə ehtiyac duyacağınız avadanlıq aşağıdakılardır:
1. BH1715 - Ambient Light Sensor
2. Raspberryy Pi
3. I2C Kabeli
4. Raspberry Pi üçün I2C Shield
5. Ethernet Kabeli
Addım 1: BH1715 Baxış:
İlk növbədə, BH1715 olan sensor modulunun əsas xüsusiyyətləri və işlədiyi ünsiyyət protokolu ilə tanış olmaq istərdik.
BH1715, I²C avtobus interfeysi olan rəqəmsal Ətraf İşıq Sensorudur. BH1715 ümumiyyətlə mobil cihazlar üçün LCD və Klaviatura arxa işığının gücünü tənzimləmək üçün ətraf işıq məlumatlarını əldə etmək üçün istifadə olunur. Bu cihaz 16 bitlik qətnamə və tənzimlənən ölçü diapazonuna malikdir.
Sensorun işlədiyi rabitə protokolu I2C -dir. I2C, inteqrasiya edilmiş dövrəni ifadə edir. SDA (serial məlumat) və SCL (serial saat) xətləri vasitəsi ilə ünsiyyətin qurulduğu bir ünsiyyət protokoludur. Eyni anda birdən çox cihazı birləşdirməyə imkan verir. Ən sadə və ən təsirli ünsiyyət protokollarından biridir.
Addım 2: Nə Lazımdır..
Məqsədimizə çatmaq üçün ehtiyacımız olan materiallar aşağıdakı aparat komponentlərindən ibarətdir:
1. BH1715 - Ambient Light Sensor
2. Moruq Pi
3. I2C Kabeli
4. Raspberry Pi üçün I2C Shield
5. Ethernet kabeli
Addım 3: Hardware Bağlantısı:
Avadanlıq bağlama bölməsi əsasən sensor və moruq pi arasında lazım olan tel əlaqələrini izah edir. İstənilən çıxış üçün hər hansı bir sistem üzərində işləyərkən düzgün əlaqələrin təmin edilməsi əsas zərurətdir. Beləliklə, zəruri əlaqələr aşağıdakılardır:
BH1715 I2C üzərində işləyəcək. Sensorun hər bir interfeysini necə bağlayacağınızı göstərən nümunə naqillər diaqramı.
Qutudan kənarda, lövhə I2C interfeysi üçün konfiqurasiya olunmuşdur, buna görə də başqa cür agnostiksinizsə bu əlaqəni istifadə etməyi məsləhət görürük. Lazım olan tək şey dörd teldir!
Vcc, Gnd, SCL və SDA pinləri üçün yalnız dörd əlaqə lazımdır və bunlar I2C kabelinin köməyi ilə bağlanır.
Bu əlaqələr yuxarıdakı şəkillərdə göstərilmişdir.
Addım 4: Java Kodundan istifadə edərək İşıq Gücünün Ölçülməsi:
Moruq pi istifadə etmənin üstünlüyü, sensoru onunla əlaqələndirmək üçün lövhəni proqramlaşdırmaq istədiyiniz proqramlaşdırma dilinin rahatlığını təmin edir. Bu lövhənin bu üstünlüyündən istifadə edərək burada Java dilində proqramlaşdırdığını nümayiş etdiririk. BH1715 üçün Java kodunu Dcube Mağazası olan GitHub cəmiyyətimizdən yükləyə bilərsiniz.
İstifadəçilərin rahatlığı üçün, kodu da burada izah edirik:
Kodlaşdırmanın ilk addımı olaraq java vəziyyətində pi4j kitabxanasını yükləməlisiniz, çünki bu kitabxana kodda istifadə olunan funksiyaları dəstəkləyir. Beləliklə, kitabxananı yükləmək üçün aşağıdakı linkə daxil ola bilərsiniz:
pi4j.com/install.html
Bu sensor üçün işləyən java kodunu buradan da kopyalaya bilərsiniz:
// Azad iradə lisenziyası ilə paylanmışdır.
// İstənilən şəkildə, mənfəət və ya pulsuz istifadə edin, əlaqəli əsərlərinin lisenziyalarına uyğun gəlir.
// BH1715
// Bu kod ControlEverything.com saytında mövcud olan BH1715_I2CS I2C Mini Modulu ilə işləmək üçün hazırlanmışdır.
//
com.pi4j.io.i2c. I2CBus idxal edin;
com.pi4j.io.i2c. I2CDevice idxal edin;
com.pi4j.io.i2c. I2CFactory idxal edin;
java.io. IOException idxal edin;
ictimai sinif BH1715
{
public static void main (String args ) İstisna atır
{
// I2C avtobusu yaradın
I2CBus avtobusu = I2CFactory.getInstance (I2CBus. BUS_1);
// I2C cihazı alın, BH1715 I2C ünvanı 0x23 (35)
I2CDevice cihazı = bus.getDevice (0x23);
// Güc əmrini göndərin
device.write ((bayt) 0x01);
// Davamlı ölçmə əmri göndərin
device.write ((bayt) 0x10);
Thread.sleep (500);
// 2 bayt məlumat oxuyun
// parlaqlıq msb, parlaqlıq lsb
bayt məlumat = yeni bayt [2];
device.read (data, 0, 2);
// Məlumatları çevirin
ikiqat parlaqlıq = ((data [0] & 0xFF) * 256 + (data [1] & 0xFF)) / 1.20;
// Ekrana məlumat çıxarın
System.out.printf ("Ambient Light Luminance: %.2f lux %n", parlaqlıq);
}
}
Sensor və lövhə arasında i2c əlaqəsini asanlaşdıran kitabxana pi4j -dir, onun müxtəlif paketləri I2CBus, I2CDevice və I2CFactory əlaqəni qurmağa kömək edir.
com.pi4j.io.i2c. I2CBus; idxal com.pi4j.io.i2c. I2CDevice; com.pi4j.io.i2c. I2CFactory idxal edin; java.io. IOException idxal edin;
Kodun bu hissəsi, sensorun yazma () funksiyasından istifadə edərək müvafiq əmrləri yazaraq işıq intensivliyi ölçümü üçün işləməsini təmin edir və sonra oxumaq () funksiyasından istifadə edərək məlumatları oxuyur.
device.write ((bayt) 0x01); // güc əmri
device.write ((bayt) 0x10); // davamlı ölçmə əmri
bayt məlumat = yeni bayt [2]; // 2 bayt məlumat oxuyun
device.read (data, 0, 2);
Sensordan alınan məlumatlar aşağıdakılardan istifadə edərək uyğun formata çevrilir:
ikiqat parlaqlıq = ((data [0] & 0xFF) * 256 + (data [1] & 0xFF)) / 1.20;
Çıxış System.out.println () funksiyasından istifadə edərək aşağıdakı formatda çap olunur.
System.out.printf ("Ambient Light Luminance: %.2f lux %n", parlaqlıq);
Sensorun çıxışı yuxarıdakı şəkildə göstərilmişdir.
Addım 5: Tətbiqlər:
BH1715, Cib telefonu, LCD TV, NOTE PC və s. Daxil edilə bilən rəqəmsal bir çıxış işıq sensoru, Portativ oyun maşını, Rəqəmsal kamera, Rəqəmsal video kamera, PDA, LCD ekran və daha çox cihazda istifadə edilə bilər. səmərəli işıq algılama tətbiqləri.
Tövsiyə:
AD7416ARZ və Raspberry Pi istifadə edərək temperaturun ölçülməsi: 4 addım
AD7416ARZ və Raspberry Pi istifadə edərək temperaturun ölçülməsi: AD7416ARZ, rəqəmsal çeviricilərə bənzər dörd tək kanallı analoqlu 10 bitlik bir temperatur sensoru və daxil edilmiş bir təyyarə temperatur sensoru. Parçalardakı temperatur sensoru multiplexer kanalları vasitəsilə əldə edilə bilər. Bu yüksək dəqiqlikli temperatur
HMC5883 və Raspberry Pi istifadə edərək maqnit sahəsinin ölçülməsi: 4 addım
HMC5883 və Raspberry Pi istifadə edərək maqnit sahəsinin ölçülməsi: HMC5883, aşağı sahə maqnit algılaması üçün hazırlanmış rəqəmsal bir kompasdır. Bu cihaz +/- 8 Oe geniş bir maqnit sahəsinə və 160 Hz çıxış sürətinə malikdir. HMC5883 sensoru avtomatik degaussing kəmər sürücüləri, ofset ləğvi və
CPS120 və Raspberry Pi istifadə edərək təzyiq ölçülməsi: 4 addım
CPS120 və Raspberry Pi istifadə edərək təzyiq ölçülməsi: CPS120, tam kompensasiya edilmiş çıxışı olan yüksək keyfiyyətli və aşağı qiymətli kapasitiv mütləq təzyiq sensoru. Çox az enerji sərf edir və təzyiqin ölçülməsi üçün ultra kiçik Mikroelektromekanik Sensordan (MEMS) ibarətdir. Sigma-delta əsaslı
BH1715 və Arduino Nano istifadə edərək İşıq Gücünün Hesablanması: 5 addım
BH1715 və Arduino Nano istifadə edərək işıq intensivliyi hesablaması: Dünən LCD displeylər üzərində işləyirdik və onların üzərində işləyərkən işıq intensivliyi hesablamasının əhəmiyyətini anladıq. İşıq intensivliyi təkcə bu dünyanın fiziki aləmində deyil, bioloji fəaliyyətində də çox yaxşı deyilən rola malikdir
BH1715 və Particle Photon istifadə edərək İşıq İntensivliyi Hesablanması: 5 addım
BH1715 və Particle Photon istifadə edərək işığın intensivliyinin hesablanması: Dünən LCD displeylər üzərində işləyirdik və onların üzərində işləyərkən işıq intensivliyi hesablamasının vacibliyini anladıq. İşıq intensivliyi təkcə bu dünyanın fiziki aləmində deyil, bioloji fəaliyyətində də çox yaxşı deyilən rola malikdir