controllo accessi con tag RFID e java

valve a tutti, sono nuovo del forum scusatemi se ho sbagliato sezione :confused:
ho provato già a cercare qualcosa di simile ma non ho trovato niente che mi potesse aiutare.

volevo realizzare per l'esame che di maturità che ho a breve un sistema di controllo degli accessi. praticamente una volta ottenuto il codice del tag RFID arduino dovrà inviarlo tramite seriale ad un programma java che procederà a verificare se tale codice è presente o meno nel database sql. Il problema è che dal monitor seriale il codice viene letto correttamente, ma nel momento in cui viene trasmesso a java qualcosa va storto :cry: il codice viene o inviato parzialmente o in ordine confusionario e non riesco a capire il perchè. ringrazio tutti in anticipo, allego sketch e codice java.

progetto_buono.ino (1.49 KB)

file java.zip (2.86 KB)

Secondo me in Java, ai fini di debug, ti converebbe fare un semplice programma di test che prende in pasto la stringa che invii da Arduino per poi salvarla su un file di testo. In questo modo, leggendo l'output sul file di testo, ti rendi conto se è l'invio della stringa che non avviene correttamente oppure se è il tuo programma Java che non la elabora in maniera appropriata. Detto in poche parole, devi innanzitutto verificare come Java riceve la stringa di input da Arduino facendo un programmino dedicato solo a questo scopo. Se la ricezione della stringa è apposto, allora il programma di Arduino è OK e devi rivedere solo il programma Java.

Il problema sono quasi certo sia il programma java anche perché dal terminale di arduino ide il codice viene visualizzato in maniera corretta

Allora chiedi in un forum di java.
Ciao UWe

luigi1999:
Il problema sono quasi certo sia il programma java anche perché dal terminale di arduino ide il codice viene visualizzato in maniera corretta

Vorrei rammentarti il REGOLAMENTO, punto 16.11 ...
... quindi, come giustamnete dice Uwe, per problematiche Java rivolgiti ad un forum di supporto Java. Grazie :slight_smile:

Guglielmo

luigi1999:
Il problema sono quasi certo sia il programma java anche perché dal terminale di arduino ide il codice viene visualizzato in maniera corretta

Eh ma se non ti accerti di cosa il programma Java riceve in ingresso come puoi pensare a una correzione da apportare? Essere quasi certo di un fatto in programmazione non vuol dire nulla.

Devi riuscire a capire se Java non riceve bene il dato oppure se non lo elabora correttamente, od entrambe le cose contemporaneamente. Ma questo arrivi a capirlo solo se escludi una causa di errore alla volta, e questo implica fare delle prove con dei programmi di test creati ad hoc.

Comunque, tanto per non escludere le basi della configurazione hardware dei due oggetti coinvolti che erano da stabilire prima della programmazione vera e propria, siamo sicuri che i settaggi della trasmissione seriale di Arduino siano compatibili con quelli della ricezione nel programma Java? Baud-Rate, bit di stop, controllo di parità ...
Il programma Java poi dove è residente, in un PC? Controlla i settaggi della porta seriale che riceve i dati (vedi gestione dispositivi --> porte COM) e rendili compatibili con quelli di Java e Arduino. Oppure, se non vuoi cambiare i settaggi della porta sul PC o quello che è, puoi cambiarli lato Java e Arduino. Quello che voglio dire è che i problemi che stai avendo potrebbero essere anche a livello di impostazioni del protocollo di comunicazione seriale, non solo di programmazione. Devi arrivare al punto in cui Java, porta COM del PC e Arduino abbiano una configurazione uguale.

Leggi questa guida per sapere come Arduino è impostato di default nei riguardi della comunicazione seriale:

A questi indirizzi invece trovi una descrizione di cosa significano i parametri elencati nella guida soprastante: