Example #1
0
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  #######
Example #2
0
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()
Example #3
0
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()
Example #4
0
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()
Example #5
0
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()