def deposit_item(RFID_user, Id_User): global check_status # Open database connection db = pymysql.connect("localhost", "root", "", "locker") # prepare a cursor object using cursor() method cursor = db.cursor() sql_select_locker = "select DLK_Number_Locker from lockers where DLK_status_Locker = 3 " cursor.execute(sql_select_locker) select_locker = cursor.fetchall() #print(select_locker) loc_ker = [] for row in select_locker: locker = row[0] # Now print fetched result #print ("locker = %d" %(locker)) loc_ker.append(row[0]) #print(loc_ker) locker = random.choice(loc_ker) print("ตู้ที่ : %d" % locker) ##check_cancel = int(input("ยกเลิกไหม ? (1) หรือ ไม่ยกเลิก (0) >>> : ")) ##if(check_cancel == 0) : locker_open = int(input("เปิดตู้ไหม ? : ")) ## Megnetic door Switch if (locker_open == 1): check_status = 0 ####### ## insert log ประตูเปิด log_status_door.open_door(Id_User, RFID_user, locker) mass_open = log_status_door.open_door(Id_User, RFID_user, locker) mqtt_publish.mqtt_publish(mass_open) #print('%s , %s ' %(topic,mass_open)) #client = mqtt.Client() #client.connect(host) #client.publish(topic,mass_open) ##update locker sql_update_locker = "Update Lockers set DLK_status_Locker = 2 where DLK_Number_Locker = '%d' " % locker ## เหลือเปลี่ยนสถานะ ล็อคเกอร์ try: # Execute the SQL command cursor.execute(sql_update_locker) # Commit your changes in the database db.commit() except: # Rollback in case there is any error db.rollback() print("ตู้เปิด") print("") print("กรุณาฝากสัมภาระ") i = 1 while i < 3: item = int(input("น้ำหนักสัมภาระ :> ")) ## load cell if (item > 0): locker_open = int( input("เปิดตู้ไหม ? : ")) ## Megnetic door Switch print("") if locker_open == 1: print("คุณยังไม่ได้ปิดตู้") print("") print("กรุณาปิดตู้ค่ะ") i = i + 1 else: print("ตู้ปิด") ## insert log ประตูปิด log_status_door.close_door(Id_User, RFID_user, locker) mass = log_status_door.close_door(Id_User, RFID_user, locker) #mqtt_publish.mqtt_publish(mass) # Prepare SQL query to INSERT a record into the database. sql_insert = "INSERT INTO Details(DLK_Id_User , \ DLK_RFID , DLK_Number_Locker, DLK_id_Result) \ VALUES ('%d', '%s', '%d', '%d' )" % \ (Id_User,RFID_user,locker, 1) try: # Execute the SQL command cursor.execute(sql_insert) # Commit your changes in the database db.commit() except: # Rollback in case there is any error db.rollback() # Prepare SQL query to INSERT a record into the database. sql_update = "Update Lockers set DLK_status_Locker = 4 where DLK_Number_Locker = ('%d') " % locker try: # Execute the SQL command cursor.execute(sql_update) # Commit your changes in the database db.commit() except: # Rollback in case there is any error db.rollback() ## insert log ตู้ไม่ว่าง log_status_door.busy_locker(Id_User, RFID_user, locker) mass = log_status_door.busy_locker(Id_User, RFID_user, locker) #mqtt_publish.mqtt_publish(mass) print("คุณได้ฝากสัมภาระเรียบร้อยแล้ว") print("ขอบคุณที่ใช้บริการค่ะ") print("") break check_status = 1 ####### else: print("ไม่ได้ฝากของ") print("") locker_open = int( input("เปิดตู้ไหม ? : ")) ## Megnetic door Switch print("") if locker_open == 1: print("คุณยังไม่ได้ปิดตู้") print("") print("กรุณาปิดตู้ค่ะ") i = i + 1 else: print("ตู้ปิด") ## insert log ประตูปิด log_status_door.close_door(Id_User, RFID_user, locker) mass = log_status_door.close_door(Id_User, RFID_user, locker) #mqtt_publish.mqtt_publish(mass) # Prepare SQL query to INSERT a record into the database. sql_update = "Update Lockers set DLK_status_Locker = 3 where DLK_Number_Locker = ('%d') " % locker try: # Execute the SQL command cursor.execute(sql_update) # Commit your changes in the database db.commit() except: # Rollback in case there is any error db.rollback() ## insert log ตู้ว่าง log_status_door.empty_locker(Id_User, RFID_user, locker) mass = log_status_door.close_door(Id_User, RFID_user, locker) #mqtt_publish.mqtt_publish(mass) check_cancel = int( input("ยกเลิกเพราะ ? (1) หรือ ไม่ฝากแล้ว (0) >>> : ")) if (check_cancel == 0): # Prepare SQL query to INSERT a record into the database. sql_insert = "INSERT INTO Details(DLK_Id_User , \ DLK_RFID,DLK_Number_Locker, DLK_id_Result) \ VALUES ('%d', '%s', '%d', '%d' )" % \ (Id_User,RFID_user, locker, 8 ) try: # Execute the SQL command cursor.execute(sql_insert) # Commit your changes in the database db.commit() except: # Rollback in case there is any error db.rollback() print("คุณไม่ได้ฝากสัมภาระ") print("ขอบคุณที่ใช้บริการค่ะ") print("") break check_status = 1 ####### else: sql_select_condi = "select * from conditions " cursor.execute(sql_select_condi) select_condi = cursor.fetchall() #print(select_locker) for row in select_condi: num_con = row[0] condi = row[1] # Now print fetched result print("%d = %s" % (num_con, condi)) cancel = int(input("ยกเลิกเพราะ ? >>> : ")) # Prepare SQL query to INSERT a record into the database. sql_insert = "INSERT INTO Details(DLK_Id_User , \ DLK_RFI,DLK_Number_Locker, DLK_id_Result, DLK_Id_condi) \ VALUES ('%d', '%s', '%d','%d' , '%d' )" % \ (Id_User , RFID_user , locker, 7 ,cancel ) try: # Execute the SQL command cursor.execute(sql_insert) # Commit your changes in the database db.commit() except: # Rollback in case there is any error db.rollback() print("ขอบคุณที่ใช้บริการค่ะ") print("") break check_status = 1 ####### if i == 3 and item > 0: check_status = 1 ####### print("Report") # print("Report") # print("ไม่ปิดตู้แต่ฝากของอยู่") # # Prepare SQL query to INSERT a record into the database. sql_insert = "INSERT INTO Details(DLK_Id_User , \ DLK_RFID , DLK_Number_Locker, DLK_id_Result) \ VALUES ('%d', '%s', '%d', '%d' )" % \ (Id_User, RFID_user , locker, 5 ) try: # Execute the SQL command cursor.execute(sql_insert) # Commit your changes in the database db.commit() except: # Rollback in case there is any error db.rollback() #report ผ่านทางโทรศัพท์มือถือ,ไลน์, email elif i == 5 and item == 0: check_status = 1 ####### print("ไม่ปิดตู้ไม่ฝากของ") # print("") # Prepare SQL query to INSERT a record into the database. sql_insert = "INSERT INTO Details(DLK_Id_User , \ DLK_RFID , DLK_Number_Locker, DLK_id_Result) \ VALUES ('%d', '%s', '%d', '%d' )" % \ (Id_User, RFID_user , locker, 6 ) try: # Execute the SQL command cursor.execute(sql_insert) # Commit your changes in the database db.commit() except: # Rollback in case there is any error db.rollback() #report ผ่านทางโทรศัพท์มือถือ,ไลน์, email else: print("ตู้ปิด") print("คุณไม่ได้ทำการเปิดตู้") # Prepare SQL query to INSERT a record into the database. sql_insert = "INSERT INTO Details(DLK_Id_User , \ DLK_RFID, DLK_Number_Locker, DLK_id_Result) \ VALUES ('%d', '%s', '%d', '%d' )" % \ (Id_User , RFID_user, locker, 8) try: # Execute the SQL command cursor.execute(sql_insert) # Commit your changes in the database db.commit() except: # Rollback in case there is any error db.rollback() print("ไม่ได้ฝากสัมภาระ") print("ขอบคุณที่ใช้บริการค่ะ") check_status = 1 #######
def open_locker(RFID_user, User): global check_status # Open database connection db = pymysql.connect("localhost", "pi", "1234", "locker") # prepare a cursor object using cursor() method cursor = db.cursor() print("เลือกตู้") select_locker = int(time_admin.select_locker() ) #int(input("เลือกตู้ : ")) ## รับสแกนจาก RFID if (select_locker) == 0: select_locker = 0 else: ##Publish scan select_user = input("ผู้ใช้งานตู้ : ") ## รับสแกนจาก RFID sql_select_detail = "select * from details where DLK_RFID = '%s' and DLK_Number_Locker = '%s' and DLK_Id_Result = 1 " % ( select_user, select_locker) cursor.execute(sql_select_detail) select_detail = cursor.fetchone() ##print(select_detail[3]) if (select_detail): print("ตู้ปลดล็อค") locker_open = time_user.check_time( ) #int(input("เปิดตู้ไหม ? (ปิด 0) , (เปิด 1) : ")) ## Megnetic door Switch if (locker_open == 1): Web = "web|openLocker|" + str(select_locker) + "|admin|" client = mqtt.Client() client.connect(host) client.publish("DLK/10", Web) check_status = 0 ####### ## insert log ประตูเปิด mass_open = log_status_door.open_door(User, RFID_user, select_detail[3]) print('%s , %s ' % (topic, mass_open)) ##update locker ประตูเปิด update_status_locker.update_locker_open(select_detail[3]) while locker_open == 1: ## time.sleep(30) check_item = int(input("น้ำหนักของ : ")) ##load cell check ## ถามว่าปิดตู้ไหม ? locker_open = int( input("เปิดตู้ไหม ? : ")) ## Megnetic door Switch if (check_item > 0): ## มีของ Web = "web|" + str(select_locker) + "|0|" + "admin|" client = mqtt.Client() client.connect(host) client.publish("DLK/10", Web) ## insert log ประตูปิด mass_close = log_status_door.close_door( User, RFID_user, select_detail[3]) print('%s , %s ' % (topic, mass_close)) # update detail by admin mass_conti = log_detail_locker.update_by_admin_start( select_detail[0], select_detail[2]) print('%s , %s ' % (topic, mass_conti)) ## insert log ประตูใช้งาน mass_busy = log_status_door.busy_locker( User, RFID_user, select_detail[3]) print('%s , %s ' % (topic, mass_busy)) ## update status ตู้ไม่ว่าง update_status_locker.update_locker_busy(select_detail[3]) check_status = 1 ####### #publish เสร็จเพื่อเปลี่ยนหน้า else: check_status = 0 ####### Web = "web|" + str(select_locker) + "|0|" + "admin|" client = mqtt.Client() client.connect(host) client.publish("DLK/10", Web) ## ไม่มีของ ## insert log ประตูปิด mass_close = log_status_door.close_door( User, RFID_user, select_detail[3]) print('%s , %s ' % (topic, mass_close)) # update detail by admin mass_end = log_detail_locker.update_by_admin_end( select_detail[0], select_detail[2]) print('%s , %s ' % (topic, mass_end)) ##update locker ว้่าง update_status_locker.update_locker_empty(select_detail[3]) ## insert log ประตูว่างพร้อมใช้งาน mass_empty = log_status_door.empty_locker( User, RFID_user, select_detail[3]) print('%s , %s ' % (topic, mass_empty)) check_status = 1 ####### #publish เสร็จเพื่อเปลี่ยนหน้า else: print("ตู้ไม่เปิด") #publish เสร็จเพื่อเปลี่ยนหน้า Web = "web|" + str(select_locker) + "|0|" + "admin|" client = mqtt.Client() client.connect(host) client.publish("DLK/10", Web) check_status = 1 ####### else: print("เงื่อนไขไม่ตรงกันกรุณาลองอีกครั้ง") Web = "web|" + str(select_locker) + "|15|" + "admin|" client = mqtt.Client() client.connect(host) client.publish("DLK/10", Web) # disconnect from server db.close()
def open_locker_admin(RFID_user, User): global check_status # Open database connection db = pymysql.connect("localhost", "pi", "1234", "locker") # prepare a cursor object using cursor() method cursor = db.cursor() select_locker = int(time_admin.select_locker()) #int(input("เลือกตู้ : ")) ## นำตู้ที่เลือกไป เช็ค ใน details ว่ามีผู้ใช้หรือไหม ? ถ้าไม่มี ก็ไม่ต้องอัพเดทค่า ## ถ้ามีก็เปลี่ยนสถานะตู้ผู้นั้นเมื่อกระทำการใด ๆ sql_select_detail = "select * from details where DLK_Number_Locker = '%s' and DLK_Id_Result = 1 " % select_locker cursor.execute(sql_select_detail) select_detail = cursor.fetchone() #print(select_detail[3]) if (select_detail): #เสียง ตู้ปลดล็อค print("ตู้ปลดล็อค") locker_open = int( time_user.check_time() ) #int(input("เปิดตู้ไหม ? (ปิด 0) , (เปิด 1) : ")) ## Megnetic door Switch if (locker_open == 1): print("ประตูเปิด") Web = "web|openLocker|" + str(select_locker) + "|admin|" client = mqtt.Client() client.connect(host) client.publish("DLK/10", Web) check_status = 0 ####### ## insert log ประตูเปิด mass_open = log_status_door.open_door(User, RFID_user, select_detail[3]) print('%s , %s ' % (topic, mass_open)) ##update locker ประตูเปิด update_status_locker.update_locker_open(select_detail[3]) while locker_open == 1: ## time.sleep(30) check_item = int(input("น้ำหนักของ : ")) ##load cell check ## ถามว่าปิดตู้ไหม ? locker_open = int( input("เปิดตู้ไหม ? : ")) ## Megnetic door Switch if (check_item > 0): ## insert log ประตูปิด Web = "web|" + str(select_locker) + "|0|" + "admin|" print(Web) client = mqtt.Client() client.connect(host) client.publish("DLK/2", Web) mass_close = log_status_door.close_door( User, RFID_user, select_detail[3]) print('%s , %s ' % (topic, mass_close)) # update detail by admin mass_conti = log_detail_locker.update_by_admin_start( select_detail[0], select_detail[2]) print('%s , %s ' % (topic, mass_conti)) ## update status ตู้ไม่ว่าง update_status_locker.update_locker_busy(select_detail[3]) ## insert log ตู้ใช้งาน mass_busy = log_status_door.busy_locker( User, RFID_user, select_detail[3]) print('%s , %s ' % (topic, mass_busy)) check_status = 1 ####### #publish เสร็จเพื่อเปลี่ยนหน้า else: ## ไม่มีของ ## insert log ประตูปิด Web = "web|" + str(select_locker) + "|0|" + "admin|" print(Web) client = mqtt.Client() client.connect(host) client.publish("DLK/2", Web) mass_close = log_status_door.close_door( User, RFID_user, select_detail[3]) print('%s , %s ' % (topic, mass_close)) ##update locker ว้่าง update_status_locker.update_locker_empty(select_detail[3]) ## insert log ประตูพร้อมใช้งาน ## insert log ประตูว่างพร้อมใช้งาน mass_empty = log_status_door.empty_locker( User, RFID_user, select_detail[3]) print('%s , %s ' % (topic, mass_empty)) # update detail by admin log_detail_locker.update_by_admin_end(select_detail[0], select_detail[2]) check_status = 1 ####### #publish เสร็จเพื่อเปลี่ยนหน้า else: Web = "web|" + str(select_locker) + "|0|" + "admin|" client = mqtt.Client("control1") client.on_publish = on_publish client.connect(host, port) ret = client.publish("DLK/2", Web) print(ret) print("ไม่ได้เปิดตู้ค่ะ 555") check_status = 1 ####### #publish เสร็จเพื่อเปลี่ยนหน้า else: print("ตู้ปลดล็อค") locker_open = time_user.check_time( ) #int(input("เปิดตู้ไหม ? (ปิด 0) , (เปิด 1) : ")) ## Megnetic door Switch if (locker_open == 1): print("ประตูเปิด") Web = "web|openLocker|" + str(select_locker) + "|admin|" client = mqtt.Client() client.connect(host) client.publish("DLK/10", Web) check_status = 0 ####### ## insert log ประตูเปิด mass_open = log_status_door.open_door(User, RFID_user, select_locker) print('%s , %s ' % (topic, mass_open)) ##update locker ประตูเปิด update_status_locker.update_locker_open(select_locker) while locker_open == 1: ## time.sleep(30) ## ถามว่าปิดตู้ไหม ? locker_open = int( input("เปิดตู้ไหม ? : ")) ## Megnetic door Switch ## insert log ประตูปิด #publish เสร็จเพื่อเปลี่ยนหน้า Web = "web|" + str(select_locker) + "|0|" + "admin|" print(Web) client = mqtt.Client() client.connect(host) client.publish("DLK/2", Web) mass_close = log_status_door.close_door(User, RFID_user, select_locker) print('%s , %s ' % (topic, mass_close)) ##update locker ว้่าง update_status_locker.update_locker_empty(select_locker) ## insert log ประตูว่างพร้อมใช้งาน mass_empty = log_status_door.empty_locker(User, RFID_user, select_locker) print('%s , %s ' % (topic, mass_empty)) check_status = 1 ####### else: Web = "web|" + str(select_locker) + "|0|" + "admin|" print(Web) client = mqtt.Client() client.connect(host) client.publish("DLK/2", Web) print("ไม่ได้เปิดตู้ค่ะ") check_status = 1 ####### #publish เสร็จเพื่อเปลี่ยนหน้า # disconnect from server db.close()
def locker_main(RFID_user): global check_status # Open database connection db = pymysql.connect("localhost", "pi", "1234", "locker") # prepare a cursor object using cursor() method cursor = db.cursor() #RFID_user = (input("ลงชื่อ : ")) ##scan ควรอยู่ input แรก select_user = "******" % ( RFID_user) cursor.execute(select_user) user = cursor.fetchall() for row in user: Id_User = row[1] Start_Date = row[4] EXP_Date = row[5] if (user): # Prepare SQL query to INSERT a record into the database. sql_check_blacklist = "SELECT * FROM blacklist where DLK_Id_User = '******' " % ( Id_User) # Execute the SQL command cursor.execute(sql_check_blacklist) # Fetch all the rows in a list of lists. results = cursor.fetchone() # Now print fetched result #print (results) #print (name[1]) if (results): #publish ห้ามใช้งาน Web = "web|" + "Don't use|" + "10|" + "user|" client = mqtt.Client() client.connect(host) client.publish("DLK/3", Web) print("ไม่สามารถใช้งานได้ค่ะ กรุณาติดต่อเจ้าหน้าที่") else: print("ยินดีต้อนรับค่ะ") sql_check_item = "select * from details where DLK_RFID = '%s' and (DLK_Id_Result = 1 OR DLK_Id_Result = 5) " % ( RFID_user) cursor.execute(sql_check_item) check_item = cursor.fetchone() if (check_item): #publish User มีของ #######################33 Web = "web|" + str(check_item[3]) + "|6|" + "user|" client = mqtt.Client() client.connect(host) client.publish("DLK/2", Web) print("ตู้ที่ %d" % check_item[3]) print("ฝากเพิ่ม / ถอน") # update detail สแกนบัตรมาเอาของ mass_conti = log_detail_locker.update_detail_start( check_item[0]) print('%s , %s ' % (topic, mass_conti)) locker_open = time_user.check_time() ## fuction time print(locker_open) if (locker_open == 1): check_status = 0 ####### ## insert log ประตูเปิด #log_status_door.open_door(Id_User,RFID_user,check_item[3]) mass_open = log_status_door.open_door( Id_User, RFID_user, check_item[3]) print('%s , %s ' % (topic, mass_open)) #client = mqtt.Client() #client.connect(host) #client.publish(topic,mass_open) ##update locker open update_status_locker.update_locker_open(check_item[3]) print("ตู้เปิด") print("") i = 1 while i < 3: item = int(input("น้ำหนักสัมภาระ :> ")) ## load cell if (item > 0): locker_open = int( input("เปิดตู้ไหม ? : " )) ## Megnetic door Switch # fuction print("") if locker_open == 1: # ไฟล์เสียง # Publish ตู้เปิด Web = "web|" + str( check_item[3]) + "|3|" + "user|" client = mqtt.Client() client.connect(host) client.publish("DLK/3", Web) print("คุณยังไม่ได้ปิดตู้") print("") i = i + 1 else: print("ตู้ปิด") print("คุณได้ฝากสัมภาระเพิ่มเรียบร้อยแล้ว") ## insert log ประตูปิด #log_status_door.close_door(Id_User,RFID_user,check_item[3]) mass_close = log_status_door.close_door( Id_User, RFID_user, check_item[3]) print('%s , %s ' % (topic, mass_close)) # update detail สแกนบัตรมาเอาของฝากเพิ่ม mass_conti = log_detail_locker.update_detail_start( check_item[0]) print('%s , %s ' % (topic, mass_conti)) ##update locker busy update_status_locker.update_locker_busy( check_item[3]) ## insert log ตู้ไม่ว่าง #log_status_door.busy_locker_withd(Id_User,RFID_user,check_item[3]) mass_busy = log_status_door.busy_locker( Id_User, RFID_user, check_item[3]) print('%s , %s ' % (topic, mass_busy)) # Publish ขอบคุณ Web = "web|" + str( check_item[3]) + "|7|" + "user|" client = mqtt.Client() client.connect(host) client.publish("DLK/3", Web) print("ขอบคุณที่ใช้บริการค่ะ") print("") break check_status = 1 ####### else: print("ถอนสัมภาระ") print("") locker_open = int( input("เปิดตู้ไหม ? : " )) ## Megnetic door Switch # fuction print("") if locker_open == 1: # ไฟล์เสียง # Publish ตู้เปิด Web = "web|" + str( check_item[3]) + "|9|" + "user|" client = mqtt.Client() client.connect(host) client.publish("DLK/3", Web) print("คุณยังไม่ได้ปิดตู้") print("") print("กรุณาปิดตู้ด้วยค่ะ") i = i + 1 else: print("คุณได้ถอนฝากสัมภาระเรียบร้อยแล้วคะ") ## insert log ประตูปิด #log_status_door.close_door(Id_User,RFID_user,check_item[3]) mass_close = log_status_door.close_door( Id_User, RFID_user, check_item[3]) print('%s , %s ' % (topic, mass_close)) # update detail เอาของออก mass_end = log_detail_locker.update_detail_end( check_item[0]) print('%s , %s ' % (topic, mass_end)) ##update locker empty update_status_locker.update_locker_empty( check_item[3]) ## insert log ตู้ว่าง #log_status_door.empty_locker(Id_User,RFID_user,check_item[3]) mass_empty = log_status_door.empty_locker( Id_User, RFID_user, check_item[3]) print('%s , %s ' % (topic, mass_empty)) # Publish ขอบคุณ Web = "web|" + str( check_item[3]) + "|8|" + "user|" client = mqtt.Client() client.connect(host) client.publish("DLK/3", Web) print("ขอบคุณที่ใช้บริการค่ะ") break check_status = 1 ####### if (i == 3 and item > 0): print("Report") # print("ไม่ปิดตู้แต่ฝากของอยู่") # Web = "web|" + str(check_item[3]) + "|4|" + "user|" client = mqtt.Client() client.connect(host) client.publish("DLK/2", Web) # # update detail ไม่ปิดตู้แต่ฝากของอยู่ mass_problem5 = log_detail_locker.update_detail_problem5( check_item[0]) print('%s , %s ' % (topic, mass_problem5)) print("คุณไม่ได้ปิดตู้ล็อคเกอร์ค่ะ") check_status = 1 ####### print("") elif (i == 3 and item == 0): print("Report") # print("ไม่ปิดตู้แต่ถอนของแล้ว") # Web = "web|" + str(check_item[3]) + "|11|" + "user|" client = mqtt.Client() client.connect(host) client.publish("DLK/2", Web) # # update detail ไม่ปิดตู้แต่ถอนของแล้ว mass_problem6 = log_detail_locker.update_detail_problem6( check_item[0]) print('%s , %s ' % (topic, mass_problem6)) check_status = 1 ####### else: check_status = 1 ####### print("ตู้ปิด") print("ไม่ได้ฝากสัมภาระเพิ่มค่ะ") # update detail สแกนแต่ไม่เปิดตู้ mass_conti = log_detail_locker.update_detail_start( check_item[0]) print('%s , %s ' % (topic, mass_conti)) #publish ไม่ฝากสัมภาระเพิ่ม Web = "web|" + str(check_item[3]) + "|2|" + "user|" client = mqtt.Client() client.connect(host) client.publish("DLK/3", Web) print("") else: sql_select_locker = "select DLK_Number_Locker from lockers where DLK_status_Locker = 3 " cursor.execute(sql_select_locker) select_locker = cursor.fetchall() print("เริ่มฝาก") if (select_locker): deposit.deposit_item(RFID_user, Id_User) else: print("ตู้ล็อคเกอร์เต็มค่ะ") else: #publish ห้ามใช้งาน Web = "web|" + "EXP" + "|10|" + "user|" client = mqtt.Client() client.connect(host) client.publish("DLK/3", Web) print(Web) print("บัตรหมดอายุค่ะ กรุณาติดต่อเจ้าหน้าที่") check_status = 1 ####### # disconnect from server db.close()
def deposit_item(RFID_user,Id_User) : global check_status # Open database connection db = pymysql.connect("localhost","pi","1234","locker" ) # prepare a cursor object using cursor() method cursor = db.cursor() sql_select_locker = "select DLK_Number_Locker from lockers where DLK_status_Locker = 3 " cursor.execute(sql_select_locker) select_locker = cursor.fetchall() #print(select_locker) loc_ker = [] for row in select_locker: locker = row[0] # Now print fetched result #print ("locker = %d" %(locker)) loc_ker.append(row[0]) #print(loc_ker) locker = random.choice(loc_ker) print("ตู้ที่ : %d" %locker) ran = gennarate() #print(ran) #Publish ฝากใหม่ Web = "web|"+str(locker)+"|0|"+"user|" client = mqtt.Client() client.connect(host) client.publish("DLK/2",Web) #mass_scan = log_status_door.scan_locker(Id_User,RFID_user,locker) ##check_cancel = int(input("ยกเลิกไหม ? (1) หรือ ไม่ยกเลิก (0) >>> : ")) ##if(check_cancel == 0) : locker_open = time_user.check_time() # รับค่าจาก เมเนติก เวลา print(locker_open) if(locker_open==1) : check_status = 0 ####### ## insert log ประตูเปิด #log_status_door.open_door(Id_User,RFID_user,locker) mass_open = log_status_door.open_door(Id_User,RFID_user,locker) print('%s , %s ' %(topic,mass_open)) #client = mqtt.Client() #client.connect(host) #client.publish(topic,mass_open) #update status open update_status_locker.update_locker_open(locker) print("ตู้เปิด") print("") print("กรุณาฝากสัมภาระ") i = 1 # sleep while i<3 : item = int(input("น้ำหนักสัมภาระ :> ")) ## load cell if(item>0) : locker_open = int(input("เปิดตู้ไหม ? : ")) ## Megnetic door Switch function print("") if locker_open == 1 : # ไฟล์เสียง # Publish ตู้เปิด Web = "web|"+str(locker)+"|3|"+"user|" client = mqtt.Client() client.connect(host) client.publish("DLK/2",Web) print("คุณยังไม่ได้ปิดตู้") print("") print("กรุณาปิดตู้ค่ะ") i=i+1 else : print("ตู้ปิด") ## insert log ประตูปิด #log_status_door.close_door(Id_User,RFID_user,locker) mass_close = log_status_door.close_door(Id_User,RFID_user,locker) #mqtt_publish.mqtt_publish(mass) print('%s , %s ' %(topic,mass_close)) # insert detail เริ่มใช้งาน mass_start = log_detail_locker.insert_detail_start(Id_User,RFID_user,locker,ran) print('%s , %s ' %(topic,mass_start)) #update status busy update_status_locker.update_locker_busy(locker) ## insert log ตู้ไม่ว่าง #log_status_door.busy_locker(Id_User,RFID_user,locker) mass_busy = log_status_door.busy_locker(Id_User,RFID_user,locker) #mqtt_publish.mqtt_publish(mass) print("%s , %s " %(topic,mass_busy)) #client = mqtt.Client() #client.connect(host) #client.publish(topic,mass_busy) # Publish ขอบคุณ Web = "web|"+str(locker)+"|1|"+"user|" client = mqtt.Client() client.connect(host) client.publish("DLK/2",Web) print("คุณได้ฝากสัมภาระเรียบร้อยแล้ว") print("ขอบคุณที่ใช้บริการค่ะ") print("") break check_status = 1 ####### else : print("ไม่ได้ฝากของ") print("") locker_open = int(input("เปิดตู้ไหม ? : ")) ## Megnetic door Switch function print("") if locker_open == 1 : # ไฟล์เสียง # Publish ตู้เปิด Web = "web|"+str(locker)+"|3|"+"user|" client = mqtt.Client() client.connect(host) client.publish("DLK/2",Web) print("คุณยังไม่ได้ปิดตู้") print("") print("กรุณาปิดตู้ค่ะ") i=i+1 else : print("ตู้ปิด") ## insert log ประตูปิด #log_status_door.close_door(Id_User,RFID_user,locker) mass_close = log_status_door.close_door(Id_User,RFID_user,locker) #mqtt_publish.mqtt_publish(mass) print('%s , %s ' %(topic,mass_close)) #update status empty update_status_locker.update_locker_empty(locker) ## insert log ตู้ว่าง #log_status_door.empty_locker(Id_User,RFID_user,locker) mass_empty = log_status_door.empty_locker(Id_User,RFID_user,locker) #mqtt_publish.mqtt_publish(mass) print('%s , %s ' %(topic,mass_empty)) check_cancel = time_user.check_cancel() # รอรับค่า print(check_cancel) if(check_cancel == 0) : #insert detail สำเร็จ mass_end = log_detail_locker.insert_detail_end(Id_User,RFID_user,locker) print('%s , %s ' %(topic,mass_end)) # Publish ไม่ฝาก Web = "web|"+str(locker)+"|2|"+"user|" client = mqtt.Client() client.connect(host) client.publish("DLK/2",Web) print("คุณไม่ได้ฝากสัมภาระ") print("ขอบคุณที่ใช้บริการค่ะ") print("") break check_status = 1 ####### else : #publish หน้ายกเลิก sql_select_condi = "select * from conditions " cursor.execute(sql_select_condi) select_condi = cursor.fetchall() #print(select_locker) for row in select_condi: num_con = row[0] condi = row[1] # Now print fetched result print ("%d = %s" %(num_con , condi)) cancel = time_user.input_cancel()#int(input("ยกเลิกเพราะ ? >>> : ")) ####### function เลือกต้องกำหนดเวลา #insert detail ยกเลิก mass_cancel = log_detail_locker.insert_detail_cancel(Id_User,RFID_user,locker,cancel) print('%s , %s ' %(topic,mass_cancel)) #publish ขอบคุณ #Web = "web|"+str(locker)+"|1|"+"user|" #client = mqtt.Client() #client.connect(host) #client.publish("DLK/2",Web) print("ขอบคุณที่ใช้บริการค่ะ") print("") break check_status = 1 ####### if i==3 and item > 0 : Web = "web|"+str(locker)+"|4|"+"user|" client = mqtt.Client() client.connect(host) client.publish("DLK/2",Web) check_status = 1 ####### print("Report")# print("Report")# print("ไม่ปิดตู้แต่ฝากของอยู่")# #insert detail ไม่ปิดตู้แต่ฝากของอยู่ mass_problem = log_detail_locker.insert_detail_problem5(Id_User,RFID_user,locker) print('%s , %s ' %(topic,mass_problem)) #report ผ่านทางโทรศัพท์มือถือ,ไลน์, email elif i==5 and item == 0 : check_status = 1 ####### Web = "web|"+str(locker)+"|4|"+"user|" client = mqtt.Client() client.connect(host) client.publish("DLK/2",Web) print("ไม่ปิดตู้ไม่ฝากของ")# #insert detail ไม่ปิดตู้ไม่ฝากของ print("") mass_problem = log_detail_locker.insert_detail_problem6(Id_User,RFID_user,locker) print('%s , %s ' %(topic,mass_problem)) #report ผ่านทางโทรศัพท์มือถือ,ไลน์, email elif(locker_open==0) : print("ตู้ปิด") print("คุณไม่ได้ทำการเปิดตู้") #insert detail สำเร็จ mass_end = log_detail_locker.insert_detail_end(Id_User,RFID_user,locker) print('%s , %s ' %(topic,mass_end)) Web = "web|"+str(locker)+"|2|"+"user|" client = mqtt.Client() client.connect(host) client.publish("DLK/2",Web) print("ไม่ได้ฝากสัมภาระ") print("ขอบคุณที่ใช้บริการค่ะ") check_status = 1 ####### # disconnect from server db.close()