Consigli su realizzazione progetto in rete condivisa

Salve a tutti ragazzi.

Scrivo sul forum per chiedervi delle delucidazioni in merito ad un progetto che avevo intenzione di realizzare e per il quale avrei bisogno di una mano - non tanto nell'elaborazione del codice in sé - ma piuttosto nella organizzazione logica dello stesso.

Vengo al sodo: avrei bisogno di ottenere delle informazioni periodiche - in seguito ad una mia specifica richiesta - da diversi sensori, gestendo tale richieste - però - da un unico client.

Tutto questo vorrei farlo wireless, o almeno, quanto più wireless possibile.

Mi spiego facendo un esempio banale per essere più pratico: ho 10 sensori di temperatura in 10 stanze diverse, uno per ogni stanza. Vorrei, attraverso un interfaccia grafica realizzata in visual basic, richiedere la temperatura rilevata da ognuno dei diversi sensori schiacciando il relativo pulsante di riferimento "Leggi". La temperatura viene mostrata a video. Le informazioni vengono trasferite al PC, wireless.

Mi sono informato un pò e sono arrivato alle seguenti conclusioni al fine di organizzare il lavoro:

-Per il trasferimento wireless dei dati, nella maniera in cui ho sopra descritto, ho scartato l'ipotesi del bluetooth per due motivi. Il primo è che non sono sicuro di riuscire ad avere una copertura idonea per il trasferimento agevole dei dati (troppa distanza), e il secondo è che riuscirei ad avere una sola connessione per ogni sensore per volta. Dovrei disconnettermi e riconnettermi ad ogni richiesta per un sensore diverso. Ho cercato un pò in giro e a quanto ho capito, la soluzione ideale sarebbe connettere in rete i diversi sensori, magari attraverso degli ESP8266 - facendo sì che possano acquisire ognuno un IP diverso - per interrogarli a piacimento (ed anche contemporaneamente volendo) al fine di ottenere il valore desiderato. Credete sia corretto? -Ho visto qualcosa in giro e mi sembra che visual basic possa gestire eventualmente richieste HTTP GET e POST. Potrei scambiare in questo modo le informazioni per poi visualizzarle a video, è corretto?

Aspetto i vostri consigli,

nel frattempo colgo l'occasione per augurarvi buon inizio del Nuovo Anno. :)

A presto.

felice anno nuovo anche a te per intanto, come idea, prova a dare uno sguardo al mio "termoremoto" e al mio "termometro con la febbre", magari trovi spunti........

luigidnl: Vorrei, attraverso un interfaccia grafica realizzata in visual basic, richiedere la temperatura rilevata da ognuno dei diversi sensori schiacciando il relativo pulsante di riferimento "Leggi". Ho cercato un pò in giro e a quanto ho capito, la soluzione ideale sarebbe connettere in rete i diversi sensori, magari attraverso degli ESP8266 - facendo sì che possano acquisire ognuno un IP diverso - per interrogarli a piacimento (ed anche contemporaneamente volendo) al fine di ottenere il valore desiderato. Credete sia corretto?

Si, si può fare, io per una cosa simile uso dei WeMos D1 (sono board ESP ma con form factor "Arduino", e si programmano direttamente con l'IDE di Arduino con lo stesso linguaggio e poche "variazioni"). Tutti impostati per usare il DHCP quindi con IP dinamico. Quindi per la comunicazione puoi semplificare le cose se il sistema centrale manda le richieste via UDP, per cui o conosci a priori gli IP dei vari sensori oppure (meglio) il sistema centrale manda degli UDB "Broadcast" ossia ricevibili da chiunque sia in ascolto su quella porta. Nel pacchetto codificherai il comando (per ora uno solo, tipo un byte 0x01 che nel tuo protocollo potrebbe significare "datemi tutti quanti la vostra lettura" -questo per poter estendere eventualmente il protocollino): ogni device quindi quando riceve questo broadcast con il codice 0x01 risponderà con un UDP destinato al server (l'IP lo ricava dal pacchetto ricevuto) nel quale codificherai per prima cosa l'ID del device, seguito dai dati.

-Ho visto qualcosa in giro e mi sembra che visual basic possa gestire eventualmente richieste HTTP GET e POST. Potrei scambiare in questo modo le informazioni per poi visualizzarle a video, è corretto?

Certo, si può fare anche se in realtà se implementerai il tuo protocollo UDP non serve che diventi un server web HTTP. Anzi, se parli di Visual Basic per Windows Forms è meglio usare il semplice UDP, se invece pensi a VB in un sito web su IIS, allora al posto tuo farei comunque un windows service che effettua le letture via UDP ed inserisce i dati in un DB SQL (mentre la parte web di presentazione si limita a leggere questi dati). Altrimenti se vuoi tutto su IIS, dovresti lasciar stare l'UDP (IIS non risponde ad UDP) e quindi i WeMos devono loro stessi mandare le letture periodicamente, tramite chiamate HTTP GET ad IIS. Ma la soluzione migliore per me resta la prima. Ma per questa parte devi rivolgerti ad un forum Visual Basic.

Vi ringrazio tanto delle informazioni. Ho dirottato un pò la mia idea di progetto, mi accingo a scrivere un nuovo thread poiché abbastanza differente concettualmente da quello che avevo in mente di fare in precedenza.

Grazie mille ancora della collaborazione.

A presto.