Commit fd320c1d authored by matteo perini's avatar matteo perini

finale

parent 0ebacc64
...@@ -3,11 +3,14 @@ import os ...@@ -3,11 +3,14 @@ import os
import RPi.GPIO as GPIO import RPi.GPIO as GPIO
from termcolor import colored 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 registra_cliente, registra_prodotto, cerca_cliente_per_prodotto, scarica_prodotto, lista_clienti, cancella_cliente, lista_prodotti, cerca_cliente_per_tessera
from my_lib import muovi_servo
from gpiozero import LED from gpiozero import LED
def mostra_menu(): def mostra_menu():
LED_ROSSO.on() #accendo il led rosso LED_ROSSO.on() #accendo il led rosso
#muovi_servo(1)
os.system('cls' if os.name == 'nt' else 'clear') # questa riga serve per cancellare il terminale os.system('cls' if os.name == 'nt' else 'clear') # questa riga serve per cancellare il terminale
muovi_servo(1)
#Qui sotto creiamo il menù #Qui sotto creiamo il menù
print(colored("\nSeleziona l'operazione da effettuare selezionando il numero del menù:\n","green", attrs=["bold"])) 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"])) print(colored(" [1] Registrazione nuovo cliente","cyan", attrs=["bold"]))
...@@ -77,4 +80,6 @@ def mostra_menu(): ...@@ -77,4 +80,6 @@ def mostra_menu():
if __name__=="__main__": #se sto chiamando il programma principale if __name__=="__main__": #se sto chiamando il programma principale
LED_ROSSO = LED(13) LED_ROSSO = LED(13)
#muovi_servo(1)
#COPERCHIO.max()
mostra_menu() # avvia la funzione per mostrare il menù mostra_menu() # avvia la funzione per mostrare il menù
\ No newline at end of file
...@@ -3,6 +3,8 @@ from mfrc522 import SimpleMFRC522 ...@@ -3,6 +3,8 @@ from mfrc522 import SimpleMFRC522
import sqlite3 import sqlite3
import time import time
from gpiozero import LED, Servo from gpiozero import LED, Servo
global COPERCHIO
COPERCHIO = Servo(4)
def leggi_rfid(testo,pin): def leggi_rfid(testo,pin):
if pin==5: if pin==5:
...@@ -93,11 +95,11 @@ def registra_prodotto(): ...@@ -93,11 +95,11 @@ def registra_prodotto():
print("Registra il cliente prima di riprovare.") print("Registra il cliente prima di riprovare.")
def scarica_prodotto(): def scarica_prodotto():
muovi_servo(1)
LED_GIALLO = LED(26) LED_GIALLO = LED(26)
LED_VERDE = LED(19) LED_VERDE = LED(19)
LED_GIALLO.on() LED_GIALLO.on()
LED_VERDE.off() LED_VERDE.off()
COPERCHIO = Servo(4)
con = sqlite3.connect("mydb.db") con = sqlite3.connect("mydb.db")
cur = con.cursor() cur = con.cursor()
...@@ -114,11 +116,13 @@ def scarica_prodotto(): ...@@ -114,11 +116,13 @@ def scarica_prodotto():
cur.close() cur.close()
LED_GIALLO.off() LED_GIALLO.off()
LED_VERDE.on() LED_VERDE.on()
print("Prodotto identificato. Attendere apertura.")
time.sleep(1) time.sleep(1)
COPERCHIO.min() muovi_servo(0) #apri cestino
time.sleep(5) time.sleep(5)
print("Il prodotto col codice : ", codice_prodotto, " è stato correttamente smaltito.") print("Il prodotto col codice : ", codice_prodotto, " è stato correttamente smaltito.")
COPERCHIO.max() muovi_servo(1) #richiudi cestino
except: except:
print("Codice non corretto") print("Codice non corretto")
except: except:
...@@ -130,15 +134,19 @@ def cancella_cliente(): ...@@ -130,15 +134,19 @@ def cancella_cliente():
cur = con.cursor() cur = con.cursor()
codice_cliente, d = leggi_rfid("Ciao, avvicina il tag del cliente al ricevitore!",5) codice_cliente, d = leggi_rfid("Ciao, avvicina il tag del cliente al ricevitore!",5)
a= cur.execute("SELECT * FROM persone WHERE n_card=?;",(codice_cliente,))
if len(a.fetchall())==0:
print("Cliente non presente nel database. Registra il cliente prima di riprovare.")
else:
try:
cur.execute("DELETE FROM persone WHERE n_card=?;",(codice_cliente,))
con.commit()
cur.close()
print("Cliente correttamente rimosso dal database")
except:
print("Codice non corretto")
try:
cur.execute("DELETE FROM persone WHERE n_card=?;",(codice_cliente,))
con.commit()
cur.close()
print("Cliente correttamente rimosso dal database")
except:
print("Codice non corretto")
def registra_cliente(): def registra_cliente():
reader = SimpleMFRC522() reader = SimpleMFRC522()
con = sqlite3.connect("mydb.db") con = sqlite3.connect("mydb.db")
...@@ -153,14 +161,21 @@ def registra_cliente(): ...@@ -153,14 +161,21 @@ def registra_cliente():
nome = input("Quale è il tuo nome?") nome = input("Quale è il tuo nome?")
cognome = input("Quale è il tuo cognome?") cognome = input("Quale è il tuo cognome?")
numero_tessera , d = leggi_rfid("Adesso avvicina il tag RFID al ricevitore!",5) numero_tessera , d = leggi_rfid("Adesso avvicina il tag RFID al ricevitore!",5)
print(numero_tessera)
try: try:
cur.execute("INSERT INTO persone(nome, cognome, n_card) VALUES(?, ?, ?)",(nome,cognome,numero_tessera)) a= cur.execute("SELECT * FROM persone WHERE n_card=?;",(numero_tessera,))
print("Ciao ", nome , "", cognome , " la tua tessera ha il numero : ", numero_tessera) if len(a.fetchall())==0:
con.commit() try:
cur.close() 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")
else:
raise("ciao")
except: except:
print("Codice non corretto") print("Cliente già presente nel database. Impossibile registrare questa tessera.")
def lista_clienti(): def lista_clienti():
...@@ -192,4 +207,11 @@ def lista_prodotti(): ...@@ -192,4 +207,11 @@ def lista_prodotti():
except: except:
print("Codice non corretto") print("Codice non corretto")
else: else:
print("Cliente non presente nel database. Registra il cliente prima di riprovare.") print("Cliente non presente nel database. Registra il cliente prima di riprovare.")
\ No newline at end of file
def muovi_servo(n):
if str(n)=="1":
COPERCHIO.max()
else:
COPERCHIO.min()
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