Raspberry Pi와 웹캠으로 세탁기의 작동 상황을 모니터링하고 세탁 종료를 LINE에 알리는 IoT 봇을 만들어 보았다.

이 기사는 2018년 4월에 다른 장소에 쓴 기사의 원본입니다.

개요



집의 1층에 있는 세탁기로 세탁이 끝났는지 어떤지를, 2층의 거실에 있어도 알고 싶다! 그래서 타이틀대로입니다.

세탁 종료를 판정하기 위한 단서로서는, 세탁 종료시에 울리는 비프음, 세탁기의 사용 전력(전류), 등이 있을 것 같습니다만, 이번은 조작 패널의 표시를 사용합니다. 우리 집의 세탁기에는, 조작 패널안에 세탁 종료시에만 점등하는 장소가 있었으므로, 이 장소의 점등 상황에서 세탁 종료를 자동 판정할 수 버립니다.

Raspberry Pi에 연결한 WEB카메라로 조작 패널의 특정 위치의 점등 상황을 판정할 뿐입니다만, 조작 패널을 잘 찍을 수 있는 카메라의 고정 장소가 별로 없다는 것이 실은 문제입니다. 조금 떨어진 장소에서 감시할 수밖에 없기 때문에, 방향을 얽히게 맞추는 것만으로도 사용할 수 있다든가, 카메라가 다소 움직이거나 해도 사용할 수 있다든가 하기 위한 궁리가 필요합니다.


정책



그렇기 때문에 기본적인 방침은 다음과 같다. 점등 상황을 감시하고 싶은 장소의 가까이에 AR 마커를 붙여, 이것을 기준으로 감시 장소의 화상을 잘라내 점등 상황의 판정을 하도록(듯이) 했습니다.
  • AR 마커를 점등 상황을 감시해야 할 장소 근처에 부착
  • WEB 카메라로 촬영 한 이미지에서 AR 마커를 감지합니다
  • 검출 된 AR 마커를 기준으로 감시 장소의 이미지를 잘라내어 점등 판정
  • 켜져 있다고 판단되면 IFTTT를 통해 LINE에 "세탁이 끝났습니다."

    코드



    Raspberry Pi용 Python 코드는 아래에 둡니다.
    nikotan/WashingMonitor

    동작



    오보 대책으로 고생했지만, 지금은 안정적으로 움직이고 있습니다. 상당히 편리.


    참고



    AR 마커의 검출을 위해서 사용한 OpenCV의 aruco 라이브러리나, aruco 라이브러리를 사용하기 위한 Raspberry Pi상에서의 OpenCV의 빌드나, IFTTT를 사용한 푸시 통지등에 대해서는, 이하 기사를 참고로 했습니다.
  • [Python으로 프로그래밍] aruco 라이브러리를 사용하여 AR 마커를 인식했습니다 | 오늘은 재미 있습니다.
  • ArUco 마커 감지 - Qiita
  • Raspberry Pi Zero W / OpenCV 3.x ArUco도 사용할 수 있습니다.
  • [RaspberryPi] [python] 온도 센서 + IFTTT로 실내 온도를 LINE에 알리기 - Qiita
  • 좋은 웹페이지 즐겨찾기