Commit 0ebacc64 authored by matteo perini's avatar matteo perini

semplificato il codice

parent c6a7c16e
import time
import os
import RPi.GPIO as GPIO
#from mfrc522 import SimpleMFRC522
#import sqlite3
from termcolor import colored
from my_lib import registra_cliente, registra_prodotto, cerca_cliente_per_prodotto, scarica_prodotto, lista_clienti, cancella_cliente, lista_prodotti, cerca_cliente_per_tessera
#from my_lib import NFC
from gpiozero import LED
def mostra_menu():
LED_ROSSO.on() #accendo il led rosso
os.system('cls' if os.name == 'nt' else 'clear') # questa riga serve per cancellare il terminale
#print(chr(27) + "[2J")
#Qui sotto creiamo il menù
print(colored("\nSeleziona l'operazione da effettuare selezionando il numero del menù:\n","green", attrs=["bold"]))
print(colored(" [1] Registrazione nuovo cliente","cyan", attrs=["bold"]))
......@@ -37,6 +35,7 @@ def mostra_menu():
input()
mostra_menu()
elif int(n) == 3:
LED_ROSSO.off()
scarica_prodotto()
input()
mostra_menu()
......@@ -66,20 +65,16 @@ def mostra_menu():
mostra_menu()
else:
print("Numero selezionato non valido. Riprova!") #se il numero non è tra quelli previsti
input() #aspetto tre secondi
input() #aspetto fino a che non premo invio
mostra_menu() #faccio ripartire la funzione del menù
else:
print("Scelta non corretta. Deve essere un numero. Riprova!") #se l'immissione non è un numero
input() #aspetto tre secondi
input() #aspetto fino a che non premo invio
mostra_menu() #faccio ripartire la funzione del menù
if __name__=="__main__": #se sto chiamando il programma principale
#GPIO.setmode(GPIO.BCM)
#GPIO.setup(25, GPIO.OUT)
#global nfc
#nfc = NFC()
#nfc.addBoard("rfid_cassa",25) #GPIO 25 -> pin 22
LED_ROSSO = LED(13)
mostra_menu() # avvia la funzione per mostrare il menù
\ No newline at end of file
......@@ -2,7 +2,7 @@ import RPi.GPIO as GPIO
from mfrc522 import SimpleMFRC522
import sqlite3
import time
from gpiozero import LED
from gpiozero import LED, Servo
def leggi_rfid(testo,pin):
if pin==5:
......@@ -28,6 +28,7 @@ def leggi_rfid(testo,pin):
id,data = reader.read()
time.sleep(0.2)
except:
print("Errore nella lettura del tag")
pass
finally:
GPIO.cleanup()
......@@ -38,7 +39,7 @@ def cerca_cliente_per_prodotto():
con = sqlite3.connect("mydb.db")
cur = con.cursor()
n,d = leggi_rfid("Ciao, avvicina il prodotto al ricevitore!",6)
n,d = leggi_rfid("Ciao, avvicina il prodotto al ricevitore!",5)
database = cur.execute('SELECT n_cliente FROM prodotti WHERE n_rfid=?;',(n,))
yy = database.fetchall()
......@@ -54,7 +55,7 @@ def cerca_cliente_per_prodotto():
def cerca_cliente_per_tessera():
con = sqlite3.connect("mydb.db")
cur = con.cursor()
n,data = leggi_rfid("Ciao, avvicina la tessera del cliente al ricevitore!",6)
n,data = leggi_rfid("Ciao, avvicina la tessera del cliente al ricevitore!",5)
database = cur.execute('SELECT * FROM persone WHERE n_card=?;',(n,))
yy = database.fetchall()
if len(yy) > 0:
......@@ -68,7 +69,7 @@ def cerca_cliente_per_tessera():
return None
def registra_prodotto():
reader = SimpleMFRC522()
#reader = SimpleMFRC522()
con = sqlite3.connect("mydb.db")
cur = con.cursor()
......@@ -80,8 +81,7 @@ def registra_prodotto():
codice_cliente = cerca_cliente_per_tessera()
if codice_cliente != None:
time.sleep(2)
codice_prodotto, d = leggi_rfid("Ciao, avvicina il prodotto al ricevitore!",6)
codice_prodotto, d = leggi_rfid("Ciao, avvicina il prodotto al ricevitore!",5)
try:
cur.execute("INSERT INTO prodotti(n_rfid, n_cliente) VALUES(?, ?)",(codice_prodotto,codice_cliente))
print("Il prodotto numero : ", codice_prodotto, " è stato attribuito al cliente : ", codice_cliente)
......@@ -92,66 +92,50 @@ def registra_prodotto():
else:
print("Registra il cliente prima di riprovare.")
def scarica_prodotto():
LED_GIALLO = LED(26)
LED_VERDE = LED(19)
LED_GIALLO.on()
LED_VERDE.off()
COPERCHIO = Servo(4)
con = sqlite3.connect("mydb.db")
cur = con.cursor()
codice_prodotto = leggi_rfid("Ciao, avvicina il prodotto al ricevitore!",5)
codice_prodotto, d = leggi_rfid("Ciao, avvicina il prodotto al ricevitore!",5) # unico 5
try:
a= cur.execute("SELECT * FROM prodotti WHERE n_rfid=?;",(codice_prodotto,))
if len(a.fetchall())>0:
pass
try:
cur.execute("DELETE FROM prodotti WHERE n_rfid=?;",(codice_prodotto,))
print("Il prodotto col codice : ", codice_prodotto, " è stato correttamente smaltito.")
con.commit()
cur.close()
LED_GIALLO.off()
LED_VERDE.on()
time.sleep(1)
COPERCHIO.min()
time.sleep(5)
print("Il prodotto col codice : ", codice_prodotto, " è stato correttamente smaltito.")
COPERCHIO.max()
except:
print("Codice non corretto")
except:
print("Prodotto non presente nel database. Impossibile da smaltire")
def cancella_cliente():
reader = SimpleMFRC522()
con = sqlite3.connect("mydb.db")
cur = con.cursor()
def leggi_cliente():
try:
print("Ciao, avvicina il tag del cliente al ricevitore!")
id,text = reader.read()
print(id)
#print(text)
except:
pass
finally:
GPIO.cleanup()
return int(id)
# def leggi_prodotto():
# try:
# print("Ciao, avvicina il prodotto al ricevitore!")
# id,text = reader.read()
# print(id)
# #print(text)
# except:
# pass
# finally:
# GPIO.cleanup()
# return int(id)
#n = input("Quale e il tuo nome?")
#c = input("Quale e il tuo cognome?")
codice_cliente = leggi_cliente()
#time.sleep(2)
#codice_prodotto = leggi_prodotto()
codice_cliente, d = leggi_rfid("Ciao, avvicina il tag del cliente al ricevitore!",5)
try:
cur.execute("DELETE FROM persone WHERE n_card=?;",(codice_cliente,))
#print("ciao")
#print("Ciao ", codice_cliente , " abbiamo registrato il prodotto numero : ", codice_prodotto)
con.commit()
cur.close()
print("Cliente rimosso dal database")
print("Cliente correttamente rimosso dal database")
except:
print("Codice non corretto")
......@@ -166,68 +150,21 @@ def registra_cliente():
cognome TEXT NOT NULL,
n_card TEXT NOT NULL UNIQUE);""")
def leggi_codice():
try:
print("Ciao, avvicina il tag RFID al ricevitore!")
id,text = reader.read()
print(id)
print(text)
except:
pass
finally:
GPIO.cleanup()
return id
n = input("Quale e il tuo nome?")
c = input("Quale e il tuo cognome?")
a = leggi_codice()
nome = input("Quale è il tuo nome?")
cognome = input("Quale è il tuo cognome?")
numero_tessera , d = leggi_rfid("Adesso avvicina il tag RFID al ricevitore!",5)
try:
b = int(a)
cur.execute("INSERT INTO persone(nome, cognome, n_card) VALUES(?, ?, ?)",(n,c,a))
print("Ciao ", n , " la tua tessera ha il numero : ", b)
cur.execute("INSERT INTO persone(nome, cognome, n_card) VALUES(?, ?, ?)",(nome,cognome,numero_tessera))
print("Ciao ", nome , "", cognome , " la tua tessera ha il numero : ", numero_tessera)
con.commit()
cur.close()
except:
print("Codice non corretto")
def leggi_cliente():
reader = SimpleMFRC522()
try:
print("Ciao, avvicina il tag del cliente al ricevitore!")
id,text = reader.read()
#print(id)
#print(text)
except:
print("C'è stato un errore di lettura. Ripetere l'operazione!")
pass
finally:
GPIO.cleanup()
return int(id)
def leggi_prodotto():
reader = SimpleMFRC522()
try:
print("Ciao, avvicina il tag del prodotto al ricevitore!")
id,text = reader.read()
#print(id)
#print(text)
except:
print("C'è stato un errore di lettura. Ripetere l'operazione!")
pass
finally:
GPIO.cleanup()
return int(id)
def lista_clienti():
reader = SimpleMFRC522()
#reader = SimpleMFRC522()
con = sqlite3.connect("mydb.db")
cur = con.cursor()
......@@ -237,49 +174,22 @@ def lista_clienti():
cognome TEXT NOT NULL,
n_card TEXT NOT NULL UNIQUE);""")
database = cur.execute("""SELECT * FROM persone;""")
for row in database:
print(row)
def lista_prodotti():
reader = SimpleMFRC522()
con = sqlite3.connect("mydb.db")
cur = con.cursor()
# cur.execute("""CREATE TABLE IF NOT EXISTS persone (
# id INTEGER PRIMARY KEY,
# nome TEXT NOT NULL,
# cognome TEXT NOT NULL,
# n_card TEXT NOT NULL UNIQUE);""")
def leggi_cliente():
reader = SimpleMFRC522()
try:
print("Ciao, avvicina il tag del cliente al ricevitore!")
id,text = reader.read()
#print(id)
#print(text)
except:
print("C'è stato un errore di lettura. Ripetere l'operazione!")
pass
finally:
GPIO.cleanup()
return int(id)
codice_cliente = leggi_cliente()
#time.sleep(2)
#codice_prodotto = leggi_prodotto()
codice_cliente = cerca_cliente_per_tessera()
if codice_cliente != None:
try:
database = cur.execute("SELECT * FROM prodotti WHERE n_cliente=?;",(codice_cliente,))
#print("ciao")
#print("Ciao ", codice_cliente , " abbiamo registrato il prodotto numero : ", codice_prodotto)
for row in database:
print(row)
#con.commit()
cur.close()
#print("+")
except:
print("Codice non corretto")
else:
print("Cliente non presente nel database. Registra il cliente prima di riprovare.")
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment