Arduino rileva dei dati di un sistema e li registra in una stringa di valori numerici
La stringa viene salvata in un PC a cui è collegato tramite WIFI
Sul PC gira un programma che legge la stringa, la interpreta, e puo cambiare questi valori
Arduino legge la stringa sul PC e la sostituisce alla sua stringa locale
Praticamente Arduino rileva lo stato di un sistema e Il programma dice ad arduino cosa fare cambiando dei flag presenti nella stringa.
Come posso implementare questo scambio i dati?
Ci sto uscendo di testa ...
Secondo me nonostante gli sforzi non riesci a spiegare quello che vuoi che facciano arduino e il pc. Vediamo sono capace di aiutarti ad esprimere meglio il problema.
Arduino e il PC comunicano tra loro. Questa comunicazione può essere via cavo o wireless. Indipendentemente da come sono connessi arduino e il PC il dialogo e lo scambio di dati è reciproco.
Arduino è connesso anche ad un dispositivo da cui acquisisce delle informazioni da dei sensori e li impacchetta in una stringa. La stringa è una collezione di byte posto in sequenza. Ora ogni quanto tempo arduino fa questa operazione?
La stringa la si vuole condividere con il PC su cui gira un programma che interpreta la stringa dalla quale ricava informazioni che sono rappresentate sullo schermo tramite widget. Quando lo stato di uno dei widget cambia questo si riflette sulla stringa in questione. Da adesso arduino e PC hanno due stringe non sincronizzate per cui il PC deve comunicare ad arduino che la stringa in suo possesso è obsoleta, arduino allora si mette in ascolto per ricevere la nuova stringa, terminato l'aggiornamento la stringa sul PC e su arduino sono in sincro, cioè contengono le stesse informazioni.
Allora non sono esperto in interfaccia web e non ti saprei dire nel dettaglio come fare il tutto, ma so che si può fare per averlo visto. Si può scegliere di scrivere una applicazione standalone oppure una che gira sul browser web.
Arduino (UNO wifi rev 2§§) rileva i dati dal sistema , se è avvenuto un cambio di stato modifica la stringa di controllo e la spedisce al server.
Il programma leggendo la stringa conosce lo stato in quel momento del sistema.
Se c'è bisogno di agire sul sistema allora il programma cambia dei valori nella stringa che arduino interpreta ed agisce di conseguenza.
Ho pensato di usare un flag di controllo posto in fondo alla stringa che arduino pone sempre a zero, per esempio, quando il programma cambia la stringa invece lo pone a 1 a questo punto arduino capisce che la stringa è stata cambiata, l'acquisisce e fa quello che deve fare.
Naturalmente arduino andrà a controllare questo flag ogni tot tempo se lo trova a zero cambia la striga con quella che rappresenta lo stato attuale del sistema se invece lo trova a 1 legge quello che deve fare acquisendo la stringa pone il flag a 0 e via cosi ....
Alla fine non è l'implementazione del protocollo di comunicazione tra Ardu e il server che mi manca ma come faccio a fare scrivere e leggere un dato sul server che si trova in una rete wifi da arduino.
Ma sei andato almeno a studiarti gli esempi che ti avevo indicato nell'IDE di Arduino? Perché c'è esattamente la funzione sia di Web Server che di Web Client e basta adattarle alle tue esigenze.
si sono andato a leggere .... infatti sono riuscito a farlo funzionare come webserver e riesco a salvare la stringa che poi viene letta dal pc e aquisita ma non può modificarla !
Cioè ad Arduino rimane la sua stringa e nel pc quella modificata.
Quello che serve a me è che Arduino possa andare a leggere e scrivere un dato in un server esterno come se fosse un disco di rete "semplicemente" eseguire operazioni di scrittura e lettura
... e per quale motivo? La modifica ed arduino la va a leggere modificata ... probabilmente basta una normale HTTP GET
Ma tu quanto ne sai di HTML e di funzionamento Web Client/Server? ... perché, ho l'impressione, che prima dovresti studiarti come funziona la cosa e poi applicarla con Arduino.