Подключение цифрового люксметра (датчика освещенности) BH1750 к Arduino

Для измерения освещенности отлично подходят модули Gy-30 и Gy-302 на базе сенсора BH1750. Сенсор предназначен для измерения фонового освещения, имеет высокую чувствительность, а спектр чувствительности совпадает с кривой чувствительности человеческого глаза. Подключается BH1750 к Arduino по распространенному I2C интерфейсу. Внутренняя логика BH1750 избавляет от необходимости каких-либо сложных вычислений, поскольку он напрямую выводит значимые цифровые данные в люксах (лк). С помощью BH1750 можно изготовить самодельный люксметр на Ардуино.

Установка библиотеки BH1750

Библиотеку можно установить из самой среды следующим образом:

  1. Скачиваем библиотеку BH1750 с github;
  2. В Arduino IDE открываем менеджер библиотек: Скетч->Подключить библиотеку->Добавить .ZIP библиотеку…Подключение дальномера HC-SR04 к Arduino - Добавить .ZIP библиотеку...
  3. Выбираем .ZIP архив и кликаем Open/Открыть.Подключение цифрового люксметра BH1750 к Arduino - Выбор архива .ZIP
  4. Библиотека установлена.Подключение цифрового люксметра BH1750 к Arduino - Библиотека BH1750 установлена

Подключение BH1750 к Arduino

Модуль модуль GY-302 оборудован пяти-пиновым разъемом стандарта 2.54мм:

  • VCC: Питание «+»
  • GND: Земля «-«
  • SCL: Линия тактирования (Serial CLock)
  • SDA: Линия данных (Serial Data)
  • ADDR: Выбор адреса

Выводы отвечающие за интерфейс I2C на платах Arduino на базе различных контроллеров разнятся:

Arduino Mega Arduino Uno/Nano/Pro Mini BH1750 модуль Цвет проводов на фото
GND GND GND Черный
5V 5V VCC Красный
20 (SDA) A4 SDA Синий
21 (SCL) A5 SCL Зелёный
3.3V 3.3V ADDR Жёлтый

Схема подключения BH1750 к Arduino по I2C

На следующем рисунке показана схема подключения датчика внешней освещенности BH1750 к Arduino UNO. Вывод ADD можно оставить «висящим»:

Схема подключения BH1750 к Arduino по I2C без ADDR

но вы можете подключить его к 3.3 В. Это переведет вывод ADD в высокий логический уровень, и адрес ведомого I2C датчика внешней освещенности BH1750 станет 0x5C. Это важно в программировании. Если вывод ADD переведен в низкое логическое состояние путем подключения к земле, адрес ведомого устройства I2C датчика внешней освещенности BH1750 будет 0x23. Таким образом, два датчика внешней освещенности BH1750 могут быть подключены к одной шине I2C, где один вывод ADD имеет низкое логическое состояние, а другой вывод ADD высокое.

Схема подключения BH1750 к Arduino по I2C с ADDR

Пример скетча

В скетче мы каждые 1000 мсек считываем с датчика BH1750 показания освещённости в люксах и выводим эти данные в последовательный порт.

/*
   Подключяем библиотеку Wire (для I2C)
*/
#include <Wire.h>
/*
   Подключяем библиотеку для bh1750
*/
#include <BH1750.h>
/*
   Объявляем объект lightMeter
*/
BH1750 lightMeter;

void setup() {
  /*
     Запускаем последовательный порт
  */
  Serial.begin(9600);
  /*
    Инициализируем шину I2C (библиотека BH1750 не делает это автоматически)
    На esp8266 вы можете выбрать выводы SCL и SDA, используя Wire.begin (D4, D3);
  */
  Wire.begin();
  /*
    Инициализируем и запускаем BH1750
  */
  lightMeter.begin();

  Serial.println(F("BH1750 тест"));
}

void loop() {
  /*
    Считываем показания с BH1750
  */
  float lux = lightMeter.readLightLevel();
  /*
    Отправляем значение освещенности в последовательный порт
  */
  Serial.print("Light: ");
  Serial.print(lux);
  Serial.println(" lx");
  /*
     раз в секунду
  */
  delay(1000);
}

Результат

Открыть монитор последовательного порта можно сочетанием клавиш Ctrl+Shift+M или через меню Инструменты. В мониторе последовательного порта побегут значения освещённости с нашего датчика BH1750.

Подключение цифрового люксметра (датчика освещенности) BH1750 к Arduino - Результат

Сравнение BH1750 и TSL2561

Спектр видимого света колеблется от 380 нм (фиолетовый) до 780 нм (красный) (в вакууме). Короче говоря, BH1750 просто измеряет это. TSL2561, помимо видимого спектра, также измеряет инфракрасное излучение. Он имеет два диода, один для видимого, а второй для инфракрасного. На мой взгляд, BH1750 соответствует большинству требований, тогда как TSL2561 предлагает более широкий спектр, большую чувствительность и большую точность.

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

Более подробно о том, как работать с TSL2561 в Ардуино, можете найти в отдельной статье Подключение цифрового датчика освещенности TSL2561 к Arduino.

Схема подключения TSL2561 и BH1750 к Arduino по I2C

На следующем рисунке показана схема подключения датчиков внешней освещенности TSL2561 и BH1750 к Arduino UNO.

Схема подключения TSL2561 и BH1750 к Arduino по I2C без ADDR

Пример скетча

#include <Wire.h>
#include <BH1750.h>
#include <Adafruit_TSL2561_U.h>

BH1750 bh1750;
Adafruit_TSL2561_Unified tsl2561 = Adafruit_TSL2561_Unified(TSL2561_ADDR_FLOAT, 12345);

void setup() {
  Serial.begin(9600);
  Wire.begin();

  /*
     TSL2561
  */
  if (!tsl2561.begin()) {
    Serial.print(F("При обнаружении TSL2561 возникла проблема ... проверьте подключение!"));
    while (1);
  }

  tsl2561.setGain(TSL2561_GAIN_1X);
  tsl2561.setIntegrationTime(TSL2561_INTEGRATIONTIME_402MS);

  /*
    BH1750
  */
  bh1750.begin(BH1750::ONE_TIME_HIGH_RES_MODE);

  Serial.println(F("BH1750 vs TSL2561"));
}

void loop() {
  /*
    Считываем показания с TSL2561
  */
  sensors_event_t event;
  tsl2561.getEvent(&event);
  /*
    Считываем показания с BH1750
  */
  float lux = bh1750.readLightLevel();
  /*
    Отправляем значение освещенности в последовательный порт
  */
  if (event.light) {
    Serial.print(F("TSL2561: "));
    Serial.print(event.light);
    Serial.println(F(" lx"));
  } else {
    /*
      Если event.light = 0 люкса датчик, вероятно, насыщенные
      и достоверные данные не может быть сгенерированы!
    */
    Serial.println(F("Насыщенные TSL2561"));
  }
  Serial.print(F("BH1750 : "));
  Serial.print(lux);
  Serial.println(F(" lx"));

  delay(1000);
}

Результат

По результатам TSL2561 и BH1750 дают практически идентичные показатели в одинаковых условиях. Это говорит о том, что сами датчики идут откалиброванными с завода.

Сравнение BH1750 и TSL2561 (BH1750 vs TSL2561)

Материалы

datasheet bh1721fvc-e.pdf
GitHub — claws/BH1750: An Arduino library for the digital light sensor breakout boards containing the BH1750FVI IC
BH1750 — Цифровой датчик освещенности/люксметр — MicroPi

Похожие записи

Комментарии 2

  • 娛樂城推薦與優惠詳解

    在現今的娛樂世界中,線上娛樂城已成為眾多玩家的首選。無論是喜歡真人遊戲、老虎機還是體育賽事,每個玩家都能在娛樂城中找到自己的樂趣。以下是一些熱門的娛樂城及其優惠活動,幫助您在選擇娛樂平台時做出明智的決定。

    各大熱門娛樂城介紹
    1. 富遊娛樂城
    富遊娛樂城以其豐富的遊戲選擇和慷慨的優惠活動吸引了大量玩家。新會員只需註冊即可免費獲得體驗金 $168,無需儲值即可輕鬆試玩。此外,富遊娛樂城還提供首存禮金 100% 獎勵,最高可領取 $1000。

    2. AT99娛樂城
    AT99娛樂城以高品質的遊戲體驗和優秀的客戶服務聞名。該平台提供各種老虎機和真人遊戲,並定期推出新遊戲,讓玩家保持新鮮感。

    3. BCR娛樂城
    BCR娛樂城是一個新興的平台,專注於提供豐富的體育賽事投注選項。無論是足球、籃球還是其他體育賽事,BCR都能為玩家提供即時的投注體驗。

    熱門遊戲推薦
    WM真人視訊百家樂
    WM真人視訊百家樂是許多玩家的首選,該遊戲提供了真實的賭場體驗,並且玩法簡單,容易上手。

    戰神賽特老虎機
    戰神賽特老虎機以其獨特的主題和豐富的獎勵機制,成為老虎機愛好者的最愛。該遊戲結合了古代戰神的故事背景,讓玩家在遊戲過程中感受到無窮的樂趣。

    最新優惠活動
    富遊娛樂城註冊送體驗金
    富遊娛樂城新會員獨享 $168 體驗金,無需儲值即可享受全場遊戲,讓您無壓力地體驗不同遊戲的魅力。

    VIP 日日返水無上限
    富遊娛樂城為 VIP 會員提供無上限的返水優惠,最高可達 0.7%。此活動讓玩家在遊戲的同時,還能享受額外的回饋。

    結論
    選擇合適的娛樂城不僅能為您的遊戲體驗增色不少,還能通過各種優惠活動獲得更多的利益。無論是新會員還是資深玩家,都能在這些推薦的娛樂城中找到適合自己的遊戲和活動。立即註冊並體驗這些優質娛樂平台,享受無限的遊戲樂趣!

  • Пеларгонии элитные: лучший решение для вашего дома и сада

    Если ты выбираете цветы, что станут удивлять вас их внешним видом и запахом, вместе с тем не требуя сложного обслуживания, сортовые герани — лучший вариант. Этих цветы обладают исключительными характеристиками, которые превращают их топовыми среди эстетических растений.

    Почему сортовые герани?

    Неприхотливость и легкость в содержании
    Пеларгонии не требуют особенных факторов для прорастания и легко адаптируются к различным условиям. Они замечательно чувствуют себя как в жилище, так и на улице. Забудьте о прихотливых цветах — герани достаточно поливать по степени исчезновения влаги грунта и наслаждаться их цветами.

    Интенсивные и различные цвета
    Каждый сорт гераней обладает свои исключительные цвета и внешность. Сорта, такие как, ТА Монако, впечатляют интенсивными оттенками и выразительными соцветиями. Это растения, что сразу привлекают внимание и обеспечивают живые акценты в любом месте.

    Легкий запах, приносящий уют
    Пеларгонии не лишь декорируют жилище — они снабжают его приятным, легким запахом. Этот естественный запах обеспечивает создать атмосферу комфорта и спокойствия, а к тому же работает как естественный репеллент для мошек.

    Долгое цветение
    Элитные пеларгонии продолжают восхищать вид своим процветанием в течение долгих недель. Вы будете восхищаться их внешним видом с старта сезона и до поздней осени. Такое длительное цветение — редкое качество среди украшающих цветов.

    Прекрасный выбор для любого окружения
    Пеларгонии многофункциональны — их можно выращивать как в контейнерах на подоконниках, так и в саду. Миниатюрные растения, такие как ИВ Галина Уланова, хорошо выглядят в украшенных вазонах, а виды, как Survivor idols Rosalinda, превратятся в украшением цветника.

    Зачем необходимо остановиться на точно герани?
    Данные растения — не лишь элемент оформления. Они выгодно превосходят между других растений благодаря своей простоте, красоте и длительному периоду цветения. Их насыщенные тона создают особенную окружение, будь то в жилище или на садовом участке. Герани — это прекрасный гармония внешнего вида и практичности.

    Покупайте пеларгонии — создайте вокруг прекрасную атмосферу без лишних хлопот!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *