먼지 센서 GP2Y1026AU0F를 Raspberry Pi에서 사용해보십시오.

공기 청정기 등에 내장되어 있는 「먼지 센서」라고 하는 전자 부품이 있습니다. 아키하바라에서도 별로 보이지 않는 부품처럼 생각합니다만, 넷 통판으로 구입할 수 있습니다.

방의 먼지의 양을 가시화할 수 있으면 재미있을 것 같아서, 샤프의 먼지 센서 GP2Y1026AU0F를 입수해 Raspberry Pi로부터 움직여 보았습니다.

기종 선정



샤프의 먼지 센서는 6종류 있다 같고, 제일 입수하기 쉬운 것 같은 것이 GP2Y1010AU0F라고 하는 아날로그 출력의 유니트입니다. 그러나 나는 Raspberry Pi에서 사용하고 싶었기 때문에 디지털 출력이 더 편리합니다 1

그래서 샤프의 센서 중에서 디지털 출력의 것을 찾았습니다. 조건에 맞는 센서 유닛은 아래의 3가지입니다.
  • GP2Y1023AU0F
  • GP2Y1026AU0F
  • GP2Y1030AU0F

  • 솔직히 어느 쪽이라도 좋았습니다만, 찾은 중에서 가장 싼 것 같은 GP2Y1026AU0F를 선택했습니다. AliExpress에서 2개 12달러 정도였습니다.

    외모



    센서의 크기는 46mm x 36mm, 높이 18mm 정도입니다. 아래 사진은 Raspberry Pi Zero와 나란히 찍은 것입니다.



    Raspberry Pi 준비



    이번 이용하는 GP2Y1026AU0F는 UART 접속이 됩니다.

    Raspberry Pi에서는 8번 핀과 10번 핀이 UART에 대응합니다. 그러나 이러한 핀은 표준 상태에서 직렬 콘솔 연결에 사용되므로 이를 해제하여 UART를 활성화해야 합니다.

    구체적으로는 아래의 2 파일을 편집합니다.

    /boot/cmdline.txt
    # 下記のように、「console=serial0,115200」を削除
    console=tty1 root=PARTUUID=xxxxxxxx-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
    

    /boot/config.txt
    # ファイル末尾に下記を追加
    [all]
    enable_uart=1
    

    이러한 변경을 하고 나서 OS 재부팅을 하면 GPIO로부터 UART 접속한 디바이스의 정보를 취득할 수 있게 됩니다. 경로는 /dev/serial0 등이 되어야 합니다.

    동작 확인



    동작 확인에 사용한 데모 프로그램은 GitHub에서 공개하고 있습니다.
  • hnw/go-gp2y1026au0f: Demo code for Sharp GP2Y1026AU0F dust sensor

  • GP2Y1026AU0F에서는 3개의 선이 나와 있습니다만, 검정을 GND, 적색을 5V 전원에 접속합니다. 흰색은 10번 핀(GPIO 15)에 연결됩니다. 통전시키자마자 측정이 시작됩니다. 카탈로그 사양에서는 70ms마다 정보를 얻을 수있는 것 같습니다.

    동작 결과



    단순히 통전했을 뿐의 상태에서는 센서는 무반응으로, 먼지 0의 표시가 되어 있었습니다.

    먼지 센서 바로 위에 티슈 페이퍼를 비비거나 꺾어 보면 다음과 같이 센서가 반응했습니다.
    (略)
    VoutH=0, VoutL=0, VrefH=0, VrefL=11, Vout=0mV, dustDensity=0ug/m3
    VoutH=0, VoutL=0, VrefH=0, VrefL=11, Vout=0mV, dustDensity=0ug/m3
    VoutH=0, VoutL=0, VrefH=0, VrefL=11, Vout=0mV, dustDensity=0ug/m3
    VoutH=0, VoutL=158, VrefH=0, VrefL=11, Vout=771.484375mV, dustDensity=220.42410714285714ug/m3
    VoutH=0, VoutL=158, VrefH=0, VrefL=11, Vout=771.484375mV, dustDensity=220.42410714285714ug/m3
    VoutH=0, VoutL=158, VrefH=0, VrefL=11, Vout=771.484375mV, dustDensity=220.42410714285714ug/m3
    (略)
    

    먼지를 감지하는 기능 자체는 예상대로 움직이는 것 같습니다.

    (당연과 같은 생각은 합니다만) 방의 먼지의 증감을 측정하는 것과 같은 용도에는 에어 플로우의 확보가 필수인 것 같습니다. 팬도 설치할까요...

    참고 URL


  • 먼지 센서 유닛|제품 라인업|전자 디바이스/디스플레이:샤프
  • GP2Y1026AU0F SPECIFICATION.pdf
  • Application Guide for Sharp GP2Y1026AU0F Dust Sensor · sharpsensoruser/sharp-sensor-demos Wiki



  • Raspberry Pi에는 아날로그 입력 핀이 없으므로 별도 AD 컨버터나 Arduino 등을 준비할 필요가 있어 귀찮습니다.

    좋은 웹페이지 즐겨찾기