ESP32 — это мощный микроконтроллер, оснащенный функциями для IoT. ESP32 с LDR может измерять интенсивность света и запускать реакцию в соответствии с ней. Используя ESP32 и LDR, мы можем создать проект на основе дистанционного зондирования света и разработать множество инновационных решений IoT для различных отраслей и приложений.
В этом руководстве будут рассмотрены основы LDR и его приложений с ESP32.
3: Взаимодействие LDR с ESP32 с помощью Arduino IDE
1: Введение в датчик LDR
А л свет Д зависимый р Резистор (LDR) — это тип резистора, который изменяет свое сопротивление в зависимости от интенсивности света, которому он подвергается. В темноте его сопротивление очень велико, а при ярком свете сопротивление очень низкое. Это изменение сопротивления делает его лучшим для проектов по обнаружению света.
Аналоговые контакты ESP32 преобразуют входящие напряжения в целое число от 0 до 4095. Это целочисленное значение сопоставляется с аналоговым входным напряжением от 0 В до 3,3 В, которое по умолчанию является опорным напряжением АЦП в ESP32. Это значение считывается с помощью Arduino. аналоговоеЧтение() функция от LDR.
Для более подробного руководства и распиновки АЦП ESP32 прочитайте статью АЦП ESP32 — считывание аналоговых значений с помощью Arduino IDE .
ESP32 имеет встроенный аналого-цифровой преобразователь (АЦП), который может измерять напряжение на LDR и преобразовывать его в цифровой сигнал, который может обрабатываться микроконтроллером. Используя этот сигнал, ESP32 определяет сопротивление LDR, которое пропорционально интенсивности света.
Здесь мы будем использовать контакты канала 1 АЦП ESP32.
Фотоны или частицы света играют решающую роль в работе LDR. Когда свет падает на поверхность LDR, фотоны поглощаются материалом, что затем освобождает электроны в материале. Количество свободных электронов прямо пропорционально интенсивности света, и чем больше освобождается электронов, тем ниже становится сопротивление LDR.
2: Применение LDR с ESP32
Ниже приведен список некоторых IoT-приложений LDR с ESP32:
-
- Переключатель с активированным светом
- Индикатор уровня освещенности
- Ночной режим в устройствах
- Световые системы безопасности
- Умные системы освещения
- Светочувствительные системы безопасности
- Мониторинг растений
- Энергоэффективное освещение
- Автоматические жалюзи
3: Взаимодействие LDR с ESP32 с помощью Arduino IDE
Чтобы использовать LDR с ESP32, нам нужно подключить LDR к выводу канала ADC ESP32. После этого необходим код Arduino, который будет считывать аналоговые значения с выходного контакта LDR. Для разработки этой схемы нам понадобится LDR, резистор и плата ESP32.
LDR и резистор соединены последовательно, LDR подключен к аналоговый канал 1 входной контакт ESP32. В схему будет добавлен светодиод, который может проверить работу LDR.
3.1: Схема
Принципиальная схема интерфейса LDR с ESP32 довольно проста. Нам нужно подключить LDR и резистор в конфигурации делителя напряжения и соединить выход делителя напряжения с контактом ADC (аналого-цифровой преобразователь) ESP32. Контакт D34 канала 1 АЦП используется как аналоговый вход для ESP32.
Следующее изображение представляет собой схему ESP32 с датчиком LDR.
3.2: Код
После того, как схема настроена, следующим шагом будет написание кода для ESP32. Код будет считывать аналоговый вход с LDR и использовать его для управления светодиодом или другим устройством в зависимости от различных уровней освещенности.
интервал LDR_Val = 0 ; /* Переменная для хранения значения фоторезистора */внутренний датчик = 3. 4 ; /* Аналоговый вход для фоторезистор */
инт вел '=' 25 ; /* Выходной контакт светодиода */
недействительная установка ( ) {
Серийный.начало ( 9600 ) ; /* Скорость передачи данных для последовательная связь */
контактный режим ( светодиод, ВЫХОД ) ; /* Светодиодный контакт набор как выход */
}
пустая петля ( ) {
LDR_Val = аналоговое чтение ( датчик ) ; /* Аналоговый читать значение LDR */
Серийный.печать ( 'Выходное значение LDR: ' ) ;
Серийный.println ( LDR_Val ) ; /* Отображение выходного значения LDR на последовательном мониторе */
если ( LDR_Val > 100 ) { /* Если интенсивность света ВЫСОКАЯ */
Серийный.println ( ' Высокая интенсивность ' ) ;
цифровойЗапись ( светодиодный, НИЗКИЙ ) ; /* Светодиод остается выключенным */
}
еще {
/* Еще если Интенсивность света НИЗКАЯ, светодиод остается включенным */
Серийный.println ( 'Низкая интенсивность ' ) ;
цифровойЗапись ( светодиод, ВЫСОКИЙ ) ; /* Светодиод Включите Значение LDR меньше чем 100 */
}
задерживать ( 1000 ) ; /* Считывает значение после каждого 1 сек */
}
В приведенном выше коде мы используем LDR с ESP32, который будет управлять светодиодом, используя аналоговый вход, поступающий от LDR.
Первые три строки кода объявляют переменные для хранения значение фоторезистора , аналоговый пин для фоторезистора и ВЕЛ выходной пин.
в настраивать() последовательной связи инициируется со скоростью 9600 бод, а светодиодный контакт D25 устанавливается в качестве выхода.
в петля() функция, значение фоторезистора считывается с помощью функции AnalogRead(), которая хранится в LDR_Val переменная. Затем значение фоторезистора отображается на последовательном мониторе с помощью функции Serial.println().
Ан если еще оператор используется для управления светодиодом на основе интенсивности света, обнаруженной фоторезистором. Если значение фоторезистора больше 100, это означает, что интенсивность света ВЫСОКАЯ, а светодиод остается выключенным. Однако, если значение фоторезистора меньше или равно 100, это означает, что интенсивность света НИЗКАЯ, и светодиод включается.
Наконец, программа ждет 1 секунду, используя функцию delay(), прежде чем снова считать значение фоторезистора. Этот цикл повторяется бесконечно, заставляя светодиод включаться и выключаться в зависимости от интенсивности света, определяемой фоторезистором.
3.3: Выход при тусклом свете
Интенсивность света меньше 100, поэтому светодиод остается включенным.
3.4: Выход при ярком свете
По мере увеличения интенсивности света значение LDR будет увеличиваться, а сопротивление LDR будет уменьшаться, поэтому светодиод выключится.
Заключение
LDR может быть связан с ESP32 с помощью контакта 1 канала ADC. Выход LDR может управлять светочувствительностью в различных приложениях. Благодаря своей низкой стоимости и компактным размерам ESP32 и LDR являются привлекательным выбором для проектов IoT, которым требуются возможности распознавания света. Использование Ардуино аналоговоеЧтение() мы можем читать значения из LDR.