BH1715 va Raspberry Pi yordamida yorug'lik intensivligini o'lchash: 5 qadam
BH1715 va Raspberry Pi yordamida yorug'lik intensivligini o'lchash: 5 qadam
Anonim
Image
Image

Kecha biz LCD displeylar ustida ishladik va ular ustida ishlayotganda yorug'lik intensivligini hisoblash muhimligini tushundik. Yorug'likning intensivligi nafaqat bu dunyoda, balki uning biologik sohasida ham muhim rol o'ynaydi. Yorug'lik intensivligini aniq baholash bizning ekotizimimizda, o'simliklarning o'sishida va boshqalarda hal qiluvchi rol o'ynaydi. Shunday qilib, biz bu maqsadda xizmat qilish uchun BH1715 sensorini o'rganib chiqdik, u 16-bitli ketma-ket chiqadigan tashqi yorug'lik sensori.

Ushbu qo'llanmada biz BH1715 ning Raspberry pi bilan ishlashini Java dasturlash tili sifatida ko'rsatamiz.

Buning uchun sizga kerak bo'lgan uskunalar quyidagilar:

1. BH1715 - Atrofdagi yorug'lik sensori

2. Raspberryy Pi

3. I2C kabeli

4. Raspberry Pi uchun I2C qalqoni

5. Ethernet kabeli

1 -qadam: BH1715 haqida umumiy ma'lumot:

Sizga nima kerak.. !!
Sizga nima kerak.. !!

Avvalo, biz sizni BH1715 sensor modulining asosiy xususiyatlari va u ishlaydigan aloqa protokoli bilan tanishtirmoqchimiz.

BH1715 - bu I²C avtobus interfeysi bilan ishlaydigan raqamli yorug'lik sensori. BH1715 odatda mobil qurilmalar uchun LCD va klaviatura orqa nuri quvvatini sozlash uchun atrofdagi yorug'lik ma'lumotlarini olish uchun ishlatiladi. Ushbu qurilma 16-bitli piksellar sonini va sozlanishi o'lchov diapazonini taqdim etadi, bu esa 23 dan 100 000 lyuksgacha aniqlash imkonini beradi.

Sensor ishlaydigan aloqa protokoli I2C. I2C o'zaro integratsiyalashgan sxemani anglatadi. Bu aloqa protokoli bo'lib, bunda aloqa SDA (ketma -ket ma'lumotlar) va SCL (ketma -ket soat) liniyalari orqali amalga oshiriladi. Bu bir vaqtning o'zida bir nechta qurilmalarni ulash imkonini beradi. Bu eng oddiy va samarali aloqa protokoli.

2 -qadam: Sizga nima kerak.. !

Sizga nima kerak.. !!
Sizga nima kerak.. !!
Sizga nima kerak.. !!
Sizga nima kerak.. !!
Sizga nima kerak.. !!
Sizga nima kerak.. !!

Maqsadga erishish uchun bizga kerak bo'lgan materiallar quyidagi apparat komponentlarini o'z ichiga oladi:

1. BH1715 - Atrofdagi yorug'lik sensori

2. Raspberry Pi

3. I2C kabeli

4. Raspberry Pi uchun I2C qalqoni

5. Ethernet kabeli

3 -qadam: Uskuna ulanishi:

Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi

Uskuna ulanish bo'limi, asosan, sensori va malina pi o'rtasida zarur bo'lgan simi ulanishlarini tushuntiradi. To'g'ri ulanishni ta'minlash har qanday tizimda kerakli chiqish uchun ishlashning asosiy zarurati hisoblanadi. Shunday qilib, kerakli ulanishlar quyidagilar:

BH1715 I2C ustida ishlaydi. Sensorning har bir interfeysini qanday ulash kerakligini ko'rsatadigan simlar sxemasi.

Qutidan tashqari, taxta I2C interfeysi uchun tuzilgan, shuning uchun agar siz agnostik bo'lsangiz, biz ushbu ulanishni ishlatishni maslahat beramiz. Sizga faqat to'rtta sim kerak!

Vcc, Gnd, SCL va SDA pinlari uchun faqat to'rtta ulanish kerak va ular I2C kabeli yordamida ulangan.

Bu ulanishlar yuqoridagi rasmlarda ko'rsatilgan.

4 -qadam: Java kodi yordamida yorug'lik intensivligini o'lchash:

Java kodi yordamida yorug'lik intensivligini o'lchash
Java kodi yordamida yorug'lik intensivligini o'lchash
Java kodi yordamida yorug'lik intensivligini o'lchash
Java kodi yordamida yorug'lik intensivligini o'lchash

Malinali pi -ni ishlatishning afzalligi shundaki, u sizga sensorni interfeysga ulash uchun taxtani dasturlashni xohlagan dasturlash tilining moslashuvchanligini ta'minlaydi. Ushbu kengashning afzalliklaridan foydalanib, biz bu erda Java -da dasturlashni namoyish qilamiz. BH1715 uchun Java kodini bizning GitHub hamjamiyatidan yuklab olish mumkin, bu Dcube do'koni.

Foydalanuvchilarning qulayligi uchun biz bu erda ham kodni tushuntiramiz:

Kodlashning birinchi bosqichi sifatida siz java holatida pi4j kutubxonasini yuklab olishingiz kerak, chunki bu kutubxona kodda ishlatiladigan funktsiyalarni qo'llab -quvvatlaydi. Shunday qilib, kutubxonani yuklab olish uchun quyidagi havolaga kirishingiz mumkin:

pi4j.com/install.html

Bu sensor uchun ishlaydigan java kodini bu erdan ham ko'chirishingiz mumkin:

// Ixtiyoriy litsenziya bilan tarqatilgan.

// Agar xohlasangiz, foyda yoki tekin ishlating, agar u tegishli asarlar litsenziyalariga mos kelsa.

// BH1715

// Bu kod ControlEverything.com saytida mavjud BH1715_I2CS I2C Mini moduli bilan ishlash uchun mo'ljallangan.

//

com.pi4j.io.i2c. I2CBus -ni import qilish;

com.pi4j.io.i2c. I2CDevice -ni import qilish;

com.pi4j.io.i2c. I2CFactory -ni import qilish;

java.io. IOException ni import qilish;

BH1715 ommaviy klassi

{

public static void main (String args ) istisno qiladi

{

// I2C avtobusini yarating

I2CBus avtobus = I2CFactory.getInstance (I2CBus. BUS_1);

// I2C qurilmasini oling, BH1715 I2C manzili 0x23 (35)

I2CDevice qurilmasi = bus.getDevice (0x23);

// Quvvatni yoqish buyrug'ini yuboring

device.write ((bayt) 0x01);

// Uzluksiz o'lchash buyrug'ini yuboring

device.write ((bayt) 0x10);

Thread.sleep (500);

// 2 bayt ma'lumotni o'qing

// yorqinlik msb, yorqinlik lsb

bayt ma'lumotlar = yangi bayt [2];

device.read (ma'lumotlar, 0, 2);

// Ma'lumotni aylantirish

ikki tomonlama yorug'lik = ((ma'lumotlar [0] & 0xFF) * 256 + (ma'lumotlar [1] & 0xFF)) / 1.20;

// Ma'lumotni ekranga chiqarish

System.out.printf ("Atrofdagi yorug'lik yorug'ligi: %.2f lyuks %n", yorqinligi);

}

}

Sensor va karta o'rtasidagi i2c aloqasini osonlashtiradigan kutubxona pi4j, uning turli paketlari I2CBus, I2CDevice va I2CFactory ulanishni o'rnatishga yordam beradi.

com.pi4j.io.i2c. I2CBus; import com.pi4j.io.i2c. I2CDevice; com.pi4j.io.i2c. I2CFactory -ni import qilish; java.io. IOException ni import qilish;

Kodning bu qismi sensorni yozish () funktsiyasidan foydalanib, tegishli buyruqlarni yozish orqali yorug'lik qizg'inligini o'lchash uchun ishlaydi, so'ngra o'qish () funktsiyasi yordamida ma'lumotlar o'qiladi.

device.write ((bayt) 0x01); // yoqish buyrug'i

device.write ((bayt) 0x10); // uzluksiz o'lchash buyrug'i

bayt ma'lumotlar = yangi bayt [2]; // 2 bayt ma'lumotni o'qing

device.read (ma'lumotlar, 0, 2);

Sensordan olingan ma'lumotlar quyidagicha mos formatga o'tkaziladi:

ikki tomonlama yorug'lik = ((ma'lumotlar [0] & 0xFF) * 256 + (ma'lumotlar [1] & 0xFF)) / 1.20;

Chiqish System.out.println () funktsiyasi yordamida quyidagi formatda chop etiladi.

System.out.printf ("Atrofdagi yorug'lik yorug'ligi: %.2f lyuks %n", yorqinligi);

Sensorning chiqishi yuqoridagi rasmda ko'rsatilgan.

5 -qadam: Ilovalar:

Ilovalar
Ilovalar

BH1715 - bu raqamli chiqadigan tashqi yorug'lik sensori bo'lib, uni mobil telefon, LCD televizor, QAYD kompyuterlari va boshqalarga kiritish mumkin. Bundan tashqari, u ko'chma o'yin mashinasi, raqamli kamera, raqamli videokamera, PDA, LCD displey va boshqa ko'plab qurilmalarda ishlatilishi mumkin. nurni sezishning samarali dasturlari.

Tavsiya: