Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Датчик освещенности Raspberry Pi:простое руководство по LDR

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

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

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

Если вы хотите наглядно увидеть, как настроить схему и код светового датчика, обязательно посмотрите видео прямо под списком оборудования.

Оборудование:

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

Рекомендуется:

Малиновый Pi

SD-карта или карта Micro SD на 8 ГБ, если вы используете Raspberry Pi 2 или B +

Шнур Ethernet или ключ Wi-Fi

Датчик освещенности (датчик LDR)

1 конденсатор 1 мкФ

Необязательно:

Чехол для Raspberry Pi

USB-клавиатура

USB-мышь

Комплект для прорыва GPIO

Макет

Макетная плата

Видео

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

Вы можете найти текстовые инструкции и информацию прямо под видео.

Схема датчика освещенности Raspberry Pi

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

Светозависимый резистор, также известный как датчик LDR, является наиболее важным элементом оборудования в нашей схеме (очевидно). Без него мы не смогли бы определить, темный он или светлый. На свету этот датчик будет иметь сопротивление всего несколько сотен Ом, в то время как в темноте он может иметь сопротивление в несколько МОм.

Конденсатор в нашей цепи присутствует, поэтому мы можем измерить сопротивление датчика LDR. Конденсатор, по сути, действует как батарея, которая заряжается при получении энергии и затем разряжается, когда больше не получает питание. Используя его последовательно с LDR, мы можем определить, какое сопротивление выдает LDR, независимо от того, светлый он или темный.

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

  1. Сначала подключите контакт №1 (3v3) к положительной шине на макетной плате.
  2. Затем подключите контакт № 6 (земля) к шине заземления на макетной плате.
  3. Теперь поместите датчик LDR на плату так, чтобы провод прошел от одного конца к положительной шине.
  4. С другой стороны датчика LDR разместите провод, ведущий к Raspberry Pi. Подсоедините это к контакту №7.
  5. Наконец, подключите конденсатор от провода к отрицательной шине на макетной плате. Убедитесь, что отрицательный вывод конденсатора подключен к отрицательной шине.

Теперь мы готовы перейти к коду Python. Если у вас возникнут проблемы со схемой, обратитесь к диаграмме ниже.

Код

Код этого проекта довольно прост и примерно скажет нам, светлый он, тенистый или полностью темный.

Самая большая проблема, с которой мы сталкиваемся с этой схемой, заключается в том, что у Pi нет аналоговых контактов. Все они цифровые, поэтому мы не можем точно измерить разброс сопротивления на нашем входе. Отсутствие аналоговых выводов не было проблемой в руководстве по датчику движения, поскольку выходной сигнал от него был либо высоким, либо низким (цифровой). Вместо этого мы будем измерять время, необходимое конденсатору, чтобы зарядиться и отправить на вывод высокий уровень. Этот метод - простой, но неточный способ определить, светлый он или темный.

Я кратко объясню код датчика освещенности Raspberry Pi и то, что он делает. Если вам нужен код, вы можете скопировать и вставить его ниже или загрузить с моего GitHub.

Для начала мы импортируем пакет GPIO, который нам понадобится, чтобы мы могли связываться с выводами GPIO. Мы также импортируем пакет времени, чтобы можно было перевести скрипт в спящий режим, когда нам нужно.

  #! / usr / local / bin / pythonimport RPi.GPIO as GPIOimport time  

Затем мы устанавливаем режим GPIO на GPIO.BOARD, это означает, что вся нумерация, которую мы используем в этом скрипте, будет относиться к физической нумерации контактов. Поскольку у нас есть только один вход / выход, нам нужно установить только одну переменную. Задайте для этой переменной номер контакта, который вы используете в качестве контакта ввода / вывода.

  GPIO.setmode (GPIO.BOARD) # определить контакт, который идет к circuitpin_to_circuit =7  

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

Затем мы устанавливаем наш контакт в качестве выхода, а затем устанавливаем его на низкий уровень, после чего скрипт находится в спящем режиме на 10 мс.

После этого мы устанавливаем контакт как вход, а затем входим в цикл while. Мы остаемся в этой петле, пока вывод не перейдет в высокий уровень, это когда конденсатор заряжается примерно до 3/4. Как только он становится высоким, мы возвращаем значение счетчика в основную функцию. Вы можете использовать это значение, чтобы включать и выключать светодиод, активировать что-то еще или регистрировать данные и вести статистику по любому отклонению света.

  def rc_time (pin_to_circuit):count =0 # Выход на вывод для GPIO.setup (pin_to_circuit, GPIO.OUT) GPIO.output (pin_to_circuit, GPIO.LOW) time.sleep (0.1) # Измените закрепить обратно на вход GPIO.setup (pin_to_circuit, GPIO.IN) # Счетчик, пока вывод не станет высоким, в то время как (GPIO.input (pin_to_circuit) ==GPIO.LOW):count + =1 return count # Поймать, когда скрипт прерван, очистка правильноtry:# Основной цикл while True:print rc_time (pin_to_circuit), кроме KeyboardInterrupt:passfinally:GPIO.cleanup ()  

Развертывание и запуск кода на Raspberry Pi

Этот шаг невероятно прост, но я быстро пройдусь по ним, чтобы вы могли настроить его и запустить на своем Pi как можно быстрее и плавнее. Как и все руководства на этом веб-сайте, я использую Raspbian, если вам нужна помощь в установке Raspbian, ознакомьтесь с моим руководством по установке Raspbian.

Хотя в некоторых случаях все программные пакеты уже должны быть установлены, это может быть не так. Если вы хотите узнать больше о контактах GPIO и о том, как обновить и установить программное обеспечение, обязательно ознакомьтесь с моим руководством по настройке контактов GPIO на Raspberry Pi.

Вы можете скачать код с помощью git clone. Следующая команда сделает именно это:

  git clone https://github.com/pimylifeup/Light_Sensor/cd ./Light_Sensor  

Кроме того, вы можете скопировать и вставить код, просто убедитесь, что файл является скриптом Python.

  sudo nano light_sensor.py  

Когда вы закончите работу с файлом, просто нажмите ctrl x затем y для сохранения и выхода.

Наконец, запустите код, используя следующую команду:

  sudo python light_sensor.py  

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

Повышение точности и возможные варианты использования

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

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

Надеюсь, вам удалось без проблем настроить этот датчик освещенности Raspberry Pi. Если вы столкнулись с проблемой, у вас есть отзыв, я что-то пропустил или что-то еще, что вы хотели бы сказать, тогда оставьте комментарий ниже.

Источник:Датчик освещенности Raspberry Pi:простое руководство по LDR


Производственный процесс

  1. Регистратор температуры Raspberry Pi
  2. Датчик температуры Python и Raspberry Pi
  3. Метеостанция Raspberry Pi
  4. 1-проводный датчик температуры DS1820 на Raspberry Pi (напрямую через GPIO)
  5. Ультразвуковой датчик (HC-SR04) + Raspberry Pi
  6. Датчик движения, тревога, запись видео в HA на Raspberry Pi
  7. Датчик движения с использованием Raspberry Pi
  8. Датчик влажности почвы Raspberry Pi
  9. Цифровой датчик Холла Raspberry Pi в JAVA
  10. Датчик температуры и освещенности Raspberry Pi