Modulo Parser per acquisizione dati sensioriali

Buongiorno,
sono nel bel mezzo dello svolgimento di un progetto con Arduino e, tra le altre cose, devo sviluppare un parser che mi permetta di acquisire dati da vari sensori per poi elaborarli successivamente. Ho un' idea generale di quello che devo fare, ma ho bisogno del vostro aiuto per essere sicuro di essere indirizzato sulla strada giusta :slight_smile:
Innanzitutto per questo progetto sto utilizzando una board Arduino Uno completa del suo kit di sensori.

In che cosa consiste questo progetto:

Un dispositivo remoto (Smartphone/PC) connesso tramite bluetooth alla board (utilizzo un modulo BT T9J-RN42 BlueSmirf di Sparkfun) invia a quest' ultima un file di configurazione in cui sono presenti i diversi parametri di setup dei sensori (tipo di sensore [digitale/analogico], pin, frequenza, prot. di comunicazione [seriale, pwm, i2c...] ecc.) ed avvia la comunicazione.
Il parser presente sulla board deve quindi ricevere il file di config., interpretarne i parametri ed in modo dinamico (senza flash della board) inizializzare i diversi sensori interessati, avviare la lettura dei dati dai sensori e restituire allo smartphone il flusso di dati letto dai sensori.
Devo cioè fare in modo che, cambiando fisicamente i sensori sulla board o la loro posizione (es. il pin) e modificando opportunamente il file di config. inviato dallo smartphone, il parser senza bisogno di flash riconosca il sensore e lo inizializzi per essere pronto alla lettura dei dati.

La sequenza delle operazioni che il modulo sulla board deve eseguire può essere più o meno sintetizzata così:

ricezione file/stringa di config. -> applicazione config. -> inizio acquisizione -> invio dati.

I sensori con cui attualmente sto lavorando purtroppo sono limitati ed in particolare sono:
-Sensore di temperatura [analogico] TMP36GZ
-Microfono KY-038 con uscita analogica e digitale
-Sensore di pressione analogico

Per ora ho collegato il modulo bluetooth all' arduino e ho inizializzato la comunicazione in BT con il device remoto e tutto funziona correttamente. Il modulo BT è collegato in TTL ai pin D2 e D3 della board ed utilizzo la libreria SoftwareSerial per emulare una UART.
Dopodichè ho buttato giù uno sketch molto semplice che aspetta un carattere dal device remoto che indica il pin di un sensore collegato alla board (ho provato ora con il microfono in lettura digitale) e ad avvenuta ricezione inizializza il sensore e fa partire la lettura dei dati, ritornando molto semplicemente allo smartphone una sequenza di '1' quando il microfono rileva qualche suono.
Ovviamente tutto ciò rappresenta solo uno sputo di ciò che dovrei fare in quanto il parser deve essere molto più complesso e funzionale.

Fatte queste premesse ciò che vorrei chiedere a voi è:

  • Come devo strutturare il file di config. (struttura, formato, ecc.) e come posso fare in modo di inviarlo dal dispositivo remoto alla board? Se non dovesse essere possibile o troppo problematico come potrei ovviare?

  • Quali sono i parametri di configurazione che terreste in considerazione per sensori sia analogici che digitali in un progetto di questo genere? Quali sensori utilizzereste per lavorare sul progetto?

  • Come strutturereste i moduli software presenti sulla board? La mia idea era quella di avere un vero e proprio modulo Parser che si occupi solamente di riconoscere i sensori dal file di config. ed un altro modulo che faccia tutto il resto (configurazione sensori, lettura dati, invio dati).

  • Qual' è il formato migliore per restituire il flusso di dati letti dal sensore al dispositivo remoto? Contando che poi questi dati dovrebbero essere elaborati da un' applicazione terza che non mi occuperò io di sviluppare

  • Esiste già qualcosa di simile da cui posso prendere spunto? Oppure del materiale sul quale posso studiare ed informarmi?

  • Qualsiasi altro consiglio sul come procedere è ben accetto in quanto sto cercando di raccogliere più informazioni possibili per fare poi una full-immersion

Grazie mille ragazzi,
Un buon proseguimento di giornata

Buongiorno,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo