【초보자용】Raspberry Pi로 인감 센서 만들어 LINE에 통지해 보았다!

소개



Raspberry Pi를 센서 모듈에 연결하여 감지 정보를 자신의 LINE에 알리는 인감 센서를 만들어 보았습니다.

경위



사내의 시제품 ​​앱 작성의 일환으로서, 인감 센서의 구축을 담당하게 되었습니다.
라즈파이는 뭐야? 파이썬은 들었지만 무엇을 할 수 있습니까? 상태에서 시작하여 센서가 반응하면 LINE에 알려주는 것을 만들어 보았습니다.
자사에의 작업 보고를 겸해 기사를 투고하고 있습니다만, 라즈파이를 사용해 전자 공작을 해 보고 싶다! 라는 분의 참고가 되면 다행입니다.

만드는 데 필요한 것



RaspBerry Pi Zero
・Ren He HC-SR501 인체 적외선 감응 모듈
   ( URL: htps //w w. 아마존. 이. jp/gp/p 로즈ct/B07DCKZS5S )
・SD카드
・브레드보드・점퍼 와이어(암-암)
   ( URL: htps //w w. 아마존. 이. jp / gp / p 로즈 ct / B01 A4 )
・USB 허브
· 모니터
・USB 키보드
 ·플라스틱 해머
・GPIO 해머 헤더
  ( htps //w w. 아마존. 이. jp/gp/p 로즈 ct/B0711MPHVF/ )

OS 설치



라즈파이 공식 사이트에서 OS를 다운로드합니다.
이번에는 NOOBS Lite를 이용했습니다.
다운로드한 OS의 Zip 파일을 압축 해제하여 SD 카드에 씁니다.

라즈파이와 센서 모듈 연결



GPIO Hammer Header를 사용하여 GPIO 핀을 플라스틱 망치로 플라스틱 망치로 라즈파이에 넣으면 센서 모듈과 동일한 역할을하는 GPIO 핀에 점퍼 와이어로 연결하십시오.
이번에 사용한 RaspBerry Pi Zero에서는 이런 식으로 연결합니다.


센서 모듈의 검출 시간과 검출 범위는 이 정도로 설정했습니다.


초기 설정



라즈파이에 SD 카드를 삽입합니다.
모니터, USB 키보드, 마우스, 전원을 연결하여 라즈파이를 시작합니다.
이 기사 을 참고로, 초기 설정을 실시합니다

센서 모듈 동작 확인



파이썬에서 라즈파이의 GPIO 제어 설정을 수행하고 센서 모듈의 동작을 확인합니다.
다음 프로그램을 실행합니다.

sensor_test.py
import RPi.GPIO as GPIO
GPIO_PIN = 12

GPIO.setmode(GPIO.BCM)
GPIO.setup(GPIO_PIN,GPIO.IN)

while True:
    if(GPIO.input(GPIO_PIN) == GPIO.HIGH):
        print("1")
        break
GPIO.cleanup()


프로그램 실행 후 센서 모듈에 손을 대고, 다음 결과가되면 동작 확인 완료입니다.
pi@raspberrypi:~ $ python /home/pi/work/sensor_test.py
1

LINE Notify에서 액세스 토큰 발급



  • LINE Notify로 이동하여 알림을 보내고 싶은 LINE 계정으로 로그인하여 내 페이지를 엽니 다.

    2. '토큰 발급'을 클릭합니다.


    3. 토큰 이름을 임의의 토큰 이름으로 설정하고 1:1에서 LINE Notify 알림 수신을 선택합니다.


    4. 발행된 토큰을 메모합니다.


    인감 센서의 검출 정보를 LINE에 통지



    드디어 프로그램 구현합니다!
    센서 모듈로부터의 감지 정보를 라즈파이로 받고 LINE Notify를 향해 API를 두드리십시오.

    detection_LINE.py
    import requests
    import RPi.GPIO as GPIO
    import time
    
    SLEEPTIME = 30
    
    GPIO_PIN = 12
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(GPIO_PIN,GPIO.IN)
    
    def main():
        url = "https://notify-api.line.me/api/notify"
        token = "先ほどメモしたアクセストークン"
        headers = {"Authorization" : "Bearer "+ token}
    
        message =  'IN USE!!!!!'
        payload = {"message" :  message}
        requests.post(url ,headers = headers ,params=payload)
    
    
    try:
        while True:
            if(GPIO.input(GPIO_PIN) == GPIO.HIGH):
                      main()
              time.sleep(SLEEPTIME)
    
    finally:
        GPIO.cleanup
    
    

    라즈파이 시작시 자동으로 실행되도록 Cron을 설정합니다.
    crontab -e 
    

    cron 구성 파일이 열리면 마지막 줄에 다음을 추가합니다.
    @reboot python /home/pi/work/detection_LINE.py
    

    라즈파이 재부팅



    라즈파이를 다시 시작하고 센서 모듈에 손을 대면 알림이 왔습니다!



    만들어 보는 감상



    깔끔한 상태에서 시작했습니다만, GPIO 설치하는데 의외로 힘 사용하거나, 센서 모듈의 검지 범위 맥스로 한 상태+슬립 타임 사이에 끼지 않고 스크립트 실행해 폭죽처럼 LINE 통지 울리지 않거나와 초보자 특유의 주위 길도 많이 했습니다만, 여름방학의 자유 연구 감각으로 즐길 수 있었습니다!

    다음은 AWS의 Lambda 근처를 사용하여 무언가를 만들 수 있다고 생각합니다.
  • 좋은 웹페이지 즐겨찾기