Si chiama Cashdesk ed è nato come strumento di supporto per la gestione sagre, in particolare delle casse negli stand gastronomici. Gestione Sagre con raspberry è una soluzione totalmente innovativa tra quelle disponibili in rete che si basano quasi esclusivamente su software da installare nei PC.
Tutto il software risiede in un piccolo computer a scheda singola, il Raspberry PI. Si tratta di un hardware dal costo estremamente contenuto, il software è scritto in PHP e Python pertanto è portabile in qualsiasi piattaforma con web server, in linea di principio può essere installato in qualsiasi PC con sistema operativo Linux.
La soluzione con Raspberry risulta la più comoda ed immediata in quanto è sufficiente copiare l’immagine del sistema in una SD card per Raspberry ed avere così il tutto funzionante e già configurato in pochi secondi.
Principio di funzionamento
La figura seguente riporta lo schema generale di connessione e funzionamento del sistema di gestione sagre con Raspberry.
- Scheda Raspberry PI o PC con funzione di WebServer e software CashDesk;
- Switch/Hub per la connessione di PC/Raspberry/Stampanti;
- Una o più stampanti di cassa, connesse al WebServer via USB o in rete;
- Uno o più PC in zona cassa facenti funzione di postazione operatore. Anche il WebServer può funzionare da postazione operatore basta collegarci un monitor, tastiera e mouse.
- Una stampante in zona cucina che per questioni di distanza dalle postazioni di cassa e quindi dal Rspberry sarà connessa via rete;
Il principio generale di funzionamento è piuttosto semplice. Gli operatori in cassa ricevono le ordinazioni dei clienti che tramite interfaccia web vengono inserite a sistema. Il numero di operatori in cassa è illimitato, è sufficiente un PC/Tablet/Smartphone o qualsiasi dispositivo con un browser web, connesso alla rete, che possa quindi accedere alla pagina principale del WebServer. Non è necessaria l’installazione di alcun software dedicato nelle workstation in cassa. Come detto basta un comune browser: Internet Explorer, Firefox, Opera, Chrome ecc. Una volta inseriti i dati dell’ordine verrà generato uno scontrino nella stampante di cassa e la copia dello stesso uscirà nella stampante in cucina. A questo punto il cliente può sedersi e mettersi comodo in attesa che la sua richiesta venga elaborata in cucina. Il suo numero sarà chiamato una volta che i piatti richiesti sono pronti.
Installazione su scheda Raspberry PI
L’installazione su scheda Raspberry PI è la modalità preferita e fortemente raccomandata per l’utilizzazione più semplice e immediata del software.
Occorrente
- Scheda Raspberry PI, modello 3 oppure 4. Il programma non richiede prestazioni particolarmente elevate. Attenzione però che i file immagine per la versione 3 oppure 4 sono diversi. Vedere link al paragrafo seguente.
- Memoria micro SD da almeno 16GB. Lo spazio occupato dal sistema operativo e il software occupa circa 8GB;
- Stampanti per la stampa delle ricevute/scontrini. Vedere il paragrafo Stampanti per la scelta e la configurazione.
Procedura di installazione
- Scaricatevi il file immagine .img (versione per RPI 3) del sistema operativo Raspbian contenente il software già installato e configurato :
Versione per Raspberry 3 : immagine per RPI3
Versione per Raspberry 4 : immagine per RPI4
Copiate l’immagine nella scheda micro SD, una guida semplice e veloce in italiano si trova qui (andate direttamente al paragrafo 4: installare Raspbian su scheda SD ed utilizzate il file immagine scaricato al punto 1) oppure il sito raspberrypi.org contiene innumerevoli guide.
- Inserite la SD nel Raspberry, collegatevi monitor, tastiera e mouse ed accendete la scheda. Potete iniziare ad utilizzare l’applicazione.
Installazione su hardware diverso da Raspberry (opzionale)
Se avete seguito le istruzioni per l’installazione su scheda Raspberry PI del paragrafo precedente potete saltare questo paragrafo.
Come detto in precedenza, l’installazione su Raspberry è la più immediata in quanto non richiede alcuna laboriosa configurazione del software. Se tuttavia qualcuno volesse cimentarsi nell’installazione su di un hardware differente la cosa è possibile, fornisco per il momento i macropassi da seguire, una guida più completa sarà sviluppata in futuro:
- Dotarsi di un PC con SO Linux, io ho sempre lavorato con Debian o derivate ma in linea di massima qualsiasi distribuzione va bane.
- Installare Apache2, MySQL, PHP7 e PHPMyAdmin. Installare Python 2.7 e la libreria Python ESC/POS con le relative dipendenze.
- Nella directory dell’utente principale che chiamiamo User /home/User copiare la struttura e i file scaricabili dal repository, andremo così a creare la struttura /home/User/public_html/cashdesk.
- Configurare Apache2 affinchè la directory di lavoro contenente le pagine web sia /home/User/public_html/cashdesk
- Configurare MySQL (MariaDB) con un utente root e un utente chiamato ‘cashdesksql’ con password ‘cashdesksql’
- Tramite PHPMyadmin creare il database che servirà al programma. E’ sufficiente creare un nuovo database chiamato cashdesk e successivamente importare le tabelle che trovate nel file cashdesk.sql disponibile in repository
- Accedete localmente al programma aprendo un browser e digitando http://localhost. Se avete fatto tutto correttamente si aprirà la pagina di login. Entrate con uno degli utenti configurati, ad esempio ‘utente1’ con password ‘utente1’ e iniziate ad usare il programma.
Accensione del Raspberry PI
Se avete installato il software nel Raspberry flashando una memory card a partire dall’immagine, inserite la memoria nel Raspberry e accendete la schedina. Questa avrà l’indirizzo IP preimpostato a 192.168.1.100. Se vi va bene in quanto rientra nel range di indirizzi della vostra rete potete lasciarlo così, diversamente editate il file /etc/dhcpcd.conf e modificatelo con gli indirizzi che preferite. Gli utenti predefiniti sono:
- root con password cashdesk
- pi con password cashdesk
Il database MySQL (MariaDB) ha invece l’utente cashdesksql con password cashdesksql Per accedere al programma aprite il browser sul Raspberry e digitate l’indirizzo http://localhost se invece vi collegate da un altro PC nella stessa rete digitate http://192.168.1.100 o l’indirizzo che avete impostato in precedenza. A questo punto si aprirà la pagina di login. Ci sono 3 account predefiniti: utente1 con password utente1 utente2 con password utente2 utente3 con password utente3 Entrate con uno degli account. Prima di continuare con la spiegazione del funzionamento del programma vanno configurate le stampanti, senza le quali il programma non funziona … o meglio funziona me non avrebbe alcun senso utilizzarlo.
Stampanti
Immaginate una normale situazione in un qualsiasi stand gastronomico, dove decine o centinaia di ordinazioni devono essere gestite nell’arco di un paio d’ore a pranzo o a cena. Per ogni ordinazione dovete stampare uno scontrino in cassa da consegnare al cliente e uno in cucina, è evidentemente poco conveniente sia in termini di tempo che economicamente affidarsi ad una stampante laser o peggio ancora a getto di inchiostro. I costi per i ricambi di toner e cartucce sarebbero davvero esorbitanti e i tempi di stampa non compatibili con quelli richiesti per smaltire velocemente le code di clienti in attesa. E’ molto più conveniente l’utilizzo di stampanti a carta termica. Tuttavia il software è stato progettato per gestire entrambe le tipologia di stampanti:
- Stampante tradizionale (laser, inkjet …) installata come stampante di sistema. In questo caso la stampa avviene su fogli di formato A5 (un A4 tagliato a metà nel senso della larghezza);
- Stampante per carta termica di larghezza 56mm o 80mm, collegata via USB o via rete. Non è necessario installare alcun driver, le stampanti devono essere ESC/POS compatibili (quasi tutte lo sono).
Configurazione di una stampante tradizionale
Come detto sopra l’utilizzo di stampanti inkjet o laser per la stampa degli scontrini non è conveniente, tuttavia il software Cashdesk non le esclude a priori e se volete potete comunque utilizzarle. Occorre innanzi tutto configurarle in Raspbian, il sistema operativo del Raspberry. Procuratevi i driver e seguite le istruzioni del produttore, dovete arrivare ad avere la stampante installata e funzionante, stampate una pagina di prova per sicurezza e impostate il formato della carta su A5. Non posso darvi indicazioni specifiche perché ogni stampante fa storia a se’. Vi suggerisco di utilizzare CUPS, l’utility web per cofigurare le stampanti. Per accadervi aprite il browser dal Raspberry e digitate http://localhost:631 quindi seguite le istruzioni.
Scelta e configurazione di una stampante POS
Le stampanti POS sono stampanti specificatamente dedicate alla stampa degli scontrini e ricevute. Non utilizzano cartucce di inchiostro ma stampano su rotoli di carta termica. Un rotolo di carta lungo 20m costa qualche decina di centesimi di euro e basta per circa 200 scontrini, la convenienza economica rispetto al toner è evidente. Potete trovare online una vastità di stampanti POS a prezzi veramente irrisori. Le caratteristiche principali da considerare sono:
- Larghezza della carta, in genere 58mm oppure 80mm;
- Connettività: USB e/o Ethernet, talvolta anche wireless. Qualche stampante supporta anche la connessione seriale ma il software non la gestisce pertanto lasciate perdere questa caratteristica.
- Taglierina automatica o manuale. Questa è una funzione utile, il taglio automatico è gestito da Cashdesk ed è una vera comodità. Da tenere presente specialmente per la stampante che deve andare in cucina, nel caos delle ore di punta quando gli scontrini escono come se piovesse, mettersi a dividerli uno per uno è una follia. Il taglio parziale ha il vantaggio di poterli mantenere collegati assieme senza vederli svolazzare in giro per la cucina e nel contempo si possono dividere in una frazione di secondo.
Qualsiasi stampante scegliate dovete ASSOLUTAMENTE verificare che supporti il protocollo ESC/POS. E’ un protocollo sviluppato da Epson specificatamente per stampanti POS al quale praticamente tutte le stampanti di questo genere si sono adeguate. Assicurtevi che quella che andrete ad acquistare lo supporti. Il range di costo va da poco più di 20€ (incluse spese di spedizione) per una stampante come quella di figura, con taglio manuale, larghezza della carta 58mm e collegamento USB.
A circa 70€ per quella riportata qui sotto, dotata di presa USB, ethernet, taglierina automatica e larghezza carta 80mm.
Qualora abbiate scelto di utilizzare una stampante POS con protocollo ESC/POS sappiate che non dovrete preoccuparvi di scaricare e installare alcun driver. L’invio dei dati avviene in modalità RAW senza passare per lo spool (il buffer di stampa) del sistema operativo, CashDesk si occuperà di gestire la priorità della coda di stampa in caso di invii di richieste simultanee garantendo la massima velocità di stampa. Velocità che vi assicuro non otterrete mai passando tramite lo spool del sistema operativo.
Qualora la stampante sia collegata alla porta USB del Raspberry, e solo in questo caso, la cosa che vi dovete annotare sono due parametri, chiamati Product ID e Vendor ID. Ricavare questi due parametri è molto semplice, vi spiego subito come fare.
- Per prima cosa accendete la stampante, collegate il cavo USB lato stampante ma non collegatelo lato Raspberry.
- Aprite una shell di comandi e digitate il comando sudo lsusb. Vedrete comparire tutti i dispositivi USB collegati al Raspberry, come mouse, tastiera ecc.
Ora collegate la stampante POS all’USB del Raspberry e ridate il comando sudo lsusb. Cosa notate ? E’ apparsa una riga in più, quella della stampante che ora è collegata. Prendete nota dei due numerini dopo la scritta ID e separati dai due punti, il primo si chiama Product ID e il secondo Vendor ID, nell’esempio sotto sono 0416 e 5011.
E’ tutto, non serve altro.
Se invece la stampante POS è collegata via rete, la cosa è ancora più semplice. Configurate la stampante con un indirizzo IP della subnet nella quale vi trovate.
IL PROGRAMMA CASHDESK
A questo punto avete installato il software sulla vostra scheda Raspberry PI, configurato le stampanti o quanto meno preso nota dei parametri quali indirizzo IP, Product ID e Vendor ID che vi serviranno successivamente.
Il sistema di gestione sagre con Raspberry in questo momento è un web server, per accedere al programma CashDesk dovete aprire un browser e digitare l’indirizzo IP del Raspberry.
D’ora in poi chiameremo PC client o semplicemente client la postazione che tramite il browser (explorer, firefox, opera, chrome, …) accede al programma sul Raspberry.
Chiameremo web server il Raspberry.
Se volete potete utilizzare lo stesso Raspberry, il web server, come client. Aprite Chrome e digitate sulla barra indirizzi http://localhost.
Se invece il client è un altro PC collegato nella stessa rete, aprite il browser del PC e accedete al web server digitando sulla barra degli indirizzi http://192.168.1.100 (o l’indirizzo da voi impostato qualora abbiate modificato quello di default).
Finestra di login
Ci sono 3 utenti pre impostati, chiamati utente1, utente2 e utente3 con password uguale alla user id. Nella stessa finestra potete scegliere la stampante sulla quale l’utente che si sta collegando dovrà stampare gli scontrini da lui generati. Al primo accesso non avete ancora impostato le stampanti pertanto per il momento lasciate perdere questa selezione. Premete Login per entrare.
Schermata principale gestione sagre con Raspberry
Nella schermata principale sono visibili:
- In alto a fianco dell’icona del programma il nome dell’utente collegato e la stampante selezionata.
- La barra di menu grigia con le voci Home (ritorno alla pagina principale), Sconnetti (per uscire) e Cambio Password per modificare la password dell’utente connesso.
- Il menu blu a sinistra le cui voci sono divise nei due gruppi FUNZIONI e SETUP.
- Infine nella parte centrale della schermata il messaggio di benvenuto con il nome dell’utente e il profilo. Da notare che al momento tutti gli utenti hanno profilo admin, questa opzione è stata introdotta nell’ottica di rendere disponibili in futuro funzioni diverse ad utenti con profili differenti.
Nota scontata ma doverosa: gli utenti del programma e il relativo profilo admin non hanno nulla a che vedere con gli utenti del sistema operativo.
Menu stampanti
Questa voce di menù, che sta sotto al gruppo SETUP, vi consente di definire le stampanti disponibili per gli operatori di cassa e quella che sarà invece la stampante in cucina nel vostro sistema di gestione sagre con Raspberry.
Selezionate la voce di menù e vi comparirà una schermata molto simile alla seguente.
Se avete installato l’immagine iso per Raspberry sono già presenti delle stampanti di default, che non sono quasi sicuramente quelle che avrete voi pertanto potete tranquillamente rimuoverle.
Nel riquadro STAMPANTI DISPONIBILI premete sulla croce sotto la colonna Rimuovi per rimuovere la stampante.
Aggiunta di una stampante
Guardate il riquadro AGGIUNGI STAMPANTE, nel memu a tendina sotto la colonna “Tipo o stampante” selezionate ESC-POS se quella che volete aggiungere è una stampante ESC/POS, oppure una delle stampanti tradizionali già configurate a sistema che dovrebbero comparirvi nel menu a tendina.
Se selezionate una delle stampanti installate a sistema tutti gli altri campi si disabiliteranno, il formato della carta è di default A5 e vi resta solo da dare una nome a piacere alla stampante. Premete il pulsante Aggiungi ed avete finito.
Se invece volete aggiungere una stampante ESC-POS al vostro sistema di gestione sagre con Raspberry dovrete specificare il tipo di connessione USB o Rete ethernet, nel caso scegliate Rete dovete indicare l’indirizzo IP della stampante mentre se la stampante è collegata allaporta USB del Raspberry dovete indicate i parametri Product ID e Vendor ID che si ricavano come spiegato in precedenza.
Date infine un nome alla stampante e scegliete la dimensione della carta.
Come ultimo parametro il tipo di codifica, questo serve per il riconoscimento delle lettere accentate e del simbolo euro (€). Varia a seconda del modello di stampante, se non conoscete il tipo di codifica sceglietene uno e verificate se funziona.
Proseguite in maniera analoga per le altre stampanti da aggiungere.
Scelta della stampante in cucina
Quando avete terminato di aggiungere le stampanti tornate a guardare il riquadro STAMPANTI DISPONIBILI, sotto la colonna Cucina selezionate quella che sarà posizionata in cucina e premete il tasto Imposta.
Le stampanti del sistema di gestione sagre con Raspberry sono finalmente configurate, è il momento di fare qualche prova di stampa.
Emissione degli scontrini
Prima di aggiornare l’elenco dei piatti, è il caso di verificare se le stampanti funzionano correttamente.
Come prima cosa scollegatevi dalla sessione di lavoro premendo la voce Sconnetti dal menu in alto. Quindi rifate il login ma stavolta selezionate la stampante che utilizzarete come stampante di cassa per l’operatore che sta facendo il login in questo momento nel sistema di gestione sagre con Raspberry.
Scegliete la voce Emetti scontrini nel gruppo FUNZIONI del menu di sinistra.
Selezionate per qualche piatto tra quelli elencati una quantità diversa da zero e premete il pulsante Stampa.
Se tutto ha funzionato correttamente dovreste vedere uscire due scontrini, prima quello nella stampante di cassa e successivamente quello nella stampante di cucina. Saranno identici e riportaranno lo stesso numero progressivo.
Potete anche inserire delle note a fianco di ogni piatto mentre spuntando la voce Per asporto comparirà la scritta ASPORTO sullo scontrino.
Riempendo il campo Importo ricevuto nella finestra di conferma emissione scontrino sarà anche visualizzato il resto da dare al cliente.
Se la stampa è andata a buon fine significa che le stampanti sono state installate correttamente e siete già a buon punto nella configurazione del vostro sistema di gestione sagre con Raspberry. Potete passare al paragrafo successivo per l’aggiornamento dell’elenco dei piatti e altri setup.
Impostazioni
Selezionando la voce Impostazioni del gruppo SETUP nel menu principale, avrete accesso alla pagina seguente.
La parte in alto di questa sezione consente di inserire o rimuovere i piatti disponibili. Per rimuovere un piatto premere il pulsante con la croce, mentre per inserirlo posizionarsi sulla riga al di sotto della quale inserire il nuovo piatto e premere il pulsante con la freccia Blu.
Il significato dei campi Descrizione e Importo è ovvio, mentre il campo Posizione può assumere i valori Alto o Basso. Se un piatto ha il campo Posizione impostato al valore Alto allora comparirà nel primo subtotale, se invece ha il campo Posizione impostato al valore Basso allora comparirà nel secondo subtotale dello scontrino.
Questa suddivisione trova la sua utilità ad esempio se cucina e bar sono divisi. Attenzione che se uno scontrino contiene SOLO piatti che stanno nella posizione Basso (quindi BAR) non uscirà in cucina ma solo in cassa in quanto non contiene piatti che può preparare la cucina.
Facciamo un esempio tanto per chiarire:
se una persona ordina un caffè e niente altro, lo scontrino esce solo in cassa perché si presuppone che il singolo caffé sia preparato non dalla cucina ma dal bar. Il cliente va con lo scontrino in zona bar e si fa dare il caffé.
Se per voi questa distinzione non ha utilità e vi va bene che tutti gli scontrini vengano stampati sia in bar che in cucina allora lasciato il campo Posizione al valore Alto per tutti i piatti.
La colonna Tipo permette di definire la tipologia di piatto (primo, secondo, contorno, ….) ed ha solo fini statistici che troverete nei report finali.
Infine togliete la spunta dalla colonna Disponibile se volete che il piatto compaia nella lista ma sia disabilitato e quindi non ordinabile. Utile ad esempio se un piatto è terminato ma non volete toglierlo dalla lista perché potrebbe tornare disponibile a breve.
Terminato l’aggiornamento del listino piatti del sistema di gestione sagre con Raspberry passiamo alla parte in basso delle Impostazioni.
Mettete la spunta su Azzera numero scontrino se volete che gli scontrini ripartano da 1.
Se per qualche ragione volete disabilitare l’uscita degli scontrini dalla stampante in cucina (ad esempio per fare delle prove o perché nella vostra organizzazione una stampante è sufficiente o per qualsiasi altro motivo) allora togliete la spunta dalla voce Abilita stampante cucina.
Scrivete nel campo Intestazione qualsiasi testo che volete fare apparire sotto al logo.
Passiamo ora alla definizione del logo dal utilizzare nel vostro sistema di gestione sagre con Raspberry. Nel menu a tendina compaiono i nomi dei logo che sono già nella directory /home/pi/public_html/cashdesk/logos, se è la prima volta che utilizzate il programma vedrete solo gli esempi pre caricati. Premete il pulsante Sfoglia… e selezionate dal vostro supporto il file immagine da utilizzare come logo quindi premete il pulsante Carica. Tornate al menu a tendina e a questo punto il file comparirà nella lista, selezionatelo e premete il tasto CONFERMA. Dovreste ora vederlo in piccolo a fianco del pulsante Carica.
Menu Carica/Salva archivio
Questa funzionalità, che sta nel gruppo SETUP, consente di salvare il listino dei piatti con i relativi prezzi e gli altri parametri impostati. Utile per salvare i dati di un evento e riprenderli la volta successiva che lo stesso evento si ripropone, senza dover ogni volta riscrivere tutto il listino. Date un nome epremete il pulsante Salva.
Una volta salvato l’archivio è disponibile tra quelli selezionabili nel menu a tendina per essere ricaricato all’occorrenza.
Funzione Annulla Scontrino
Selezionando la voce Annulla scontrino nel gruppo FUNZIONI del menu proncipale si accede ad una schermata nella quale, inserendo il numero di uno scontrino già emesso, è possibile inviare un messaggio in cucina per annullare la richiesta.
Lo scontrino sarà anche marcato come “annullato” nel database e quindi non conteggiato tra le statistiche dei piatti venduti.
Funzione Ristampa Scontrino
Può tornare utile dover ristampare uno scontrino, ad esempio se la carta è finita o si è verificato qualche problema che ha impedito la normale procedura di stampa.
Selezionare dal menu a tendina lo scontrino che si desidera ristampare e mettere la spunta sulla stamante attraverso la quale dovrà uscire.
ATTENZIONE: gli scontrini per stampanti POS vengono salvati con il formato nn_gg-mm-aaaa dove
nn è il numero dello scontrino;
gg il giorno
mm il mese
aaaa l’anno
Ad esempio 10_24.12.2018 è lo scontrino n.12 emesso il 24/12/2018.
Invece gli scontrini generati per le stampanti di sistema (inkjet, laser, …) sono dei normali pdf e vengono salvati con il nome formattato come: scontrinoNN_A5.pdf
dove NN è il numero dello scontrino.
Premere il pusante STAMPA è lo scontrino selezionato verrà ristampato nella stampante o nelle stampanti scelte.
Report finale gestione sagre con Raspberry
Selezionando Report Finale dal menu principale nel gruppo FUNZIONI si otterrà la seguente schermata.
Impostare le date iniziale e finale quindi premere il pulsante Produzione Rapporto.
Verrà generato un file PDF contenente informazioni sul numero di coperti, piatti prodotti, ricavo ecc.
Informazioni utili
Se installate il sistema di gestione sagre con Raspberry CashDesk copiando l’immagine iso in una scheda di memoria micro SD per utilizzarla in un Raspberry, vi troverete con una serie di impostazioni di default che riepilogo per comodità qui sotto.
Account di default Raspberry
Utenti SO Linux
Utente: root – Password: cashdesk
Utente: pi – Password: cashdesk
Utenti database MySQL (MariaDB)
Utente: cashdesksql – Password: cashdesksql
Directory e file nel Raspberry
/home/pi/Accounts_MySql/datilogin.txt – Questo file contiene gli account per la connessione al database.
/home/pi/public_html/cashdesk/ – Questa directory contiene i file PHP e Python del webserver. E’ impostata come directory principale del web server Apache.
/home/pi/public_html/cashdesk/backup/ – Questa directory contiene i file sql di backup del database.
/home/pi/public_html/cashdesk/logos/ – Questa directory contiene i file con i logo.
/home/pi/public_html/cashdesk/scontrini/ – Questa directory contiene i file delle ricevute. Va ripulita manualmente per elminare le ricevute che non servono più.
LEGGI ANCHE QUESTI INTERESSANTI ARTICOLI
Un’app contapassi gratis senza sfronzoli : NDEMO10K (lambdaprogetti.it)
IL PALIO DI NOALE – Rievocazione storica ed app esclusiva (lambdaprogetti.it)