Съдържание:
- Стъпка 1: Общ преглед на BH1715:
- Стъпка 2: Какво ви трябва..
- Стъпка 3: Свързване на хардуера:
- Стъпка 4: Измерване на интензитета на светлината с помощта на Java код:
- Стъпка 5: Приложения:
Видео: Измерване на интензитета на светлината с помощта на BH1715 и Raspberry Pi: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Вчера работихме върху 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 код:
Предимството на използването на малинов 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 дисплей и много други устройства, които изискват ефективни приложения за откриване на светлина.
Препоръчано:
Измерване на времето (часовник за измерване на лента): 5 стъпки (със снимки)
Time Measure (Tape Measure Clock): За този проект ние (Alex Fiel & Anna Lynton) взехме ежедневен измервателен инструмент и го превърнахме в часовник! Първоначалният план беше да се моторизира съществуваща рулетка. Като направихме това, решихме, че ще бъде по -лесно да създадем своя собствена черупка, с която да работим
Начертаване на интензитета на светлината с помощта на Arduino и основната библиотека на Arduino на Python: 5 стъпки
Начертаване на интензитета на светлината с помощта на Arduino и основната библиотека Arduino на Python: Arduino е икономичен, но високоефективен и функционален инструмент, програмирането му във Embedded C прави процеса на създаване на проекти досаден! Модулът Arduino_Master на Python опростява това и ни позволява да извършваме изчисления, да премахваме стойностите на боклука
Изчисляване на интензитета на светлината с помощта на BH1715 и Arduino Nano: 5 стъпки
Изчисляване на интензитета на светлината с помощта на BH1715 и Arduino Nano: Вчера работихме върху LCD дисплеи и докато работихме над тях, осъзнахме важността на изчисляването на интензитета на светлината. Интензитетът на светлината е не само важен във физическата сфера на този свят, но има своята добре казана роля в биологията
Изчисляване на интензитета на светлината с помощта на BH1715 и фотон от частици: 5 стъпки
Изчисляване на интензитета на светлината с помощта на BH1715 и частичен фотон: Вчера работихме върху LCD дисплеи и докато работихме над тях, осъзнахме важността на изчисляването на интензитета на светлината. Интензитетът на светлината е не само важен във физическата сфера на този свят, но има своята добре казана роля в биологията
Измервател на интензитета на светлината без програмиране .: 7 стъпки (със снимки)
Измервател на интензитета на светлината без програмиране .: Тази инструкция е свързана с направата на основен измервател на интензитета на светлината, без да се използва Arduino или друг микроконтролер или програмиране. Измервателят на интензитета на светлината показва различни нива на интензивност на светлината с различни цветове на светодиодите. Червеният светодиод