Код для поиска

ESP32 Урок 22/55 — Ощущаем свет с помощью светодиода Arduino | Обучающий набор SunFounder для ESP32 IoT

ESP32 Урок 22/55 — Ощущаем свет с помощью светодиода Arduino | Обучающий набор SunFounder для ESP32 IoT

В этом руководстве мы рассмотрим, как использовать фоторезистор (LDR) с микроконтроллером ESP32 для измерения интенсивности света. Считывая сопротивление LDR, мы можем запускать действия, например, включать зуммер, когда уровень света превышает определенный порог. Этот проект продемонстрирует взаимодействие между уровнями света и возможностями аналогового чтения ESP32, что позволит нам создавать адаптивные приложения на основе окружающего света (на видео в 5:30).

Объяснение аппаратного обеспечения

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

Микроконтроллер ESP32 имеет встроенные Wi-Fi и Bluetooth, что делает его идеальным для проектов Интернета вещей. У него есть несколько аналоговых контактов, которые могут считывать различные уровни напряжения, которые мы будем использовать для контроля напряжения на фоторезисторе. Это напряжение будет преобразовано в аналоговое значение, которое ESP32 может обработать и использовать для запуска таких действий, как активация зуммера.

Данные из технического описания

ПроизводительEspressif Systems
Номер деталиESP32
Логическое/IO напряжение3,3 В
Напряжение питания3,0 - 3,6 В
Выходной ток (на GPIO)макс. 40 мА
Рекомендации по частоте ШИМ1 кГц - 40 кГц
Пороговые значения входной логикиВысокий: мин. 2,0 В, Низкий: макс. 0,8 В
Падение напряжения / RDS(on) / насыщениемакс. 0,3 В
Тепловые пределыот -40 °C до 125 °C
КорпусQFN48
Примечания / вариантыПоддерживает несколько протоколов Wi-Fi и Bluetooth

  • Используйте резистор на 10 кОм последовательно с фоторезистором для деления напряжения.
  • Убедитесь, что ESP32 питается от 3,3 В, чтобы избежать повреждения.
  • Правильно подключите фоторезистор и резистор для измерения интенсивности света.
  • При необходимости используйте конденсатор для развязки, чтобы стабилизировать источник питания.
  • Проверяйте значения аналогового чтения, чтобы убедиться, что они находятся в ожидаемых диапазонах.

Инструкции по подключению

ESP32-22_light_sensor-wiring

Чтобы подключить фоторезистор и резистор к ESP32, начните с подключения одного вывода фоторезистора к контакту питания 3,3 В на ESP32. Другой вывод фоторезистора должен быть подключен к одному выводу резистора на 10 кОм. Подключите другой вывод резистора к земле.

Затем подключите перемычку от точки соединения между фоторезистором и резистором к контакту 35 на ESP32. Эта схема создает делитель напряжения, позволяя ESP32 считывать изменяющееся напряжение в зависимости от интенсивности света, попадающего на фоторезистор. Убедитесь, что все соединения надежны и что фоторезистор расположен так, чтобы точно воспринимать изменения света.

Примеры кода и пояснения

В коде мы начинаем с инициализации последовательной связи для контроля показаний с фоторезистора. Ключевым идентификатором здесь является analogValue, который хранит показание с контакта 35.

void setup() {
  Serial.begin(115200);
}

void loop() {
  int analogValue = analogRead(35);
  Serial.printf("ADC analog value = %d\n",analogValue);
  delay(100);
}

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

Когда интенсивность света изменяется, сопротивление фоторезистора меняется, и, следовательно, напряжение, считываемое ESP32, также будет меняться, отражая условия освещения (на видео в 12:45).

Демонстрация / Что ожидать

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

Если показания не изменяются так, как ожидалось, проверьте проблемы с подключением, убедитесь, что фоторезистор не находится в подвешенном состоянии, и подтвердите, что ESP32 правильно запитан. Это поможет избежать распространенных ошибок и обеспечит плавную работу (на видео в 15:30).

Временные метки видео

  • 00:00 Начало
  • 1:48 Введение в фоторезистор
  • 8:33 Объяснение подключения
  • 11:07 Объяснение кода Arduino
  • 13:07 Выбор платы ESP32 и COM-порта в Arduino IDE
  • 14:49 Демонстрация чтения значения
  • 17:24 Понимание значений дня и ночи
  • 18:47 Значение ЦАП и чтение напряжения

Изображения

ESP32-22_light_sensor
ESP32-22_light_sensor
ESP32-22_light_sensor-wiring
ESP32-22_light_sensor-wiring
821-ESP32 Tutorial 22/55- Arduino code for Light dependant resistor
Язык: C++
void setup() {
 // инициализировать последовательную связь на скорости 115200 бит в секунду:
  Serial.begin(115200);

}

void loop() {
 // прочитать аналоговое значение
  int analogValue = analogRead(35);

 // распечатайте значения, которые вы прочитали:
  Serial.printf("ADC analog value = %d\n",analogValue);

  delay(100); // задержка между чтениями для четкого считывания из серийного порта
}

Ресурсы и ссылки

Файлы📁

Нет доступных файлов.