• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Luxmeter

aZholtikov

Active member
Всем привет!

Нужна помощь. Есть ли на форуме человек у которого присутствует одновременно ESP32/8266 + BH1750(датчик освещенности) + нормальный профессиональный/полупрофессиональный люксметр?

Если есть - отзовитесь пожалуйста в личку.
 

enjoynering

Well-known member

pvvx

Активный участник сообщества
BH1750FVI полностью устарел: VCC Voltage 2.4..3.6
Ныне нужно от 1.8В.
 

aZholtikov

Active member
Спасибо.

Вопрос не в библиотеках и не собственно в датчике, а в том, что проявились в его работе некоторые "тонкости", противоречащие datasheet. И мне просто стало интересно разобраться для себя "любимого". :) А без опоры на реальные показания нормального прибора это не получится... Будем искать...
 

aZholtikov

Active member
Спасибо.

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

P.S. Прибор уже нашел в отделе метрологии на работе.
P.P.S. Всем спасибо. По результатам отпишу.
 

aZholtikov

Active member
Сразу оговорюсь - датчик у меня один. Возможно бракованный. Еще один на подходе недели через 2...

Смысл следующий (во время теста освещенность очень стабильна и почти неизменна - точечный светильник). Тест в каждом из 3-х opmode одинаков. Питание датчика не отключалось. Тестил раз 10 наверное...

1. Работа с чувствительностью по умолчанию (то есть регистр не менял, по умолчанию по datasheet 69). Все нормально.
2. Меняем чувствительность (разные числа, кроме 69) - разные показания. Все нормально.
3. Ставим чувствительность на 69 - вроде все должно соответствовать пункту 1? А вот хрен! Отличаются.
4. Меняем чувствительность (разные числа, кроме 69) - разные показания, но не соответствуют пункту 2 при одинаковых установленных значениях!

При сбросе питания состояние датчика возвращается к 1.
Формулы расчета не использовал. В тесте только полученное с сенсора uint16_t число.

Вопрос - в каком случае (1-2) или (3-4) показания соответствуют реальным? Нужно ли "пнуть" датчик после подачи питания принудительной установкой значения по умолчанию?
 

enjoynering

Well-known member
Поведение в п.3 действительно странно. Остальное вроде правильно там же по формуле:

rawValue / accuracy * sensitivity и это в простых mode

В high res mode 2 там половина диапазона:

0.5 * rawValue / accuracy * sensitivity

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

aZholtikov

Active member
Довольно обидны Ваши слова.

Я же написал - В тесте только полученное с сенсора uint16_t число. Без формул расчета.
И так-же уточнил - Тест в каждом из 3-х opmode одинаков. Результат сравнения результатов измерений, а не конкретного значения.

А это значит что - при первой установке принудительно значения чувствительности 69 все дальнейшие измерения отличаются от проведенных до этого изменения (при одинаковых условиях и настройках).
 

aZholtikov

Active member
Как пример:
Вы измеряете в High_mode - получаете например 5000.
Далее в High_mode_2 - получаете например 2500.
Принудительно ставите чувствительность 69.
Опять измеряете в High_mode - получаете например 5500.
И в High_mode_2 - получаете например 2750.

Почему так? Что изменилось? Чувствительность ведь не поменялась? А какое измерение верное?
Наверное не западло более внимательно читать написанное?
 
Сверху Снизу