RaspberryPiを使ったセンサシステムを作る

こんにちは!春に新しくファブテラス岩手に入った八幡です.

私は,高校の頃からRaspberryPiを使ったシステム開発などをしていました.そのため,今回ファブテラス岩手で使用する入店センサーを作成しようと思いました.

今回,電子工作についても興味を持っていただくためにLEDやセンサの制御方法も学べるような内容にしました.電子工作やRaspberryPiに興味を持つきっかけや,参考になれば嬉しいです!

作りたいもの

私は,RaspberryPiという超小型のコンピュータと赤外線センサを使用して人を検知すると音が鳴るセンサシステムを作っていきます.

使用する機材

今回はRaspberryPi3とRen He HC-SR501人体赤外線感応モジュールを主に使用してシステムを作成していきます.その他RaspberryPi操作用のディスプレイ・キーボード,線材,USBスピーカーなどを使用していきます.下に使用した機材と完成形を表示しています.

システムの構築 (ハードウェア)

まず,センサシステムの本体を作成していきます.センサ・LEDなどを以下の回路図をもとに作成していきます.回路の作製にはブレッドボードなどを使用すると便利です.RaspberryPiのGPIOピンに下記の通り配線をしていきます.GND,5Vは任意の場所で大丈夫です.

システムの構築(ソフトウェア)

今回は,Pythonというプログラミング言語を使用してプログラムを作成していきます.RaspberryPiに「anyName.py」のような名前のファイルを作成し,その中に以下のようなプログラムを書き込んでいきます.

#! /usr/bin/env puthon3
#-*- cording: utf-8 -*-

import RPi.GPIO as GPIO
import time
import pygame.mixer

#GPIOピンの設定情報をリセットする警告を無視(必要に応じて消してください)
GPIO.setwarnings(False)

GPIO.setmode(GPIO.BCM)
GPIO.setup(9, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(21, GPIO.OUT)
a = 0


while True:

#センサの出力状況を表示(19行以降のプログラムと排他的に使用することでセンサの反応を確認できます)
#       print( GPIO.input(9) )
#       time.sleep(0.5)

     if ( GPIO.input(9) == 1 ):
         
         #検知回数をカウント
         a += 1
         
         GPIO.output(21, GPIO.HIGH)
         time.sleep(0.5)
         GPIO.output(21, GPIO.LOW)
         time.sleep(0.5)
         
          # mixerモジュールの初期化
         pygame.mixer.init()
          # 音楽ファイルの読み込み(同じフォルダ内にmp3形式の音源を用意し,” ”内に名前を書き込む)
         pygame.mixer.music.load("famima.mp3")
          # 音楽再生、および再生回数の設定(-1はループ再生)
         pygame.mixer.music.play(1)
      #音楽の再生時間に合わせて( )内の数値を変更する
         time.sleep(6)
          # 再生の終了
         pygame.mixer.music.stop()

         #検知回数を表示(ディスプレイにつなぐことで検知回数を表示できます)
         print(a)

完成形

完成後のシステムが動作している様子です.

どうでしたでしょうか?電子工作やRaspberryPi,プログラムの入門などとして役に立てたのであれば幸いです.

今回作製したシステムにLINEnotifyなどをAPIを組み込むことによって人を検知した事をLINEで通知することなども可能となるので随時更新していきたいと思います!