Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- from gpiozero import LED, Buzzer, Button, OutputDevice
- import argparse
- import signal
- import sys
- import time
- import logging
- from rpi_rf import RFDevice
- esp32_Rpi_DoorLock = Button(21)
- esp32_Rpi_Brake = Button(16)
- Rpi_esp32_GPS = LED(17)
- buzzer = Buzzer(26)
- brake = LED(18)
- door = LED(22)
- rfdevice = None
- counter=0
- # pylint: disable=unused-argument
- def exithandler(signal, frame):
- rfdevice.cleanup()
- sys.exit(0)
- def esp32_Rpi_DoorLock_Pressed():
- door.off()
- buzzer.beep(0.1, 0.1, 1)
- def esp32_Rpi_DoorLock_Released():
- door.on()
- buzzer.beep(0.3, 0.3, 3)
- def esp32_Rpi_Brake_Pressed():
- brake.on()
- buzzer.beep(0.1, 0.1, 1)
- def esp32_Rpi_Brake_Released():
- brake.off()
- buzzer.beep(0.1, 0.1, 1)
- logging.basicConfig(level=logging.INFO, datefmt='%Y-%m-%d %H:%M:%S',
- format='%(asctime)-15s - [%(levelname)s] %(module)s: %(message)s', )
- parser = argparse.ArgumentParser(description='Receives a decimal code via a 433/315MHz GPIO device')
- parser.add_argument('-g', dest='gpio', type=int, default=27,
- help="GPIO pin (Default: 27)")
- args = parser.parse_args()
- signal.signal(signal.SIGINT, exithandler)
- rfdevice = RFDevice(args.gpio)
- rfdevice.enable_rx()
- timestamp = None
- logging.info("Listening for codes on GPIO " + str(args.gpio))
- esp32_Rpi_DoorLock.when_pressed = esp32_Rpi_DoorLock_Pressed
- esp32_Rpi_DoorLock.when_released = esp32_Rpi_DoorLock_Released
- esp32_Rpi_Brake.when_pressed = esp32_Rpi_Brake_Pressed
- esp32_Rpi_Brake.when_released = esp32_Rpi_Brake_Released
- while True:
- if rfdevice.rx_code_timestamp != timestamp:
- timestamp = rfdevice.rx_code_timestamp
- logging.info(str(rfdevice.rx_code) +
- " [pulselength " + str(rfdevice.rx_pulselength) +
- ", protocol " + str(rfdevice.rx_proto) + "]")
- if str(rfdevice.rx_code) == "8571080":
- print("Received")
- brake.off()
- Rpi_esp32_GPS.off()
- counter=0
- else:
- counter +=1
- print(counter)
- time.sleep(1)
- if counter >10:
- buzzer.beep(0.5, 0.5, 1)
- print("BUZZER ALERT!!!!!!")
- brake.on()
- door.off()
- Rpi_esp32_GPS.on()
- time.sleep(0.01)
- rfdevice.cleanup()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement