Оглавление:

Измеритель света Arduino DIY с датчиком BH1750: 6 шагов (с изображениями)
Измеритель света Arduino DIY с датчиком BH1750: 6 шагов (с изображениями)

Видео: Измеритель света Arduino DIY с датчиком BH1750: 6 шагов (с изображениями)

Видео: Измеритель света Arduino DIY с датчиком BH1750: 6 шагов (с изображениями)
Видео: Урок по Arduino. Датчик освещенности BH1750. Измеряем силу света 2024, Ноябрь
Anonim
Image
Image
Измеритель света Arduino DIY с датчиком BH1750
Измеритель света Arduino DIY с датчиком BH1750

В этом руководстве я собираюсь показать вам, как построить люксметр с большим ЖК-дисплеем Nokia 5110 с использованием Arduino.

Изготовление светомера - это отличный учебный опыт. Когда вы закончите сборку этого проекта, вы лучше поймете, как работают измерители света, и увидите в действии, насколько мощной может быть платформа Arduino. Имея за основу этот проект и полученный опыт, вы сможете легко создавать более сложные проекты в будущем. Вы можете использовать этот проект для мониторинга условий освещения вашей рабочей среды, ваших растений и так далее. Без промедления, приступим!

Шаг 1. Получите все детали

Получить все детали
Получить все детали

Детали, необходимые для создания этого проекта, следующие:

  • Arduino Uno ▶
  • BH1750 ▶
  • ЖК-дисплей Nokia 5110 ▶
  • Малая макетная плата ▶
  • Провода ▶

Стоимость проекта около 12 долларов.

Шаг 2. Датчик освещенности BH1750

Датчик освещенности BH1750
Датчик освещенности BH1750

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

Эта плата лучше, чем LDR, который выводит только напряжение. С помощью датчика освещенности BH1750 интенсивность света можно напрямую измерить люксметром без необходимости производить вычисления. Данные, которые выводятся этим датчиком, напрямую выводятся в люксах (Lx).

Датчик использует интерфейс I2C, поэтому его очень легко использовать с Arduino. Вам нужно всего лишь подключить 2 провода.

Также цена датчика очень низкая, она составляет около 2 долларов.

Вы можете получить его здесь: ▶

Шаг 3. ЖК-дисплей Nokia 5110

Image
Image
Построение измерителя освещенности
Построение измерителя освещенности

Nokia 5110 - мой любимый дисплей в моих проектах Arduino.

Nokia 5110 - это простой графический ЖК-экран, изначально предназначенный для использования в качестве экрана мобильного телефона. Он использует контроллер PCD8544, который является контроллером / драйвером CMOS LCD с низким энергопотреблением. Благодаря этому у этого дисплея впечатляющее энергопотребление. Когда он включен, он потребляет всего 0,4 мА, но подсветка отключена. В спящем режиме он потребляет менее 0,06 мА! Это одна из причин, почему этот дисплей стал моим любимым. PCD8544 взаимодействует с микроконтроллерами через интерфейс последовательной шины. Это делает дисплей очень простым в использовании с Arduino.

Вам нужно всего лишь подключить 8 проводов и использовать следующую библиотеку:

Эта впечатляющая библиотека разработана Хеннингом Карлсеном, который приложил огромные усилия, чтобы помочь сообществу Arduino продвинуться вперед со своими библиотеками.

Я подготовил подробное руководство по использованию ЖК-дисплея Nokia 5110 с Arduino. Я приложил это видео к данному руководству, оно может предоставить полезную информацию о дисплее, поэтому я рекомендую вам внимательно его просмотреть.

Стоимость дисплея составляет около 4 долларов.

Вы можете получить его здесь: ▶

Шаг 4: построение измерителя освещенности

Построение измерителя освещенности
Построение измерителя освещенности

Теперь давайте соединим все части вместе.

Сначала подключаем модуль светового датчика BH1750. У него всего 5 контактов, но мы подключим 4 из них.

Подключение датчика напряжения

Вывод Vcc идет на 5 В Arduino

Вывод GND идет на GND Arduino.

Контакт SCL идет к аналоговому выводу 5 Arduino Uno.

Вывод SDA подключается к аналоговому выводу 4 Arduino Uno.

Адресный контакт остается неподключенным

Следующим шагом будет подключение ЖК-дисплея Nokia 5110.

Подключение ЖК-дисплея Nokia 5110

RST идет на цифровой контакт 12 Arduino

CE идет на цифровой вывод 11 Arduino

DC подключается к цифровому выводу 10 Arduino

DIN переходит на цифровой вывод 9 Arduino

CLK идет на цифровой контакт 8 Arduino

VCC идет на Arduino 3.3V LIGHT идет на Arduino GND (подсветка включена)

GND идет к Arduino GND

Теперь, когда мы соединили все части вместе, все, что нам нужно сделать, это загрузить код. На пару секунд отображается экран-заставка, а затем мы можем начать измерение интенсивности света в реальном времени!

Шаг 5: Код проекта

Image
Image
Тестирование проекта
Тестирование проекта

Код проекта состоит из 3-х файлов.

splash.cui.c

ui.c

BH1750LightMeter.ino

Код - изображение заставки

В первом файле splash.c содержатся двоичные значения заставки, которая отображается на ЖК-дисплее Nokia 5110 при загрузке проекта. Пожалуйста, посмотрите прикрепленное видео, которое я подготовил, чтобы увидеть, как загрузить вашу собственную графику в ваш проект Arduino.

Код ui.c - Пользовательский интерфейс

В файле ui.c есть двоичные значения пользовательского интерфейса, которые появляются после того, как проект показывает экран-заставку. Пожалуйста, посмотрите прикрепленное видео, которое я подготовил, чтобы увидеть, как загрузить вашу собственную графику в ваш проект Arduino.

Код UVMeter.ino - Основная программа

Основной код проекта очень простой. Нам нужно включить библиотеку Nokia 5110. Затем мы объявляем некоторые переменные. Мы инициализируем дисплей и отображаем заставку на 3 секунды. После этого мы печатаем значок ui один раз и считываем значение с датчика 150 миллисекунд. Вся магия происходит в функции цикла:

void loop () {int stringLength = 0; uint16_t lux = lightSensor.readLightLevel (); // Считываем показания датчика освещенности = String (люкс); // Преобразование в строку stringLength = light.length (); // Нам нужно знать длину строки lcd.clrScr (); lcd.drawBitmap (0, 0, ui, 84, 48); printLight (stringLength); // Распечатать строку на дисплее lcd.update (); задержка (150); }

Я приложил код к этой инструкции. Чтобы загрузить последнюю версию кода, вы можете посетить веб-страницу проекта:

Шаг 6: Тестирование проекта

Тестирование проекта
Тестирование проекта
Тестирование проекта
Тестирование проекта

Теперь, когда код загружен, мы можем протестировать измеритель освещенности в помещении и на улице. Я тестирую его солнечным весенним днем здесь, в Греции. Результат фантастический. Мы можем точно измерить интенсивность света с помощью простого в сборке проекта.

Как видно на приложенных фотографиях, экспонометр работает нормально. Этот проект - отличная демонстрация возможностей аппаратного и программного обеспечения с открытым исходным кодом. За несколько минут можно построить такой впечатляющий проект! Этот проект идеально подходит для начинающих, и, как я уже сказал в начале, этот проект является отличным опытом для обучения. Хотелось бы услышать ваше мнение об этом проекте. Считаете ли вы это полезным? Есть ли какие-то улучшения, которые можно внести в этот проект? Пожалуйста, оставьте свои комментарии или идеи в разделе комментариев ниже!

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