Advertisement
safwan092

Untitled

Oct 22nd, 2023
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. #!/usr/bin/env python3
  2. from gpiozero import LED, Buzzer, Button, OutputDevice
  3. import argparse
  4. import signal
  5. import sys
  6. import time
  7. import logging
  8.  
  9. from rpi_rf import RFDevice
  10.  
  11. esp32_Rpi_DoorLock = Button(21)
  12. esp32_Rpi_Brake = Button(16)
  13. Rpi_esp32_GPS = LED(17)
  14. buzzer = Buzzer(26)
  15. brake = LED(18)
  16. door = LED(22)
  17.  
  18.  
  19.  
  20.  
  21. rfdevice = None
  22. counter=0
  23. # pylint: disable=unused-argument
  24. def exithandler(signal, frame):
  25. rfdevice.cleanup()
  26. sys.exit(0)
  27.  
  28.  
  29. def esp32_Rpi_DoorLock_Pressed():
  30. door.off()
  31. buzzer.beep(0.1, 0.1, 1)
  32. def esp32_Rpi_DoorLock_Released():
  33. door.on()
  34. buzzer.beep(0.3, 0.3, 3)
  35. def esp32_Rpi_Brake_Pressed():
  36. brake.on()
  37. buzzer.beep(0.1, 0.1, 1)
  38. def esp32_Rpi_Brake_Released():
  39. brake.off()
  40. buzzer.beep(0.1, 0.1, 1)
  41.  
  42. logging.basicConfig(level=logging.INFO, datefmt='%Y-%m-%d %H:%M:%S',
  43. format='%(asctime)-15s - [%(levelname)s] %(module)s: %(message)s', )
  44.  
  45. parser = argparse.ArgumentParser(description='Receives a decimal code via a 433/315MHz GPIO device')
  46. parser.add_argument('-g', dest='gpio', type=int, default=27,
  47. help="GPIO pin (Default: 27)")
  48. args = parser.parse_args()
  49.  
  50. signal.signal(signal.SIGINT, exithandler)
  51. rfdevice = RFDevice(args.gpio)
  52. rfdevice.enable_rx()
  53. timestamp = None
  54. logging.info("Listening for codes on GPIO " + str(args.gpio))
  55.  
  56.  
  57. esp32_Rpi_DoorLock.when_pressed = esp32_Rpi_DoorLock_Pressed
  58. esp32_Rpi_DoorLock.when_released = esp32_Rpi_DoorLock_Released
  59. esp32_Rpi_Brake.when_pressed = esp32_Rpi_Brake_Pressed
  60. esp32_Rpi_Brake.when_released = esp32_Rpi_Brake_Released
  61.  
  62. while True:
  63. if rfdevice.rx_code_timestamp != timestamp:
  64. timestamp = rfdevice.rx_code_timestamp
  65. logging.info(str(rfdevice.rx_code) +
  66. " [pulselength " + str(rfdevice.rx_pulselength) +
  67. ", protocol " + str(rfdevice.rx_proto) + "]")
  68. if str(rfdevice.rx_code) == "8571080":
  69. print("Received")
  70. brake.off()
  71. Rpi_esp32_GPS.off()
  72. counter=0
  73. else:
  74. counter +=1
  75. print(counter)
  76. time.sleep(1)
  77. if counter >10:
  78. buzzer.beep(0.5, 0.5, 1)
  79. print("BUZZER ALERT!!!!!!")
  80. brake.on()
  81. door.off()
  82. Rpi_esp32_GPS.on()
  83. time.sleep(0.01)
  84. rfdevice.cleanup()
  85.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement