Съдържание:

Измерване на интензитета на светлината с помощта на BH1715 и Raspberry Pi: 5 стъпки
Измерване на интензитета на светлината с помощта на BH1715 и Raspberry Pi: 5 стъпки

Видео: Измерване на интензитета на светлината с помощта на BH1715 и Raspberry Pi: 5 стъпки

Видео: Измерване на интензитета на светлината с помощта на BH1715 и Raspberry Pi: 5 стъпки
Видео: Какво и Как да правим с Микроконтролери - Невен Боянов 2024, Ноември
Anonim
Image
Image

Вчера работихме върху LCD дисплеи и докато работихме над тях, осъзнахме важността на изчисляването на интензитета на светлината. Интензивността на светлината е не само важна във физическата област на този свят, но има своята добре казана роля и в биологичната област. Точната оценка на интензитета на светлината играе ключова роля в нашата екосистема, в растежа на растенията и т.н. Така че, за тази цел ние изследвахме този сензор BH1715, който е 16-битов сензор за околна светлина от сериен изход.

В този урок ще демонстрираме работата на BH1715 с Raspberry pi, използвайки Java като език за програмиране.

Хардуерът, който ще ви е необходим за тази цел, е следният:

1. BH1715 - Сензор за околна светлина

2. Малина Пи

3. I2C кабел

4. I2C щит за Raspberry Pi

5. Ethernet кабел

Стъпка 1: Общ преглед на BH1715:

От какво имаш нужда..!!
От какво имаш нужда..!!

На първо място, бихме искали да ви запознаем с основните характеристики на сензорния модул, който е BH1715, и комуникационния протокол, по който работи.

BH1715 е цифров сензор за околна светлина с интерфейс на I²C шина. BH1715 обикновено се използва за получаване на данни за околната светлина за регулиране на мощността на подсветката на LCD и клавиатурата за мобилни устройства. Това устройство предлага 16-битова резолюция и регулируем обхват на измерване, което позволява откриване от.23 до 100, 000 лукса.

Комуникационният протокол, по който работи сензорът, е I2C. I2C означава междуинтегрална схема. Това е комуникационен протокол, в който комуникацията се осъществява чрез линии SDA (серийни данни) и SCL (сериен часовник). Тя позволява свързване на няколко устройства едновременно. Това е един от най -простите и ефективни комуникационни протоколи.

Стъпка 2: Какво ви трябва..

От какво имаш нужда..!!
От какво имаш нужда..!!
От какво имаш нужда..!!
От какво имаш нужда..!!
От какво имаш нужда..!!
От какво имаш нужда..!!

Материалите, от които се нуждаем за постигане на целта ни, включват следните хардуерни компоненти:

1. BH1715 - Сензор за околна светлина

2. Малина Пи

3. I2C кабел

4. I2C щит за Raspberry Pi

5. Ethernet кабел

Стъпка 3: Свързване на хардуера:

Хардуерно свързване
Хардуерно свързване
Хардуерно свързване
Хардуерно свързване

Разделът за свързване на хардуер основно обяснява необходимите кабелни връзки между сензора и малиновото пи. Осигуряването на правилни връзки е основната необходимост, докато работите върху всяка система за желания изход. И така, необходимите връзки са както следва:

BH1715 ще работи през I2C. Ето примерната електрическа схема, демонстрираща как да свържете всеки интерфейс на сензора.

Извън кутията, дъската е конфигурирана за I2C интерфейс, като такава препоръчваме да използвате тази връзка, ако иначе не сте агностици. Всичко, от което се нуждаете, са четири проводника!

Изискват се само четири връзки Vcc, Gnd, SCL и SDA щифтове и те са свързани с помощта на I2C кабел.

Тези връзки са показани на снимките по -горе.

Стъпка 4: Измерване на интензитета на светлината с помощта на Java код:

Измерване на интензитета на светлината с помощта на Java код
Измерване на интензитета на светлината с помощта на Java код
Измерване на интензитета на светлината с помощта на Java код
Измерване на интензитета на светлината с помощта на Java код

Предимството на използването на малинов pi е, че ви осигурява гъвкавостта на езика за програмиране, на който искате да програмирате платката, за да свържете интерфейса на сензора с нея. Възползвайки се от това предимство на тази дъска, ние демонстрираме тук нейното програмиране на Java. Java кодът за BH1715 може да бъде изтеглен от нашата GitHub общност, която е Dcube Store.

Освен за улеснение на потребителите, ние обясняваме кода и тук:

Като първа стъпка на кодиране трябва да изтеглите библиотеката pi4j в случай на java, защото тази библиотека поддържа функциите, използвани в кода. Така че, за да изтеглите библиотеката, можете да посетите следната връзка:

pi4j.com/install.html

Можете да копирате работещия java код за този сензор и от тук:

// Разпространява се с лиценз за свободна воля.

// Използвайте го по какъвто начин искате, печалба или безплатно, при условие че се вписва в лицензите на свързаните с него произведения.

// BH1715

// Този код е проектиран да работи с мини модула BH1715_I2CS I2C, достъпен от ControlEverything.com.

//

внос com.pi4j.io.i2c. I2CBus;

внос com.pi4j.io.i2c. I2CDevice;

внос com.pi4j.io.i2c. I2CFactory;

импортиране на java.io. IOException;

обществен клас BH1715

{

public static void main (String args ) хвърля Exception

{

// Създаване на I2C шина

I2CBus шина = I2CFactory.getInstance (I2CBus. BUS_1);

// Вземете I2C устройство, BH1715 I2C адресът е 0x23 (35)

I2CDevice устройство = bus.getDevice (0x23);

// Изпращане на команда при включване

device.write ((байт) 0x01);

// Изпращане на команда за непрекъснато измерване

device.write ((байт) 0x10);

Thread.sleep (500);

// Прочетете 2 байта данни

// яркост msb, яркост lsb

байт данни = нов байт [2];

device.read (данни, 0, 2);

// Конвертиране на данни

двойна яркост = ((данни [0] & 0xFF) * 256 + (данни [1] & 0xFF)) / 1,20;

// Извеждане на данни на екрана

System.out.printf ("Яркост на околната светлина: %.2f lux %n", яркост);

}

}

Библиотеката, която улеснява i2c комуникацията между сензора и платката, е pi4j, нейните различни пакети I2CBus, I2CDevice и I2CFactory помагат за установяване на връзката.

внос com.pi4j.io.i2c. I2CBus; импортиране com.pi4j.io.i2c. I2CDevice; внос com.pi4j.io.i2c. I2CFactory; импортиране на java.io. IOException;

Тази част от кода кара сензора да работи за измерване на интензитета на светлината чрез изписване на съответните команди с помощта на функцията write () и след това данните се четат с помощта на функцията read ().

device.write ((байт) 0x01); // включване по команда

device.write ((байт) 0x10); // команда за непрекъснато измерване

байт данни = нов байт [2]; // Прочетете 2 байта данни

device.read (данни, 0, 2);

Данните, получени от сензора, се преобразуват в подходящ формат, като се използва следното:

двойна яркост = ((данни [0] & 0xFF) * 256 + (данни [1] & 0xFF)) / 1,20;

Изходът се отпечатва с помощта на функцията System.out.println () в следния формат.

System.out.printf ("Яркост на околната светлина: %.2f lux %n", яркост);

Изходът на сензора е показан на горната снимка.

Стъпка 5: Приложения:

Приложения
Приложения

BH1715 е сензор за околна светлина с цифров изход, който може да бъде вграден в мобилен телефон, LCD телевизор, компютър с бележки и др. Може да се използва и в преносима игрална машина, цифров фотоапарат, цифрова видеокамера, PDA, LCD дисплей и много други устройства, които изискват ефективни приложения за откриване на светлина.

Препоръчано: