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

Как подключить датчик освещённости BH1750 к Arduino

Вам понадобится

  • – Arduino;
  • – сдвиговый регистр 74HC595;
  • – соединительные провода.

Инструкция

Сдвиговый регистр 74HC595 и ему подобные используются в качестве устройств преобразования последовательных данных в параллельные, а также может использоваться как “защёлка” для данных, удерживая переданное на него состояние. Схема выводов (“распиновка”) приведена на рисунке слева. Их назначение такое.

Q0…Q7 – выходы параллельных данных;

GND – земля (0 В);
Q7' – выход последовательных данных;
^MR – сброс ведущего устройства (активный низкий);
SHcp – вход тактовых импульсов сдвигового регистра;
STcp – вход тактовых импульсов “защёлки”;
^OE – разрешение вывода (активный низкий);
Ds – вход последовательных данных;
Vcc – питание +5 В.
Конструктивно микросхема выполняется в нескольких типах корпусов; я буду использовать тот, что приведён на рисунке справа – выводной – т.к. его проще использовать с макетной платой (бредбордом).Коротко напомню о последовательном интерфейсе SPI, который мы будем использовать для передачи данных в сдвиговый регистр.
SPI – это четырёхпроводный двунаправленный последовательный интерфейс, в котором принимают участие ведущее и ведомое устройства. Ведущим в нашем случае будет являться Arduino, ведомым – регистр 74HC595. Среда разработки для Arduino имеет встроенную библиотеку работы по интерфейсу SPI. При её применении используются выводы, которые отмечены на рисунке:

SCLK – вывод тактовых импульсов SPI;

MOSI – данные из ведущего – к ведомому;
MISO – данные от ведомого к ведущему;
SS – выбор ведомого.

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

Напишем вот такой скетч и загрузим в память Arduino.
Переменная PIN_SPI_SS – это внутренняя стандартная константа, которая соответствует выводу “10” Ардуино при использовании его в качестве ведущего устройства интерфейса SPI, который мы тут используем.

В принципе, мы могли бы с таким же успехом использовать любой другой цифровой вывод Arduino; тогда нам бы пришлось его объявить и задать его режим работы.
Подавая на этот вывод LOW, мы активизируем наш сдвиговый регистр на приём/передачу.

После передачи мы снова поднимаем напряжение в HIGH, и обмен заканчивается.

Включим нашу схему в работу и посмотрим, что покажет нам логический анализатор. Общий вид временной диаграммы – на рисунке.

Голубой пунктирной линией показаны 4 линии SPI, красной пунктирной – 8 каналов параллельных данных регистра сдвига.

Точка A на шкале времени – это момент передачи в регистр сдвига числа “210”, B – момент записи числа “0”, C – повторение цикла с начала.

Как видно, от А до B – 10,03 миллисекунд, а от B до С – 90,12 миллисекунд, почти как мы и задали в скетче. Небольшая добавка в 0,03 и 0,12 мс – это время передачи последовательных данных от Arduino, поэтому мы тут имеем не ровно 10 и 90 мс.

Рассмотрим подробнее участок A.
В самом верху – длинный импульс, которым Arduino инициализирует передачу по линии SPI-ENABLE – выбор ведомого. В это время начинают генерироваться тактовые импульсы SPI-CLOCK (вторая строка сверху), 8 штук (для передачи 1 байта).

Следующая строка сверху – SPI-MOSI – данные, которые мы передаём от Arduino к сдвиговому регистру. Это наше число “210” в двоичном виде – “11010010”.
После завершения передачи, в момент завершения импульса SPI-ENABLE, мы видим, что сдвиговый регистр выставил на своих 8-ми ножках такое же значение.

Я выделил это в голубой пунктирной линией и подписал значения для наглядности.

Теперь обратим внимание на участок B. Опять всё начинается с выбора ведомого и генерирования 8-ми тактовых импульсов.

Данные на линии SPI-MOSI теперь – “0”. То есть мы записываем в этот момент в регистр число “0”.

Но пока передача не закончена, в регистре хранится значение “11010010”. Оно выводится на параллельные выводы Q0..Q7, и выдаётся при наличии тактовых импульсов в линии c параллельного выхода Q7' в линию SPI-MISO, что мы тут и видим.

Таким образом, мы детально изучили вопрос информационного обмена между ведущим устройством, в роли которого выступил Arduino, и сдвиговым регистром 74HC595. Научились подключать сдвиговый регистр, записывать в него данные и считывать из него данные.

Источники:

  • Arduino lessons 2 Как подключить usb uart к arduino – Imazi

Источник: https://www.kakprosto.ru/kak-918635-kak-podklyuchit-datchik-osveschennosti-bh1750-k-arduino

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

Иногда возникает необходимость получить данные об уровне освещенности конкретного места, объекта. Для таких целей используются специальные приборы – люксметры. Но это не такое уж и распространенное оборудование.

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

Упростить задачу нам поможет датчик, который посредством цифрового интерфейса будет выдавать готовые данные в определенных единицах измерения – BH1750.

Датчик этот заключен в корпусе для поверхностного монтажа WSOF6I. Внутри непосредственно сам фотодатчик в виде фотодиода, усилитель сигнала фотодиода, АЦП (аналого цифровой преобразователь) и некая логика, которая обрабатывает данные, переводит все в единицы измерения Люкс и передает по I2C к управляющему устройству (микроконтроллеру в нашем случае):

Вообще же вы можете с первого взгляда сказать, что это какая-то лапша – ведь датчик в корпусе от обычных микросхем примерно, как это все может измерять освещенность? Вот здесь как раз и стоит обратить внимание на корпус датчика и присмотреться внимательнее.

Корпус оказывается полупрозрачный! А внутри просматривается какая-то схема или чувствительный слой, скорее всего.

Честно говоря, именно этот вопрос стал решающим в покупке этого датчика – интерес – как освещенность то определяется.

На самом деле внутри фотодиод, а корпус выполняет роль так же светофильтра, видимо, с заведомо известным коэффициентом пропускания света, чтобы точно измерять освещенность.

Что это за датчик интерес удовлетворили, теперь можно продолжить.

Итак, датчик BH1750 обладает следующими характеристиками:

  • Цифровой интерфейс – I2C
  • Высокое разрешение – до 0,5 Лк
  • Малый потребляемый ток и функция спящего режима
  • Фильтрация световых шумов 50/60 Гц
  • Малая зависимость от источника света (лампа накаливания, светодиод и так далее)
  • Малое влияние инфракрасного излучения
  • Возможно выбрать 2 адреса микросхемы для I2C интерфейса (можно подключить одновременно два таких датчика к одной шине)
  • Не требует калибровки, что максимально удобно для применения в любых проектах
  • Очень малые габариты датчика

Электрические характеристики:

  • Напряжение питания – 2,4 – 3,6 В
  • Ток потребления – 120 мкА
  • Ток потребления в спящем режиме – 0,01 мкА
  • Измеряемая длина волны – 560 нм
  • Точность в режиме высокого разрешения – 1 Лк
  • Точность в режиме низкого разрешения – 4 Лк
  • Период измерения в режиме высокого разрешения – 120 мс
  • Период измерения в режиме низкого разрешения – 16 мс
  • АЦП – 16 бит

Чтобы протестировать датчик освещенности собираем схему:

Здесь уже все привычно для нас. В качестве микроконтроллера используется ATmega8a как наиболее универсальный и популярный микроконтроллер. Использовать микроконтроллер можно в любом корпусе – разницы нет, кроме порядка расположения выводов на корпусах. Индикация осуществляется на ЖК экранчике на базе HD44780.

В моем случае используется экран на 4 строки по 20 символов на каждую, однако можно использовать и размер 1602 – информации на экранчик выводится не много, поэтому все помещается. Переменный резистор R2 необходим для регулировки контраста символов на дисплее. Вращением движка этого резистора добиваемся наиболее четких для нас показаний на экране.

Подсветка ЖК дисплея организована через вывод “А” и “К” на плате дисплея. Подсветка включается через резистор, ограничивающий ток – R1. Чем больше номинал, тем более тускло будет подсвечиваться дисплей. Однако пренебрегать этим резистором не стоит во избежание порчи подсветки. Сам дисплей подключается к микроконтроллеру по 4х битной схеме.

Резистор R3 необходим для предотвращения самопроизвольного перезапускания микроконтроллера в случае появления случайных помех на выводе PC6. Резистор R4 подтягивает плюс питания к этому выводу, надежно создавая потенциал на нем.

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

Резистор R4 подтягивает ножку датчика к земле, отвечающую за адрес микросхемы для I2C интерфейса, посмотреть все эти цифры можно в исходном коде, который расположен в конце статьи. Для правильной работы I2C интерфейса необходимы резисторы R7 и R8. С их помощью на линиях образуется логическая единица из-за того, что они подтянуты к плюсу питания. При формировании логического нуля линии прижимаются к земле посредством ведущего или ведомого (микроконтроллера или датчика).

Основное питание схемы составляет 3,3 вольта, что обусловлено электрическими параметрами датчика освещенности BH1750.

5 вольт необходимы лишь для питания дисплея, если применить, например экранчик от nokia 5110, для питания которого необходимо также 3,3 вольта, то можно опустить из схемы стабилизатор напряжения на 5 вольт.

Стабилизаторы напряжения на 5 вольт и 3,3 вольта можно применить абсолютно любые на аналогичные напряжения, можно использовать как линейные стабилизаторы, так и импульсные.

Схема была собрана на модулях на отладочной плате:

Основа – отладочная плата для микроконтроллеров Atmega8 и других контроллеров, совместимых с ней по выводам.

Используется модуль с датчиком BH1750. По большому счету кроме датчика тут больше ничего особенного нет – подтягивающие резисторы для работы датчика, стабилизатор напряжения на 3,3 вольта и несколько конденсаторов. Основной плюс модуля – удобство соединения с микроконтроллером посредством штырьков.

Датчик выдает информацию об освещенности в единицах измерения Люкс. Люкс равен освещённости поверхности площадью 1 м² при световом потоке падающего на неё излучения, равном 1 лм (Люмен).

Для сравнения освещенность в рабочем кабинете составляет порядка 300 – 500 Люкс, при полнолунии – 1 Люкс, в ясный солнечный день в тени – 10 тыс. – 25 тыс. Люкс, а под солнцем порядка 32 тыс. – 130 тыс. Люкс.

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

Для программирования микроконтроллера необходимо знать конфигурацию фьюз битов:

Такие датчики могут применяться в ЖК дисплеях, мобильных телефонах, цифровых камерах, планшетах и так далее.

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

Цена датчика BH1750 порядка 2 – 3 уе в виде модуля на aliexpress и ebay. Модули вполне высокого качества, пайка без дефектов, все компоненты стоят ровненько и на своих местах.

К статье также прилагается прошивка для микроконтроллера Atmega8, исходный код в AVR studio 4, даташит на датчик освещенности, а также небольшое видео, демонстрирующее работу датчика.

Скачать список элементов (PDF)

Прикрепленные файлы:

  • 56.hex (5 Кб)
  • bh1750fvi-e.pdf (545 Кб)
  • 56.rar (43 Кб)

Источник: http://cxem.net/izmer/izmer154.php

Как подключить датчик освещённости BH1750 к Arduino

На этот раз подключим цифровой 16-битный датчик освещённости BH1750 (люксометр), реализованный на модуле GY-302, к Arduino.

  • Arduino;
  • модуль GY-302 с цифровым датчиком освещённости BH1750;
  • соединительные провода;
  • персональный компьютер.

Рассмотрим модуль GY-302 с сенсором BH1750. Сенсор BH1750 представляет собой цифровой 16-битный цифровой датчик освещённости, что задаёт диапазон его измерений: от 1 до 65535 люкс.

Согласно паспорту, датчик BH1750 чувствителен к видимому свету и практически не подвержен влиянию инфракрасного излучения, т.е. реагирует примерно на тот же спектральный диапазон, что и человеческий глаз.

Вследствие этого такие сенсоры получили широкое распространение в современной электронной аппаратуре – мобильных устройствах, фото- и видеокамерах, в системах «умный дом» и многих других.

Подключение модуля производится по двухпроводному интерфейсу I2C, а питание осуществляется от +5 В. Интерфейс I2C в платах Arduino реализован на аналоговых пинах A4 и A5, которые отвечают за SDA (шина данных) и SCL (шина тактирования), соответственно. Вывод ADDR модуля GY-302 можно оставить не подключённым или соединить с землёй.

Схема подключения модуля GY-302 с датчиком BH1750 к Arduino

2 Библиотека и скетчдля датчика BH1750

Не будем углубляться в тонкости реализации интерфейса взаимодействия датчика BH1750 с Arduino, а воспользуемся готовой библиотекой для BH1750. Скачанный архив распакуем в директорию со средой разработки Arduino IDE/libraries/.

Напишем вот такой скетч и загрузим его в Arduino.

// подключаем библиотеку I2C: #include // подключаем библиотеку датчика BH1750: #include // объявляем объект lightMeter: BH1750 lightMeter; void setup() { Serial.begin(9600); //инициализация послед. порта lightMeter.begin(); //инициализация датчика BH1750 } void loop() { //считываем показания с BH1750: uint16_t lux = lightMeter.readLightLevel(); //выводим показания в послед. порт: Serial.println(String(lux) + ” lx”); delay(100); //задержка 100 мсек }

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

3Сенсор BH1750 и Arduino в работе

Подключим датчик освещённости BH1750 к Arduino по приведённой выше схеме. Подключим Ардуино к компьютеру. Запустим среду разработки Arduino IDE и откроем монитор последовательного порта сочетанием клавиш Ctrl+Shift+M или через меню Инструменты. В мониторе последовательного порта побегут значения освещённости с нашего датчика BH1750.

Модуль GY-302 с датчиком BH1750 подключён к Arduino

Направьте датчик на источник света, потом закройте его от света, и вы увидите, как меняются показания.

Источник: https://soltau.ru/index.php/en/arduino/item/344-kak-podklyuchit-datchik-osveshchjonnosti-bh1750-k-arduino

Цифровой датчик освещенности BH1750(GY-302). Arduino

BH1750 цифровой 16-битный датчик освещённости (люксметр),  диапазон  измерений: от 1 до 65535 люкс. Согласно datasheet, датчик BH1750 чувствителен к видимому свету и практически не подвержен влиянию инфракрасного излучения, т.е. реагирует примерно на тот же спектральный диапазон, что и человеческий глаз.

В наше случае мы использует уже готовый модуль GY-302 со стабилизатором напряжения и удобными выводами подключения.

ПОДКЛЮЧЕНИЕ :

Подключение модуля производится по двухпроводному интерфейсу I2C, а питание осуществляется от +5 В. Интерфейс I2C в платах Arduino реализован на аналоговых пинах A4 и A5, которые отвечают за SDA (шина данных) и SCL (шина тактирования), соответственно. Вывод ADDR модуля GY-302 можно оставить не подключённым или соединить с землёй.

  • VCC — питание 5 В;
  • GND — земля;
  • SDA — данные I2C(А4);
  • SCL—  синхронизация I2C(А5);
  • ADDR — выбор адреса для протокола I2C. BH1750 может иметь, в зависимости от уровня сигнала на входе ADDR два адреса (0x23 и 0x5C). Это значит, что к одной плате Arduino можно подсоединить одновременно два датчика BH1750.

КОДИНГ :

Я использую библиотеку BH1750FVI которая  поддерживает все режимы датчика BH1750, позволяет производить измерения освещенности с несколькими параметрами чувствительности (0.45 – 3.68) и разрешающей способности (0.5 – 4 lx), а также в режиме энергосбережения.  Скачать можно с нашего сайта или с GitHub .

Загрузим примерочный скетч из библиотеки:

/***************************************************************************************************/ /* Example for ROHM BH1750FVI Ambient Light Sensor library written by : enjoyneering79 sourse code: https://github.com/enjoyneering/ Wide range: 1 – 65'535 lx (by default) Possible to detect: 0.11 – 100'000 lx by changing Sensitivity This sensor uses I2C bus to communicate, specials pins are required to interface Connect chip to pins: SDA SCL Uno, Mini, Pro: A4 A5 Mega2560, Due: 20 21 Leonardo: 2 3 ATtiny85: 0(5) 2/A1(7) (ATTinyCore – https://github.com/SpenceKonde/ATTinyCore & TinyWireM – https://github.com/SpenceKonde/TinyWireM) ESP8266 ESP-01: GPIO0/D5 GPIO2/D3 (ESP8266Core – https://github.com/esp8266/Arduino) NodeMCU 1.0: GPIO4/D2 GPIO5/D1 WeMos D1 Mini: GPIO4/D2 GPIO5/D1 BSD license, all text above must be included in any redistribution */ /***************************************************************************************************/ #include #include /* BH1750FVI(address, resolution, sensitivity) address: BH1750_DEFAULT_I2CADDR (when address pin LOW) BH1750_SECOND_I2CADDR (when address pin HIGH) resolution: BH1750_CONTINUOUS_HIGH_RES_MODE – Continuous measurement. Resolution – 1.0 lx. BH1750_CONTINUOUS_HIGH_RES_MODE_2 – Continuous measurement. Resolution – 0.5 lx. BH1750_CONTINUOUS_LOW_RES_MODE – Continuous measurement. Resolution – 4.0 lx. BH1750_ONE_TIME_HIGH_RES_MODE – One-time measurement(power down after). Resolution – 1.0 lx. BH1750_ONE_TIME_HIGH_RES_MODE_2 – One-time measurement(power down after). Resolution – 0.5 lx. BH1750_ONE_TIME_LOW_RES_MODE – One-time measurement(power down after). Resolution – 4.0 lx. sensitivity: NOTE: your value have to be between min. and max. 1.00 – default Sensitivity 0.45 – minimum Sensitivity 3.68 – maximum Sensitivity */ BH1750FVI myBH1750(BH1750_DEFAULT_I2CADDR, BH1750_CONTINUOUS_HIGH_RES_MODE_2, 1.00); void setup() { Serial.begin(115200); Serial.flush(); while (myBH1750.begin() != true) { Serial.println(F(“ROHM BH1750FVI ambient light sensor is not present”)); delay(5000); } Serial.println(F(“ROHM BH1750FVI ambient light sensor is present”)); } void loop() { /* DEMO – 1 */ Serial.println(F(“DEMO 1: Sensitivity – 1.0, Continuous High Res II Mode”)); Serial.print(F(“Light level………: “)); Serial.print(myBH1750.readLightLevel()); Serial.println(F(” +-0.5 lx”)); Serial.print(F(“Power for 555nm wave: “)); Serial.print(myBH1750.readLightLevel()/683); Serial.println(F(” Watt/m^2″)); myBH1750.reset(); /* DEMO – 2 */ Serial.println(F(“DEMO 2: Sensitivity – 2.00, Continuous High Res II Mode”)); myBH1750.setSensitivity(2); Serial.print(F(“Light level………: “)); Serial.print(myBH1750.readLightLevel()); Serial.println(F(” +-0.5 lx”)); /* DEMO – 3 */ Serial.println(F(“DEMO 3: Sensitivity – 0.50, Continuous High Res II Mode”)); myBH1750.setSensitivity(0.5); Serial.print(F(“Light level………: “)); Serial.print(myBH1750.readLightLevel()); Serial.println(F(” +-0.5 lx”)); /* DEMO – 4 */ Serial.println(F(“DEMO 4: Sensitivity – 3.68, Power Down High Res Mode”)); myBH1750.setSensitivity(3.68); myBH1750.setResolution(BH1750_ONE_TIME_HIGH_RES_MODE); Serial.print(F(“Light level………: “)); Serial.print(myBH1750.readLightLevel()); Serial.println(F(” +-1.0 lx”)); /* DEMO – 5 */ Serial.println(F(“DEMO 5: Sensitivity – 0.45, Power Down High Res II Mode”)); myBH1750.setSensitivity(0.45); myBH1750.setResolution(BH1750_CONTINUOUS_HIGH_RES_MODE_2); Serial.print(F(“Light level………: “)); Serial.print(myBH1750.readLightLevel()); Serial.println(F(” +-0.5 lx”)); /* DEMO – 6 */ Serial.println(F(“DEMO 6: Sensitivity – 1.00, Power Down High Res II Mode”)); myBH1750.setSensitivity(1); myBH1750.setResolution(BH1750_ONE_TIME_HIGH_RES_MODE_2); Serial.print(F(“Light level………: “)); Serial.print(myBH1750.readLightLevel()); Serial.println(F(” +-0.5 lx”)); /* DEMO – 7 */ Serial.println(F(“DEMO 7: Manual Power Down”)); myBH1750.powerDown(); /* DEMO – END */ Serial.print(F(“DEMO: Starts over again in 5 sec.”)); delay(5000); /* back to lib. default resolution */ myBH1750.setResolution(BH1750_CONTINUOUS_HIGH_RES_MODE_2);

И под конец познавательная таблица :

Полнолуние в ясном небе 0,27
В море на глубине ~50 м. до 20
Очень пасмурный день 100
Восход или закат в ясный день. 400
Пасмурный день 1000
Полдень в декабре — январе 4-5 тысч.
Ясный солнечный день (в тени) 10-25 тысч

Источник: https://xn--90aeniddllys.xn--p1ai/cifrovoj-datchik-osveshhennosti-bh1750gy-302-arduino/

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

Датчик освещенности BH1750FVI модуль для ARDUINO, Датчик изменения света, Купить GY-30 Цифровой оптический датчик освещенности BH1750FVI Высокочувствительный для Arduino

Виды датчиков:

bh1750 купить

Это цифровой датчик окружающего (рассеянного) света.Датчик общается с микроконтроллером по I2С протоколу. Этот датчик хорошо подходит для регулирования подсведки ЖК (TFT, LCD) в зависимости от освещенности окружающего пространства. Датчик обладает чувствительностью от 1 до 65535 люкс (16 бит).

  Датчик типа BH11750FVI – один из самых распространенных в современной электронике и электротехнике.

Его преимущество в цифровом интерфейсе, который позволяет измерять освещенность в определенных единицах измерения и возможности работать с микроконтроллером по протоколу I2С.

Малый размер датчика делает его незаменимым в современной бытовой электронике: помните функцию вашего смартфона автоматически увеличивать яркость экрана на солнце? Он «умеет» это именно благодаря датчику BH11750FVI или его аналогам.

    В качестве чувствительного элемента датчика BH11750FVI выступает фотодиод (bh1750), приемник оптического излучения, который улавливает свет и преобразует его в электрический сигнал.

В зависимости от световой активности (датчик работоспособен в пределах от 1 до 65000 Люкс) изменяется выходной токовой сигнал на микроконтроллер, который и регулирует уровень подсветки дисплея.

Тот же принцип используется и в другой современной технике: например, планшетных компьютерах, цифровых камерах, а также в промышленности, когда автоматическое регулирование технологического процесса связано с уровнем световой активности.

С помощью фотодатчика типа BH11750FVI, включенного в САР (система автоматического регулирования), можно контролировать, например, уровень жидких и сыпучих продуктов в светопроницаемых емкостях. Датчик устанавливается напротив источника света и улавливает его фотоны. Как только уровень продукта перекрывает световой поток, система автоматически включает сигнализацию максимального уровня и прекращает подачу продукта.

    Использование схемы на основе датчика bh1750 также возможно и в тепличном хозяйстве, когда необходимо круглосуточное поддержание оптимального светового режима. САР в этом случае настраивается таким образом, что по мере уменьшения естественного освещения пропорционально увеличивается мощность ламп искусственного света.

bh1750 купить

Подробное техническое описание во вложенном файле ниже:

Источник: https://electromicro.ru/market/datchiki_i_sensory/33/

Купить Датчик освещенности GY-30 BH1750FVI в Хабаровске Robstore.ru

В наличии: 2 шт.

• 100.00 р. •

Цифровой датчик овещённости GY-30. Модуль выполнен на базе BH1750FVI.

  • Чип: BH1750FVI
  • Питание: 3-5Вольт
  • Протокол связи: стандартный IIC (он же I2C, он же TWI) 
  • Диапазон измерений: 0 – 65535 Люкс

Для первого подключения нам понадобятся Arduino Uno и провода Папа-Мама. Также нужно скачать библиотеку BH1750 и подключить её к проекту в Arduino IDE.

Модуль подключаем по схеме:

GY-30 BH1750FVI Arduino Uno
VCC +5V
GND GND
SCL A5
SDA A6

Для подключения используем провода Папа-Мама.

После установки библиотеки создаём и загружаем в Arduino скетч:

#include #include BH1750 lightMeter; void setup(){ Serial.begin(9600); // Initialize the I2C bus (BH1750 library doesn't do this automatically) Wire.begin(); // On esp8266 you can select SCL and SDA pins using Wire.begin(D4, D3); lightMeter.begin(); Serial.println(F(“BH1750 Test”)); } void loop() { uint16_t lux = lightMeter.readLightLevel(); Serial.print(“Light: “); Serial.print(lux); Serial.println(” lx”); delay(1000); }

В этом примере каждую секунду в COM порт выводится ищмеренный показатель освещённости. Для просмотра поступающих данных необходимо использовать “Монитор порта”.

  • Datasheet на BH1750
  • Библиотека BH1750 для Arduino IDE
  • Датчик освещённости GY-30 BH1750FVI х1
Датчик освещенности GY-30 BH1750FVI
Модель: GY-30
Производитель:

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

ОПИСАНИЕ Цифровой датчик освещенности с большим интервалом измерений. Модуль выполнен на базе BH1750.   ПАРАМЕТРЫ Чип: BH1750 Питание: 3-5 Вольт Протокол связи: стандартный IIC (он же I2C, он же TWI) Диапазон измерений: 1 – 65535 Люкс   ..

Датчик освещенности GY-2561 TSL2561

ОПИСАНИЕ Цифровой датчик освещенности с большим интервалом измерений. Модуль выполнен на базе TSL2651.   ПАРАМЕТРЫ Чип: TSL2651 Питание: 3.3-5 Вольт Протокол связи: стандартный IIC (он же I2C, он же TWI) Диапазон измерений: 1 – 65535 Люкс Габариты: 1..

Датчик освещенности GY-49 MAX44009

ОПИСАНИЕ Цифровой датчик освещенности с большим интервалом измерений. Модуль выполнен на базе MAX44009.   ПАРАМЕТРЫ Чип: MAX44009 Питание: 3 … 5 Вольт Протокол связи: стандартный IIC (он же I2C, он же TWI) Диапазон измерений: 0,045 … 188000 Люкс ..

Источник: http://robstore.ru/sensors/gy-30.html

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}