Question: I have the following code, in python using raspberry pi and grove pi, what i could like is to be able to move an object

I have the following code, in python using raspberry pi and grove pi, what i could like is to be able to move an object closer or back, when i move an object this triggers a change in temperature and humidity thus activating the buzzer and light, i would like the inensity to change each time distance is reached. The code is for a single distance. I would like it continous with the following gudelines below. Also please include the libraries as i am new to this and wouldn't know where each library came from.

Also could my code be made shorter with functions instead of having everything all over the place. thanks

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

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!