산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Raspberry Pi 광 센서:간단한 LDR 자습서

이 Raspberry Pi 광 센서 자습서에서는 광 저항 센서를 GPIO 핀에 올바르게 연결하는 방법을 보여줍니다. 마지막으로 간단한 python 스크립트에서 데이터를 수집하고 사용할 수 있는 방법을 보여 드리겠습니다.

이것은 내가 조명 작동 알람 시계와 같은 미래 프로젝트에 통합할 또 다른 센서입니다.

이 회로에서 사용할 각 부품에 대해 좀 더 자세히 설명하겠습니다. 이에 대한 추가 정보가 필요한 경우 해당 내용을 읽으십시오. 이 튜토리얼에서 저는 단순한 광전지 센서를 사용하고 있다는 점에 유의하는 것이 중요합니다. 그러나 일부 작업에는 완벽하지만 원하는 만큼 정확하지 않을 수 있습니다.

광센서 회로 및 코드 설정 방법을 차근차근 시각적으로 보고 싶으시다면 장비 목록 바로 아래 영상을 꼭 확인해주세요.

장비:

이 Raspberry Pi 광 센서 튜토리얼을 완료하려면 다음 장비가 필요합니다. 브레드보드 장비 없이도 이 작업을 수행할 수 있지만 많은 회로 작업을 수행할 계획이라면 일부 장비에 투자하는 것이 좋습니다.

권장:

라즈베리 파이

Raspberry Pi 2 또는 B+를 사용하는 경우 8GB SD 카드 또는 Micro SD 카드

이더넷 코드 또는 Wi-Fi 동글

광센서(LDR 센서)

1 1uF 커패시터

선택 사항:

라즈베리 파이 케이스

USB 키보드

USB 마우스

GPIO 브레이크아웃 키트

브레드보드

브레드보드 와이어

동영상

비디오에는 이 튜토리얼의 텍스트 버전이 수행하는 거의 모든 것이 포함되어 있습니다. 시각적으로 완료되는 것을 보고 싶다면 완벽합니다. 또한 완료되면 회로가 어떻게 작동해야 하는지 알게 될 것입니다.

동영상 바로 아래에서 텍스트 지침 및 정보를 찾을 수 있습니다.

Raspberry Pi 광 센서 회로

이 튜토리얼에서 만들려는 회로는 매우 간단하며 회로를 처음 시작하는 모든 사람에게 적합합니다.

LDR 센서라고도 알려진 광 의존 저항은 우리 회로에서 가장 중요한 장비입니다(분명히). 그것이 없으면 우리는 그것이 어두운지 밝은지 감지할 수 없을 것입니다. 밝은 곳에서는 이 센서의 저항이 수백 옴에 불과하지만 어두운 곳에서는 몇 메가옴의 저항을 가질 수 있습니다.

회로에 커패시터가 있으므로 LDR 센서의 저항을 측정할 수 있습니다. 커패시터는 기본적으로 전원을 공급받는 동안 충전된 다음 더 이상 전원을 받지 않으면 방전되는 배터리와 같은 역할을 합니다. 이것을 LDR과 직렬로 사용하면 LDR이 얼마나 많은 저항을 내는지 알 수 있으므로 밝거나 어둡습니다.

광 센서 회로를 올바르게 구축하려면 아래 단계를 따르거나 단계 바로 아래에 있는 회로도를 확인하십시오. 다음 단계에서는 핀의 물리적 번호(논리적 순서)를 참조합니다.

<올>
  • 먼저 핀 #1(3v3)을 브레드보드의 양극 레일에 연결합니다.
  • 다음으로 6번 핀(접지)을 브레드보드의 접지 레일에 연결합니다.
  • 이제 LDR 센서를 기판에 놓고 한쪽 끝에서 양극 레일로 와이어를 연결합니다.
  • LDR 센서의 다른 쪽에는 Raspberry Pi로 다시 연결되는 와이어를 배치합니다. 이것을 7번 핀에 연결하세요.
  • 마지막으로 전선에서 브레드보드의 음극 레일까지 커패시터를 배치합니다. 음극 레일에 커패시터의 음극 핀이 있는지 확인하십시오.
  • 이제 Python 코드로 이동할 준비가 되었습니다. 회로에 문제가 있는 경우 아래 다이어그램을 참조하세요.

    코드

    이 프로젝트의 코드는 매우 간단하며 밝은지, 그늘진지 또는 완전히 어두운지 대략적으로 알려줍니다.

    이 회로에서 우리가 직면한 가장 큰 문제는 Pi에 아날로그 핀이 없다는 사실입니다. 그것들은 모두 디지털이므로 입력에 대한 저항의 변화를 정확하게 측정할 수 없습니다. 아날로그 핀의 부족은 출력이 높거나 낮았기 때문에(디지털) 모션 센서 자습서에서 문제가 되지 않았습니다. 대신 커패시터가 충전되고 핀을 하이로 보내는 데 걸리는 시간을 측정합니다. 이 방법은 밝거나 어두움을 구분하는 쉽지만 부정확한 방법입니다.

    Raspberry Pi 광 센서 코드와 그 역할에 대해 간략하게 설명하겠습니다. 코드를 원하시면 복사하여 아래에 붙여넣거나 내 GitHub에서 다운로드할 수 있습니다.

    시작하려면 GPIO 핀과 통신할 수 있도록 필요한 GPIO 패키지를 가져옵니다. 또한 시간 패키지를 가져오기 때문에 필요할 때 스크립트를 잠자기 상태로 만들 수 있습니다.

    #!/usr/local/bin/pythonimport RPi.GPIO를 GPIO 가져오기 시간으로 

    그런 다음 GPIO 모드를 GPIO.BOARD로 설정합니다. 이는 이 스크립트에서 사용하는 모든 번호가 핀의 물리적 번호를 참조한다는 것을 의미합니다. 입력/출력 핀이 하나만 있기 때문에 하나의 변수만 설정하면 됩니다. 이 변수를 입력/출력 핀으로 작동하는 핀 번호로 설정하십시오.

    GPIO.setmode(GPIO.BOARD)# circuitpin_to_circuit =7로 가는 핀 정의 

    다음으로 rc_time이라는 함수가 있습니다. 회로에 대한 핀 번호인 하나의 매개변수가 필요합니다. 이 함수에서 count라는 변수를 초기화하고 핀이 하이가 되면 이 값을 반환합니다.

    그런 다음 출력으로 작동하도록 핀을 설정한 다음 낮음으로 설정하고 스크립트를 10ms 동안 잠자기 상태로 만듭니다.

    그런 다음 핀을 입력으로 설정하고 while 루프에 들어갑니다. 우리는 핀이 하이가 될 때까지 이 루프를 유지합니다. 이것은 커패시터가 약 3/4로 충전될 때입니다. 일단 높아지면 카운트 값을 메인 함수로 반환합니다. 이 값을 사용하여 LED를 켜고 끄거나, 다른 것을 활성화하거나, 데이터를 기록하고, 빛의 변화에 ​​대한 통계를 유지할 수 있습니다.

    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#스크립트가 중단될 때 캐치, 정리 righttry:# 메인 루프 while True:print rc_time(pin_to_circuit)except KeyboardInterrupt:passfinally:GPIO.cleanup() 

    Raspberry Pi에서 코드 배포 및 실행

    이 단계는 매우 쉽지만 가능한 한 빠르고 원활하게 Pi에서 실행할 수 있도록 단계를 빠르게 진행하겠습니다. 이 웹사이트의 모든 튜토리얼과 마찬가지로 Raspbian을 설치하는 데 도움이 필요하면 Raspbian을 사용하고 있습니다. Raspbian 설치 가이드를 확인하세요.

    경우에 따라 모든 소프트웨어 패키지가 이미 설치되어 있어야 하지만 그렇지 않을 수도 있습니다. GPIO 핀과 소프트웨어 업데이트 및 설치 방법에 대해 자세히 알아보려면 Raspberry Pi에서 GPIO 핀 설정에 대한 제 튜토리얼을 확인하세요.

    git clone을 사용하여 코드를 다운로드할 수 있습니다. 다음 명령은 바로 이 작업을 수행합니다.

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

    또는 파일이 python 스크립트인지 확인하기만 하면 코드를 복사하여 붙여넣을 수 있습니다.

    sudo nano light_sensor.py 

    파일에서 작업을 마치면 ctrl x를 사용하기만 하면 됩니다. 그런 다음 y 저장하고 종료합니다.

    마지막으로 다음 명령을 사용하여 코드를 실행합니다.

    sudo 파이썬 light_sensor.py 

    이제 스크립트가 작동하고 센서의 빛 변화를 올바르게 반영하는 데이터를 수신하기를 바랍니다. 문제가 발생하면 주저하지 말고 아래에 의견을 남겨주세요.

    정확도 및 사용 가능성 개선

    회로에서 광 센서의 용도는 셀 수 없이 많습니다. 이 튜토리얼을 작성하는 동안 생각난 몇 가지만 말씀드리겠습니다.

    이 멋진 작은 센서로 할 수 있는 일은 무궁무진하지만 광전지보다 조금 더 정확한 것이 필요하다면 Adafruit의 HDR(High Dynamic Range) 디지털 광 센서와 같은 것을 살펴보십시오.

    아무 문제 없이 이 Raspberry Pi 광 센서를 설정할 수 있기를 바랍니다. 문제가 발생하거나 피드백이 있는 경우 제가 놓친 부분이나 하고 싶은 말이 있으면 아래에 의견을 남겨주세요.

    출처:Raspberry Pi 광 센서:간단한 LDR 자습서


    제조공정

    1. 라즈베리 파이 온도 로거
    2. Python 및 Raspberry Pi 온도 센서
    3. 라즈베리 파이 기상 관측소
    4. Raspberry Pi의 1선식 온도 센서 DS1820(GPIO 직접)
    5. 초음파 센서(HC-SR04) + 라즈베리파이
    6. 동작 센서, 알람, Raspberry Pi의 HA에서 비디오 녹화
    7. Raspberry Pi를 사용한 모션 센서
    8. 라즈베리 파이 토양 수분 센서
    9. JAVA의 Raspberry Pi 디지털 홀 센서
    10. Raspberry Pi 온도 및 광 센서