CODE FOR Door Locking and Opening System Using GSM
CODE FOR Door Locking and Opening System Using GSM
import serial
import RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BOARD)
GPIO.setup(18,GPIO.OUT)#DC
GPIO.output(18,GPIO.LOW)
GPIO.setup(19,GPIO.OUT)
GPIO.output(19,GPIO.LOW)
# Timing constants
E_PULSE = 0.0005
E_DELAY = 0.0005
def reverse():
GPIO.output(18,GPIO.LOW)
GPIO.output(19,GPIO.HIGH)
def stp():
GPIO.output(18,GPIO.HIGH)
GPIO.output(19,GPIO.HIGH)
port.write(str.encode('AT'+'\r\n'))
rcv = port.read(10)
print (rcv)
sleep(1)
port.write(str.encode('AT+CMGL="ALL"\r\n'))
rcv = port.read(10)
print (rcv)
sleep(1)
def main():
# Main program block
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD) # Use BCM GPIO numbers
GPIO.setup(LCD_E, GPIO.OUT) # E
GPIO.setup(LCD_RS, GPIO.OUT) # RS
GPIO.setup(LCD_D4, GPIO.OUT) # DB4
GPIO.setup(LCD_D5, GPIO.OUT) # DB5
GPIO.setup(LCD_D6, GPIO.OUT) # DB6
GPIO.setup(LCD_D7, GPIO.OUT) # DB7
# Initialise display
lcd_init()
while True:
data = port.readline()
data = data.decode('utf-8').rstrip()
#print(data)
if data == 'OPEN':
lcd_string(' OPEN ',LCD_LINE_1)
lcd_string(' DOOR ',LCD_LINE_2)
sleep(1)
lcd_display(0x01,LCD_CMD)
print('DOOR OPENING')
forward()
sleep(3)
stp()
sleep(3)
print('DOOR CLOSING')
reverse()
sleep(3)
stp()
lcd_string(' DOOR ',LCD_LINE_1)
lcd_string(' CLOSED ',LCD_LINE_2)
sleep(3)
lcd_display(0x01,LCD_CMD)
def lcd_init():
lcd_display(0x28,LCD_CMD) # Selecting 4 - bit mode with two rows
lcd_display(0x0C,LCD_CMD) # Display On,Cursor Off, Blink Off
lcd_display(0x01,LCD_CMD) # Clear display
sleep(E_DELAY)
GPIO.output(LCD_RS, mode) # RS
# High bits
GPIO.output(LCD_D4, False)
GPIO.output(LCD_D5, False)
GPIO.output(LCD_D6, False)
GPIO.output(LCD_D7, False)
if bits&0x10==0x10:
GPIO.output(LCD_D4, True)
if bits&0x20==0x20:
GPIO.output(LCD_D5, True)
if bits&0x40==0x40:
GPIO.output(LCD_D6, True)
if bits&0x80==0x80:
GPIO.output(LCD_D7, True)
# Low bits
GPIO.output(LCD_D4, False)
GPIO.output(LCD_D5, False)
GPIO.output(LCD_D6, False)
GPIO.output(LCD_D7, False)
if bits&0x01==0x01:
GPIO.output(LCD_D4, True)
if bits&0x02==0x02:
GPIO.output(LCD_D5, True)
if bits&0x04==0x04:
GPIO.output(LCD_D6, True)
if bits&0x08==0x08:
GPIO.output(LCD_D7, True)
# Toggle 'Enable' pin
lcd_toggle_enable()
def lcd_toggle_enable():
# Toggle enable
sleep(E_DELAY)
GPIO.output(LCD_E, True)
sleep(E_PULSE)
GPIO.output(LCD_E, False)
sleep(E_DELAY)
def lcd_string(message,line):
# Send string to display
lcd_display(line, LCD_CMD)
for i in range(LCD_WIDTH):
lcd_display(ord(message[i]),LCD_CHR)
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
pass
finally:
lcd_display(0x01, LCD_CMD)
GPIO.cleanup()