Raspberry Pi를 사용하여 방문자 알림 시스템 만들기

개요


  • 단독 주택용 인터폰으로 고객의 통지를 이메일로 보내는 제품이있다
  • 임대 주택에서는 장비 장비 만 사용할 수 있으며 개조 할 수 없습니다
  • 인터폰 호출에 따라 카메라 이미지를 촬영하고 메일을 보내는 시스템 만들기





  • 준비하는 것


  • Raspberry Pi3 Model B (4 아마도 괜찮아)
  • Raspberry Pi 용 케이스
  • Raspberry Pi 용 방열판
  • Raspberry Pi3 Model B B + 지원 전원 세트 (5V 3.0A)
  • GY-30 디지털 광 강도 센서 모듈 I2C
  • 로그인 스마트 Raspberry Pi 용 카메라 모듈 Camera Module for 라즈베리 파이
  • 점퍼 와이어 여성 - 여성
  • 열 수축 튜브
  • 본립 (100 엔 숍)

  • 환경 구축


  • Raspberry Pi OS를 설정하고 I2C 활성화
    htps //w w. 등 sp 베 ry 피. 오 rg / 도 w 응 아 ds /
    htps //w w. 니도 r 코 r 기어 ぇ c. 코 m / 레소 r 세 s / 라 sp 베 ry-피 / 라 sp 베 ry 파이 2c /
  • mutt로 Gmail을 보낼 수 있습니다.
    h tp // w w. 타푼. 네 t / 라 s 피 / 라 sp 베 ry - 핏 smtp 무 t

  • 조립



    Raspberry Pi와 광 센서(GY-30), 카메라를 다음과 같이 연결

    ※Raspberry Pi의 핀 배치는 할애합니다.
    * 인터폰의 화면에 광 센서를 설치한다 (호출로 화면이 밝아지는 것을 이용)



    프로그래밍


  • Python에서 while 문으로 루핑하고 광 센서의 값이 200Lux 이상이되면,
    카메라로 촬영하고 jpg 형식으로 저장 (촬영 때마다 덮어 쓰기)
  • 촬영 한 연월일을 텍스트 파일에 일시적으로 씁니다 (덮어 쓰기) body.txt
  • mutt와 Gmail을 사용하여 촬영 한 연월일을 본문에 넣은 메일 전송 guest.sh
  • 5분의 수면 시간을 설정한다.
  • Raspberry Pi를 시작할 때 guest.py가 자동으로 시작되도록 설정

  • 메인 프로그램

    /home/pi/guest/guest.py
    import smbus
    
    import picamera
    
    import time
    
    import subprocess
    
    bus = smbus.SMBus(1)
    
    addr = 0x23
    
    camera = picamera.PiCamera()
    
    while True:
    
        luxRead = bus.read_i2c_block_data(addr,0x11)
    
        print("Lux: "+str(luxRead[1]* 10))
    
        if int(luxRead[1]* 10) > 200:
    
            camera.capture('/home/pi/guest/image.jpg')
    
            res = subprocess.call("sh /home/pi/guest/guest.sh",shell=True)
    
            time.sleep(300)
    
        time.sleep(1)
    

    메일 전송을 위한 쉘 스크립트

    /home/pi/guest/guest.sh
    sudo date > /home/pi/guest/body.txt
    sudo mutt -s "guest arrived!" [email protected] -a /home/pi/guest/image
    .jpg < /home/pi/guest/body.txt
    

    자동 시작 설정

    /etc/rc.local
    #!/bin/sh -e
    #
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    # Make sure that the script will "exit 0" on success or any other
    # value on error.
    #
    # In order to enable or disable this script just change the execution
    # bits.
    #
    # By default this script does nothing.
    
    # Print the IP address
    _IP=$(hostname -I) || true
    if [ "$_IP" ]; then
      printf "My IP address is %s\n" "$_IP"
    fi
    
    sudo python3 /home/pi/guest/guest.py &
    
    exit 0
    

    주의점


  • 검출하는 빛의 강도 (Lux)는 인터폰에 따라 다르므로 조정
    터치 패널로 화면이 밝아지는 타입에서는, 그 기능으로 확인한다
  • 절전 시간은 자동 잠금 입구에서 방 거리로 조정됩니다.



  • 사용해보십시오.


  • 인터넷 통신 판매를 많이 사용하고 있기 때문에 부재 중 방문자가 있었을 때의 통지는 편리
  • 1 년 반 이상 사용하고 있지만 안정 동작
  • 좋은 웹페이지 즐겨찾기