Inizializzare variabile tramite scanner codice a barre e SD card

Buonasera a tutti!

Sto utilizzando Arduino per un progetto scolastico che consiste nel simulare un sistema di magazzino.

Dovrei quindi acquisire il codice a barre di un prodotto e confrontare tale valore con quelli presenti in un database, in modo da inizializzare una variabile ad esempio con il prezzo di tale prodotto e mostrarla poi su display.

Come database, trattandosi di un piccolo progetto, pensavo di utilizzare una scheda SD con caricato un file di testo o csv (scritti manualmente) con questa struttura: "codice;prezzo" , con un codice su ogni riga.

E' possibile da fare come cosa? potreste darmi qualche dritta visto che non so proprio come confrontare il codice acquisito con quelli nel database e quindi estrarre il prezzo?

Grazie mille

Certo che è possibile! Ci sono due metodi: il primo è quello di caricare in memoria tutti i codici all'avvio, leggendo il file una volta sola. Puoi creare una struct con i campi che servono e farne un array. Questo metodo va bene solo se sai che l'intero "catalogo" è costituito da pochi prodotti, massimo direi qualche decina, perché ovviamente di memoria non ne hai molta a disposizione.

L'altro metodo è ovviamente quello di andare a cercare il prodotto nel file ad ogni scansione.

Entrambi i casi sono piuttosto banali, la cosa più complicata del progetto mi sembra sia interfacciarsi con lo scanner, parti da questo.

Grazie!

Per interfacciarsi con lo scanner ho fatto alcune ricerche e ho visto che è un argomento abbastanza comune quindi in realtà non mi preoccupa moltissimo!

Quindi tu tra le due possibilità che hai citato consiglieresti di più il secondo approccio?

Come ho detto, dipende tutto da quanto è grande il catalogo.

Comunque al momento non pensarci e vai con la parte dello scanner. Tra il vederlo fare e il farlo c'è molta differenza, credimi :).

Per lo scanner, prendi un lettore di codici a barre con uscita RS232 e su Arduino lo interfaccerei con una cosa tipo questa, molto comoda per prototipare:

https://www.robotstore.it/product/701/Shield-RS232-per-Arduino.html

A quel punto riceverai sulla seriale i caratteri rilevati dal lettore (che puoi programmare per mandare un CRLF alla fine di ogni lettura ad esempio).

Docdoc grazie anche a te per il consiglio!

Io avevo in mente uno scanner con uscita PS/2, sapresti dirmi i pro e i contro delle due soluzioni?

Eh, ma il connettore PS/2 come lo colleghi ad Arduino? Se devi ancora prendere lo scanner fai prima con uno seriale, e collegato ad un adattatore per Arduino come quello che ti ho indicato o altri simili (ce ne sono anche di più semplici, ma io per sperimentare prenderei quello shield).