Измерение интенсивности света с помощью BH1715 и Raspberry Pi: 5 шагов
Измерение интенсивности света с помощью BH1715 и Raspberry Pi: 5 шагов
Anonim
Image
Image

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

В этом руководстве мы собираемся продемонстрировать работу BH1715 с Raspberry pi, используя Java в качестве языка программирования.

Для этого вам понадобится следующее оборудование:

1. BH1715 - Датчик внешней освещенности

2. Raspberryy Pi

3. Кабель I2C

4. I2C Shield для Raspberry Pi

5. Кабель Ethernet.

Шаг 1: Обзор BH1715:

Что вам нужно..!!
Что вам нужно..!!

Прежде всего, мы хотели бы познакомить вас с основными характеристиками сенсорного модуля BH1715 и протоколом связи, по которому он работает.

BH1715 - это цифровой датчик внешней освещенности с интерфейсом шины I²C. BH1715 обычно используется для получения данных об окружающем освещении для регулировки мощности подсветки ЖК-дисплея и клавиатуры для мобильных устройств. Это устройство предлагает 16-битное разрешение и регулируемый диапазон измерения, позволяя обнаруживать от 0,23 до 100 000 люкс.

Протокол связи, по которому работает датчик, - I2C. I2C означает межинтегральную схему. Это протокол связи, в котором связь осуществляется через линии SDA (последовательные данные) и SCL (последовательные часы). Это позволяет одновременно подключать несколько устройств. Это один из самых простых и эффективных протоколов связи.

Шаг 2: Что вам нужно..

Что вам нужно..!!
Что вам нужно..!!
Что вам нужно..!!
Что вам нужно..!!
Что вам нужно..!!
Что вам нужно..!!

Материалы, которые нам нужны для достижения нашей цели, включают следующие компоненты оборудования:

1. BH1715 - Датчик внешней освещенности

2. Raspberry Pi

3. Кабель I2C

4. I2C Shield для Raspberry Pi

5. Кабель Ethernet.

Шаг 3: Подключение оборудования:

Подключение оборудования
Подключение оборудования
Подключение оборудования
Подключение оборудования

В разделе «Подключение оборудования» в основном объясняются проводные соединения, необходимые между датчиком и Raspberry Pi. Обеспечение правильных соединений является основной необходимостью при работе с любой системой для достижения желаемого результата. Итак, необходимые подключения следующие:

BH1715 будет работать по I2C. Вот пример схемы подключения, демонстрирующий, как подключить каждый интерфейс датчика.

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

Требуются только четыре соединения, выводы Vcc, Gnd, SCL и SDA, которые подключаются с помощью кабеля I2C.

Эти соединения показаны на рисунках выше.

Шаг 4: Измерение интенсивности света с помощью кода Java:

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

Преимущество использования raspberry pi заключается в том, что он предоставляет вам гибкость языка программирования, на котором вы хотите запрограммировать плату, чтобы связать с ней датчик. Используя это преимущество этой платы, мы демонстрируем здесь ее программирование на Java. Код Java для BH1715 можно загрузить в нашем сообществе GitHub, которое называется Dcube Store.

Помимо удобства пользователей, мы также объясняем код здесь:

В качестве первого шага кодирования вам необходимо загрузить библиотеку pi4j в случае java, потому что эта библиотека поддерживает функции, используемые в коде. Итак, чтобы скачать библиотеку, вы можете перейти по следующей ссылке:

pi4j.com/install.html

Вы также можете скопировать рабочий java-код для этого датчика отсюда:

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

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

// BH1715

// Этот код разработан для работы с мини-модулем BH1715_I2CS I2C, доступным на ControlEverything.com.

//

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

import com.pi4j.io.i2c. I2CFactory;

import java.io. IOException;

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

{

public static void main (String args ) выдает исключение

{

// Создаем шину I2C

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

// Получение устройства I2C, адрес I2C BH1715 0x23 (35)

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

// Отправляем команду включения

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

// Отправляем команду непрерывного измерения

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

Thread.sleep (500);

// Считываем 2 байта данных

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

byte data = новый байт [2];

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

// Конвертируем данные

двойная яркость = ((данные [0] & 0xFF) * 256 + (данные [1] & 0xFF)) / 1.20;

// Выводим данные на экран

System.out.printf ("Яркость окружающего света:%.2f люкс% n", яркость);

}

}

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

импорт com.pi4j.io.i2c. I2CBus; импорт com.pi4j.io.i2c. I2CDevice; import com.pi4j.io.i2c. I2CFactory; import java.io. IOException;

Эта часть кода заставляет датчик работать для измерения интенсивности света, записывая соответствующие команды с помощью функции write (), а затем данные считываются с помощью функции read ().

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

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

byte data = новый байт [2]; // Считываем 2 байта данных

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

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

двойная яркость = ((данные [0] & 0xFF) * 256 + (данные [1] & 0xFF)) / 1.20;

Вывод печатается с использованием функции System.out.println () в следующем формате.

System.out.printf ("Яркость окружающего света:%.2f люкс% n", яркость);

Выход датчика показан на картинке выше.

Шаг 5: Приложения:

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

BH1715 - это датчик внешней освещенности с цифровым выходом, который может быть встроен в мобильный телефон, ЖК-телевизор, ноутбук и т. Д. Его также можно использовать в портативных игровых автоматах, цифровых камерах, цифровых видеокамерах, КПК, ЖК-дисплеях и многих других устройствах, для которых требуется эффективные светочувствительные приложения.

Рекомендуемые: