Учебник по датчику света на Raspberry Pi: подключение фоторезистора и чтение уровня освещенности на Python
В этом подробном уроке по датчику света на Raspberry Pi я проведу вас через подключение фоторезистора к GPIO-выводам и чтение данных лаконичным Python-скриптом. Цель — дать практическое понимание схемы, кода и практических применений, таких как световой будильник.
Проект идеален для новичков, желающих исследовать интеграцию датчиков, но также служит фундаментом для более сложных проектов.
Ниже детально описаны компоненты, пошаговая сборка и логика Python, превращающая цифровые выводы Pi в условно-аналоговое измерение.
Оборудование
Все необходимое перечислено ниже. Макетная плата не строго обязательна, но сильно упрощает сборку, особенно если планируете дальнейшие эксперименты.
Рекомендуемое
Raspberry Pi
SD-карта 8 ГБ или Micro SD для Pi 2/B+
Ethernet-кабель или Wi-Fi-адаптер
Датчик света (LDR)
Конденсатор 1 мкФ
Опционально
Корпус Raspberry Pi
USB-клавиатура
USB-мышь
Набор для GPIO breakout
Макетная плата
Перемычки для макетной платы
Видео
Для визуального обучения сопровождающее видео демонстрирует полную сборку и показывает выход датчика в реальном времени. Та же информация приведена в тексте ниже.
Сборка схемы датчика света
Схема намеренно проста: LDR, конденсатор 1 мкФ и один GPIO-вывод. Сопротивление LDR падает до нескольких сотен ом при ярком свете и поднимается до нескольких мегаом в темноте. Измеряя RC-постоянную конденсатора, Pi может судить об уровне освещенности даже без аналоговых входов.
- Соедините вывод #1 (3,3 В) с + шиной макетной платы.
- Соедините вывод #6 (GND) с – шиной макетной платы.
- Установите LDR на макетной плате и проведите провод от одного конца к + шине.
- Проведите провод от другого конца LDR к выводу #7 на Pi.
- Вставьте конденсатор 1 мкФ между проводом от вывода #7 и – шиной, обеспечивая минусовой вывод к – шине.
Обратитесь к диаграмме ниже для наглядной схемы. После сборки железа Python-код преобразует цифровой вывод в грубое аналоговое измерение.
Python-код
Скрипт ниже измеряет, за какое время конденсатор заряжается до 75% напряжения питания. Это RC-время пропорционально сопротивлению LDR, давая грубую оценку освещенности.
#!/usr/local/bin/python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
# Вывод, подключенный к RC-цепи
pin_to_circuit = 7
def rc_time(pin):
count = 0
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, GPIO.LOW)
time.sleep(0.1)
GPIO.setup(pin, GPIO.IN)
while GPIO.input(pin) == GPIO.LOW:
count += 1
return count
try:
while True:
print(rc_time(pin_to_circuit))
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()
Развертывание и запуск
На Raspberry Pi с Raspbian необходимые библиотеки предустановлены. Если нужно установить вручную:
sudo apt-get update
sudo apt-get install python3-rpi.gpio
Клонируйте репозиторий и запустите скрипт:
git clone https://github.com/pimylifeup/Light_Sensor/
cd Light_Sensor
sudo python3 light_sensor.py
Альтернативно, вставьте код в новый файл, сохраните как light_sensor.py и выполните ту же команду.
Повышение точности и возможные применения
Хотя LDR дает быстрое, дешевое решение, его ограниченный динамический диапазон и температурная чувствительность могут быть недостаточны для точной работы. Для приложений, требующих высшей точности, рассмотрите датчики вроде цифрового датчика света с высоким динамическим диапазоном от Adafruit.
- Световой будильник: используйте LDR для запуска будильника, громкость которого растет с увеличением дневного света.
- Монитор солнечного света в саду: регистрируйте интенсивность света в разных зонах сада для принятия решений о посадке.
- Оповещение о присутствии в комнате: детектируйте неожиданный свет в темной комнате и отправляйте уведомление.
Экспериментируйте, настраивайте RC-цепь или интегрируйте датчик в более крупные проекты. При проблемах или предложениях оставляйте комментарий ниже.
Источник: Raspberry Pi Light Sensor – A Simple LDR Tutorial
Производственный процесс
- Сборка логгера температуры на Raspberry Pi с $5 I2C датчиком
- Создание удалённого датчика температуры на Raspberry Pi и Python — пошаговое руководство
- Создание метеостанции на Raspberry Pi с ежедневными email-отчётами о погоде
- Как подключить однопроводный датчик температуры DS1820 к Raspberry Pi через GPIO
- Подключение ультразвукового датчика HC‑SR04 к Raspberry Pi 3 — полное руководство
- Надёжный домашний мониторинг с Home Assistant на Raspberry Pi: движение, алермы и видеозахват
- Управление светодиодом с PIR-датчиком движения на Raspberry Pi
- Построение низкобюджетного датчика влажности почвы на Raspberry Pi для умного полива
- Чтение линейного Холловского датчика с Raspberry Pi: руководство по Java и особенности ADC0832
- Создание многодатчиковой системы мониторинга температуры и света с Raspberry Pi и DS18B20