Модуль управляющего реле с модулем ультразвукового ранжирования на Raspberry Pi - PullRequest
0 голосов
/ 19 января 2019

Я пытаюсь использовать Raspberry Pi Model B + для создания программы, которая использует модуль ультразвукового измерения для управления модулем реле. Я буду использовать эту вещь, чтобы создать, когда конвейер перестает двигаться.

Моя программа будет опираться на модуль ультразвукового определения дальности для непрерывного измерения расстояния. Поскольку на конвейерной ленте находятся объекты, расстояние будет непрерывно изменяться при прохождении объектов мимо модуля ультразвукового измерения. Таким образом, если конвейерная лента перестает двигаться, расстояние, измеренное модулем ультразвукового измерения, останется неизменным. Когда это произойдет в течение 5 секунд, моя программа отключит релейный модуль.

Мой код сейчас не работает. В чем проблема? Вот что у меня так далеко. (Также обратите внимание, что я использую плату расширения GPIO для модуля ультразвукового позиционирования и модуля реле.)

#!/usr/bin/env python

import RPi.GPIO as GPIO
import time

TRIG = 11
ECHO = 12
RelayPin = 11    # pin11 

def setup():

GPIO.setmode(GPIO.BOARD)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)

GPIO.setup(RelayPin, GPIO.OUT)
GPIO.output(RelayPin, GPIO.HIGH)  

def distance():

    GPIO.output(TRIG, 0) 
time.sleep(0.000002)

GPIO.output(TRIG, 1)
time.sleep(0.00001)
GPIO.output(TRIG, 0)


while GPIO.input(ECHO) == 0:
    a = 0
time1 = time.time()
while GPIO.input(ECHO) == 1:
    a = 1
time2 = time.time()

during = time2 - time1
return during * 340 / 2 * 100

def loop():

while True:
    dis = distance()

    print dis, 'cm'
    print ''
    time.sleep(5)
    dis12 = distance() 
    if dis = dis2 
        GPIO.output(RelayPin, GPIO.LOW);    

def destroy():

GPIO.output(RelayPin, GPIO.HIGH)
GPIO.cleanup()                     # Release resource

if __name__ == '__main__':     # Program start from here
setup()
try:
    loop()
    except KeyboardInterrupt:  # When 'Ctrl+C' is pressed, the child program destroy() will be  executed.
    destroy()
...