Advertisement
v4sh25

Coin slot.py

Jan 22nd, 2020
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.16 KB | None | 0 0
  1. #!/usr/bin/python
  2.  
  3. print ("Awaiting Coin")
  4. import pymysql.cursors
  5. import os
  6. import string
  7. from random import *
  8. import time
  9. import Adafruit_CharLCD as LCD
  10. import  RPi.GPIO as GPIO
  11. GPIO.setmode(GPIO.BCM)
  12. GPIO.setup(26, GPIO.IN,pull_up_down=GPIO.PUD_UP)
  13. GPIO.setup(2, GPIO.IN,pull_up_down=GPIO.PUD_UP)
  14. lcd_rs        = 7
  15. lcd_en        = 8
  16. lcd_d4        = 25
  17. lcd_d5        = 24
  18. lcd_d6        = 23
  19. lcd_d7        = 18
  20. lcd_backlight = 4
  21. lcd_columns = 16
  22. lcd_rows    = 2
  23.  
  24.  
  25. lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7,lcd_columns, lcd_rows, lcd_backlight)
  26. lcd.message("AWAITING COIN")
  27.  
  28. try:
  29.     while True:
  30.         inputValue = GPIO.input(2)
  31.         if (inputValue == False):
  32.             sqlconn = pymysql.connect(user='radius',
  33.                     password='radpass',
  34.                     host='localhost',
  35.                     database='radius',
  36.                     charset='utf8mb4',
  37.                     cursorclass=pymysql.cursors.DictCursor)
  38.            
  39.             min_char = 5
  40.             max_char = 5
  41.             allchar = string.ascii_uppercase + string.digits
  42.             password = "".join(choice(allchar) for x in range(randint(min_char, max_char)))
  43.             print ("Your Code is:\n", password)
  44.             break
  45.            
  46. finally:
  47.     try:               
  48.         with sqlconn.cursor() as cursor:
  49.                 sql = ("INSERT INTO `radcheck` (`username`,`attribute`,`op`,`value`) VALUES (%s,'Auth-Type',':=','Accept')",(password))
  50.                 cursor.execute(*sql)
  51.                 sql = ("INSERT INTO `radreply` (`username`,`attribute`,`op`,`value`) VALUES (%s,'Session-Timeout',':=','3600')",(password))
  52.                 cursor.execute(*sql)
  53.                 sqlconn.commit()    
  54.     finally:
  55.          
  56.         print("Connection Established")
  57.         lcd.clear()
  58. lcd.message("Your Code:\n" + str(password))
  59. ############################################################################################################
  60. try:
  61.     while True:
  62.         with sqlconn.cursor() as cursor:
  63.              sql = ("SELECT * FROM `radacct` WHERE username = '%s'" % (password))
  64.              cursor.execute(sql)
  65.              result = cursor.execute(sql)
  66.              sqlconn.commit()
  67.              #print(result)
  68.              time.sleep(1)
  69.              actionRevoke = GPIO.input(26)
  70.         if(result > 0 or actionRevoke == False):
  71.                      with sqlconn.cursor() as cursor:
  72.                         sql = ("DELETE FROM `radcheck` WHERE username = '%s'" % (password))
  73.                         cursor.execute(sql)
  74.                         sqlconn.commit()
  75.                         print("Successfully Exectuted Everyting")
  76.                         os.execv('/home/pi/coinSlot.py', [''])
  77.                         break
  78.                    
  79.         else:
  80.                     with sqlconn.cursor() as cursor:
  81.                         sql = ("SELECT * FROM `radacct` WHERE username = '%s'" % (password))
  82.                         cursor.execute(sql)
  83.                         result = cursor.execute(sql)
  84.                         sqlconn.commit()
  85.                         #print(result)            
  86. finally:
  87.     GPIO.cleanup()
  88.     sqlconn.close()
  89.     while True:
  90.        execfile("/home/pi/coinSlot.py")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement