Facebook
From del ray 4, 8 Months ago, written in Plain Text.
This paste is a reply to Re: Re: measure distance from del ray 3 - go back
Embed
Viewing differences between Re: Re: measure distance and Re: Re: Re: measure distance

import RPi.GPIO as GPIO
import time
import pygame

# ... (rest # Configure GPIO pins for sensors
ENTER_TRIG_PIN = 23
ENTER_ECHO_PIN = 24
EXIT_TRIG_PIN = 5
EXIT_ECHO_PIN = 6

# Configure GPIO pin for relay (LED strip)
RELAY_PIN = 17

# Initialize GPIO settings
GPIO.setmode(GPIO.BCM)
GPIO.setup(ENTER_TRIG_PIN, GPIO.OUT)
GPIO.setup(ENTER_ECHO_PIN, GPIO.IN)
GPIO.setup(EXIT_TRIG_PIN, GPIO.OUT)
GPIO.setup(EXIT_ECHO_PIN, GPIO.IN)
GPIO.setup(RELAY_PIN, GPIO.OUT)

# Initialize pygame for audio playback
pygame.init()
pygame.mixer.init()

# Set up audio file
audio_file = "music.mp3"  # Replace with your audio file

# Function to play audio
def play_audio():
    pygame.mixer.music.load(audio_file)
    pygame.mixer.music.play()

# Function to stop audio
def stop_audio():
    pygame.mixer.music.stop()

# Function to control LED strip
def control_led_strip(state):
    GPIO.output(RELAY_PIN, state)

def measure_distance(trig_pin, echo_pin, num_readings=5):
    distances = []
 
    for _ in range(num_readings):
        GPIO.output(trig_pin, True)
        time.sleep(0.00001)
        GPIO.output(trig_pin, False)
 
        pulse_start = time.time()
        pulse_end = time.time()
 
        while GPIO.input(echo_pin) == 0:
            pulse_start = time.time()
 
        while GPIO.input(echo_pin) == 1:
            pulse_end = time.time()
 
        pulse_duration = pulse_end - pulse_start
        distance = pulse_duration * 17150  # Speed 
of the code remains the same)

sound = 34300 cm/s
        distances.append(distance)
 
    avg_distance = sum(distances) / num_readings
    return avg_distance
 
try:
    people_inside = 0  # Counter for people inside the room
    entry_cooldown = False  # Flag to prevent rapid multiple entries
    exit_cooldown = False  # Flag to prevent rapid multiple exits

exits
 
    while True:
        enter_distance = measure_distance(ENTER_TRIG_PIN, ENTER_ECHO_PIN, num_readings=5)
        print("measuring enter distance", enter_distance)
        
exit_distance = measure_distance(EXIT_TRIG_PIN, EXIT_ECHO_PIN, num_readings=5)

num_readings=5)
        print("measuring exit distance", exit_distance)
        
        # Detecting if someone is within 30 cm range for entry
        if enter_distance < 30 and not entry_cooldown:
            people_inside += 1
            entry_cooldown = True
            time.sleep(2)  # Entry cooldown period, adjust as needed

needed
 
        # Detecting if someone is within 30 cm range for exit
        if exit_distance < 30 and people_inside > 0 and not exit_cooldown:
            people_inside -= 1
            exit_cooldown = True
            time.sleep(2)  # Exit cooldown period, adjust as needed

needed
        
        print(people_inside)
 
        if people_inside > 0:
            play_audio()
            
print("people present")
#             play_audio()
#             
control_led_strip(GPIO.HIGH)
        else:
            stop_audio()
            
print("no one present")
#             stop_audio()
#             
control_led_strip(GPIO.LOW)

LOW)
 
        if not (enter_distance < 30):
            entry_cooldown = False

False
 
        if not (exit_distance < 30):
            exit_cooldown = False

False
 
except KeyboardInterrupt:
    GPIO.cleanup()
    pygame.mixer.quit()

Replies to Re: Re: Re: measure distance rss

Title Name Language When
Re: Re: Re: Re: measure distance del ray 5 text 8 Months ago.