Python
RaspberryPi
HC-SR04
ZEALDay 23

Raspberry piで超音波距離センサーの値を感知し、リレーモジュールをオン・オフさせる

はじめに

第4回 秋葉原IoTツアーズ というイベントに参加した時に
忘れ物防止装置というものを作成しました

超音波距離センサーで物との距離を測定し、
・物があれば、パトランプを回す
・物がなければ、何もしない
というものです

その時のメモを残したかったのですが、
各メンバーが物を持って帰ってしまったので
今自分のもとにある素材だけで出来るところまで再現し残しておきます

前提条件

RASPBERRY PI 2 MODEL B
Python3

実装

配線

IMG_2587.JPG

IMG_2586.JPG

IMG_2585.JPG

ソースコード

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from datetime import datetime
import time
import RPi.GPIO as GPIO

def read_sensor():

    GPIO.setwarnings(False)

    GPIO.setmode(GPIO.BOARD)
    PIN = 16
    TRIG = 11
    ECHO = 13

    GPIO.setup(TRIG,GPIO.OUT)
    GPIO.setup(ECHO,GPIO.IN)
    GPIO.setup(PIN,GPIO.OUT)
    GPIO.output(TRIG, GPIO.LOW)
    time.sleep(0.3)

    GPIO.output(TRIG, True)
    time.sleep(0.00001)
    GPIO.output(TRIG, False)

    while GPIO.input(ECHO) == 0:
      signaloff = time.time()

    while GPIO.input(ECHO) == 1:
      signalon = time.time()

    timepassed = signalon - signaloff
    distance = timepassed * 17000

    # 10以内に物がある場合
    # 10以内に物がない場合
    if distance < 5 :
        GPIO.output(PIN,True)
        time.sleep(5.0)
    else:
        GPIO.output(PIN,False)
        time.sleep(5.0)

    GPIO.cleanup()


if __name__ == "__main__":
    read_sensor()

参考

超音波距離センサ(HC-SR04)を使う
第4回 秋葉原IoTツアーズ 中に使った一部のコード