Question: The would like to modify the raspberry python code to add the following ultra sonic range distance within such that the buzzer buzzes each time
The would like to modify the raspberry python code to add the following ultra sonic range distance within such that the buzzer buzzes each time those distance conditions are met , also include the buzzer pitch high and low with based on distance and humidity
ultra sonic range distance Buzzer values
>20 cm 0
<20 cm 15
<15cm 25
<10 cm 50
#importing the necessary libraries
import math
from time import *
from grovepi import *
#define a global variable to store teh digital port (D3)
#*************************************************
#Connet the temperature Sensor(DHT)
# to a digital port(in this example)
#we will use (D3)
#*************************************************
temp_sensor3 = 3 #connect DHT11 to D3
sound_buzzer5= 5 #connect the Sound Buzzer to D5
ultrasonic_ranger6=6 #connect the ultra sonic ranger on 6
myLED4= 4 # connect the LED to D4
prev_temp = 0
#create a function to read temperature and humidity sensor data
#*************************************************
#function: read_temp_sensor()
#this function will capture sensor
#data from DHT11 via GrovePi
#**************************************************
def read_temp_sensor():
try:
#create a vector of two elements to store
#temperature and humidity values
#->grovepi.dht is a method that returns 2,
# values(first in temperature where as,
# the second is humidity)
#arg1: defines the port number
#arg2: type of DHT sensor(0 for this kit)
[temp,hum] = dht(temp_sensor3,0)
#ensure that the temperature and humidity values are not empty or null
if ((math.isnan(temp) == False) and (math.isnan(hum) == False) and (hum >= 0)):
temperature = temp #copy temp value into variable temperature
humidity =hum #copy hum value into variable humidity
print("Temperature = %.2f Celcius\tHumidity = %.2f% %" % (temperature, humidity))
return temperature
except KeyboardInterrupt:
print("exiting...")
except IOError as IOe:
print("An error has occured. %" %IOe)
except Exception as e:
print("some error")
def check_temperature(prev_temp, curr_temp):
if prev_temp != curr_temp:
digitalWrite(sound_buzzer5, 1)
digitalWrite(myLED4, 1)
sleep(1)
digitalWrite(sound_buzzer5, 0)
digitalWrite(myLED4, 0)
return curr_temp
return prev_temp
def check_distance(ultrasonic_ranger6):
try:
distance = ultrasonicRead(ultrasonic_ranger6)
if distance <= 10: #adjust this distance as needed
digitalWrite(sound_buzzer5, 1)
digitalWrite(myLED4, 1)
sleep(1)
digitalWrite(sound_buzzer5, 0)
digitalWrite(myLED4, 0)
except KeyboardInterrupt:
print("exiting...")
except IOError as IOe:
print("An error has occ
except IOError as IOe:
print("An error has occured. %" %IOe)
except Exception as e:
print("some error")
#function to turn on the buzzer
def buzzer_on():
digitalWrite(sound_buzzer5, 1)
return
#function to turn off the buzzer
def buzzer_off():
digitalWrite(sound_buzzer5, 0)
return
#function to turn on the LED
def LED_on():
digitalWrite(myLED4, 1)
return
#function to turn off the LED
def LED_off():
digitalWrite(myLED4, 0)
return
#read distance from ultrasonic ranger
def read_ultrasonic_ranger():
try:
#read the distance from the ultrasonic ranger
distance = ultrasonicRead(ultrasonic_ranger6)
return distance
except:
print("Error reading ultrasonic ranger")
return
#main program
while (1):
#read temperature from the temperature sensor
[temp, hum] = dht(temp_sensor3,0)
#check if the temperature has changed
if ((math.isnan(temp) == False) and (math.isnan(hum) == False) and (hum >= 0)):
temperature = temp
humidity = hum
print("Temperature = %.2f Celcius\tHumidity = %.2f% %" % (temperature, humidity))
#check if the temperature has changed
if temperature > 30:
#turn on the buzzer
buzzer_on()
LED_on()
#wait for 1 second
time.sleep(1)
#turn off the buzzer
buzzer_off()
LED_off()
#read distance from the ultrasonic ranger
distance = read_ultrasonic_ranger()
#check if the distance has changed
if distance < 10:
#turn on the buzzer
buzzer_on()
LED_on()
#wait for 1 second
time.sleep(1)
#turn off the buzzer
buzzer_off()
LED_off()
#wait for 1 second before next iteration
time.sleep(1)
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
