User Tools

Site Tools


user:bmurphy7:hpc0:alertor

Alertor

The Circuit:

The Code:

  1 #!/usr/bin/env python3                                                                                      
  2 ########################################################################
  3 # Filename    : Alertor.py
  4 # Description : Make Alertor with buzzer and button
  5 # Author      : www.freenove.com
  6 # modification: 2019/12/27
  7 ########################################################################
  8 import RPi.GPIO as GPIO
  9 import time
 10 import math
 11          
 12 buzzerPin = 11    # define the buzzerPin
 13 buttonPin = 12    # define the buttonPin
 14          
 15 #Initial setup of the board and buzzer
 16 def setup():
 17     global p
 18     GPIO.setmode(GPIO.BOARD)                                 # Use PHYSICAL GPIO Numbering
 19     GPIO.setup(buzzerPin, GPIO.OUT)                          # set RGBLED pins to OUTPUT mode
 20     GPIO.setup(buttonPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Set buttonPin to INPUT mode. Set up to HIGH
 21     p = GPIO.PWM(buzzerPin, 1)
 22     p.start(0);
 23          
 24          
 25 #function that will activate the alertor when button is pressed
 26 def loop():
 27     while True:
 28         if GPIO.input(buttonPin)==GPIO.LOW:
 29             alertor()
 30             print ('alertor turned on >>> ')
 31         else :
 32             stopAlertor()
 33             print ('alertor turned off <<<')
 34          
 35 #function that sets the frequency of sound made
 36 def alertor():
 37     p.start(50)
 38     for x in range(0,361):                       # Make frequency of the alertor that of a sine wave 
 39         sinVal = math.sin(x * (math.pi / 180.0)) # calculate the sine value
 40         toneVal = 2000 + sinVal * 500            # Add to the frequency so that humans can hear it
 41         p.ChangeFrequency(toneVal)               # Change to the new Frequency 
 42         time.sleep(0.001)
 43          
 44 #function that stops the alertor
 45 def stopAlertor():
 46     p.stop()
 47          
 48 #function that clears the board
 49 def destroy():
 50     GPIO.output(buzzerPin, GPIO.LOW)             # Turn off buzzer
 51     GPIO.cleanup()                               # Release GPIO resource
 52          
 53 if __name__ == '__main__':
 54     print ('Program is starting...')
 55     setup()
 56     try: 
 57         loop()
 58     except KeyboardInterrupt:  # When program ends clean up
 59         destroy()

This project has the same setup as the doorbell project, with the only change being that instead of an active buzzer we replaced it with a passive buzzer. After replacing the buzzer and activating the code we find that buzzer makes a new sound that changes frequency. This change in frequency is using number along a sine wave, which is then converted into a frequency that we can hear. As for the code I added comments to describe the functions, made a couple of the longer comments more readable, and made the comments align with each other.

user/bmurphy7/hpc0/alertor.txt · Last modified: 2020/05/10 15:29 by 127.0.0.1