Writing Program in Python
> vi sample.py
sample.py
# External module imports import RPi.GPIO as GPIO import time # Pin Definitons: PIN_TRUNK_SENSOR = 27 PIN_DOOR_SENSOR = 6 PIN_DOOR_1 = 12 PIN_DOOR_2 = 25 PIN_TRUNK_1 = 22 PIN_TRUNK_2 = 13 # Pin Setup: GPIO.setmode(GPIO.BCM) GPIO.setup(PIN_TRUNK_SENSOR, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) GPIO.setup(PIN_DOOR_SENSOR, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) GPIO.setup(PIN_DOOR_1, GPIO.OUT) GPIO.setup(PIN_DOOR_2, GPIO.OUT) GPIO.setup(PIN_TRUNK_1, GPIO.OUT) GPIO.setup(PIN_TRUNK_2, GPIO.OUT) # Initial state GPIO.output(PIN_DOOR_1, GPIO.LOW) GPIO.output(PIN_DOOR_2, GPIO.LOW) GPIO.output(PIN_TRUNK_1, GPIO.LOW) GPIO.output(PIN_TRUNK_2, GPIO.LOW) doorSensorVal=False trunkSensorVal=False newDoorSensorVal=False newTrunkSensorVal=False print("Here we go! Press CTRL+C to exit") try: while 1: #read DOOR sensors newDoorSensorVal=GPIO.input(PIN_DOOR_SENSOR) if (newDoorSensorVal != doorSensorVal): doorSensorVal=newDoorSensorVal if(doorSensorVal==True): #lock print(">DOOR SENSOR = LOW (LOCK)") GPIO.output(PIN_DOOR_1, GPIO.HIGH) GPIO.output(PIN_DOOR_2, GPIO.LOW) time.sleep(0.075) GPIO.output(PIN_DOOR_1, GPIO.LOW) GPIO.output(PIN_DOOR_2, GPIO.LOW) else: print(">DOOR SENSOR = HIGH (UNLOCK)") GPIO.output(PIN_DOOR_1, GPIO.LOW) GPIO.output(PIN_DOOR_2, GPIO.HIGH) time.sleep(0.075) GPIO.output(PIN_DOOR_1, GPIO.LOW) GPIO.output(PIN_DOOR_2, GPIO.LOW) #read TRUNK sensors newTrunkSensorVal=GPIO.input(PIN_TRUNK_SENSOR) if (newTrunkSensorVal != trunkSensorVal): trunkSensorVal=newTrunkSensorVal if(trunkSensorVal==True): #lock print(">TRUNK SENSOR = LOW (LOCK)") GPIO.output(PIN_TRUNK_1, GPIO.HIGH) GPIO.output(PIN_TRUNK_2, GPIO.LOW) time.sleep(0.075) GPIO.output(PIN_TRUNK_1, GPIO.LOW) GPIO.output(PIN_TRUNK_2, GPIO.LOW) else: print(">DOOR SENSOR = HIGH (UNLOCK)") GPIO.output(PIN_TRUNK_1, GPIO.LOW) GPIO.output(PIN_TRUNK_2, GPIO.HIGH) time.sleep(0.075) GPIO.output(PIN_TRUNK_1, GPIO.LOW) GPIO.output(PIN_TRUNK_2, GPIO.LOW) except KeyboardInterrupt: # If CTRL+C is pressed, exit cleanly: GPIO.cleanup() # cleanup all GPIO
Run the program
> sudo python sample.py
References
Reference | URL |
---|---|
raspberrypi.org | https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/README.md |
Sparkfun Tutorial | https://learn.sparkfun.com/tutorials/raspberry-gpio |
Interactive Pinout Diagram | https://pinout.xyz/ |