Dispongo di una schedina per l'acquisizione di dati da un sensore temperatura ed altro Vorrei farla comunicare col pc centrale via ethernet In sostanza vorrei realizzare un web server col micro ed interrogarlo via http o telnet Ho visto che esistono dei moduli tipo questi
formatting link
che probabilmente possono essere impiegati Il moxa costa sui 40-50 euri Conoscete qualche sistema simile a costo inferiore? Che altri consigli per raggiungere l'obiettivo prefisso (micro interrogabile via http/telnet su ethernet)? Ciao e grazie RobertoA
"RobertoA" ha scritto nel messaggio news:4ae2bd0b$ snipped-for-privacy@newsgate.x-privat.org...
Volevo solo evidenziarti che per fare comunicare la periferica col PC via ethernet non hai necessita' di un web server http o telnet, almeno questi requisiti non ti siano imposti per qualche altro motivo. Basta che ti venga fornita insieme alla porta ethernet lo "stack" relativo al protocollo UDP e TCP/IP che sono i protocolli di base di gran parte delle reti ethernet esistenti. In pratica ti dovranno fornire un soft. che ti permettera' di comunicare via UDP e TCP/IP con qualunque altra periferica (es. il PC) che gestisce questo protocollo. Lato PC ogni Sistema di sviluppo per Windows o per Linux ti mette a disposizioni le analoghe funzioni di comunicazione dei due medesimi protocolli. Costruire un Web server HTTP sulla periferica e' una cosa non da poco che non so se mai sia stata realizzata a prezzi accessibili. Il TCP/IP prevede gia' la tipologia Server/Client, e per comunicare non hai assolutamente bisogno d'altro salvo crearti un semplice protocollo del tipo ad esempio:
(c) Mi connetto ->
(s) Connessione OK ->
(c) Inviami questo dato ->
(s) Dato inviato ->
(c) Conferma dato ricevuto ->
(c) Chiudo la connessione
Il tutto sotto controllo da un'interfaccia GUI a PC fatta a tuo piacimento.
Si, lo so Per svincolarmi dalla necessita' di avere un client propietario mi piacerebbe realizzare un qualcosa tipo web server a bordo del micro Cosi' da qualunque postazione pc, dando su un browser qualsiasi un http://indirizzo_scheda:numero_porta_sensore_temperatura potrebbe restituire il valore letto dalla periferica Comuque, anche l'approccio comunicazione diretta mi interessa ovviamente, perche' semplificherebbe di molto le cose Cosa metteresti tra micro e pc ? Ciao e grazie RobertoA
Non sono esperto di reti a questo basso livello, cmq vi sono nuovi microcontrollori che hanno il Canbus (vai in Wikipedia, la rete usata nelle vetture per i segnali che non richiedono velocita'), abbastanza semplice da utilizzare, grazie alle librerie che forniscono i produttori sia lato microc. che lato PC. Per questo c'e' un'interfaccia USB-CanBus. Questa rete non e' veloce. Senno' se hai gia' scelto il microc. informati su eventuali periferiche Canbus da interfacciargli, questo il mio consiglio per la comunicazione diretta via rete tra piu' punti che non richiedano grandi prestazioni di velocita'. Per quanto riguarda l'HTTP sono poco convinto della fattiva possibilita', in quanto ogni periferica dovrebbe fungere da Server per ottenere quel che affermi e poi come ti dicevo credo che a livello di microcontrollore sia forse impossibile trovare la libreria per renderlo Server o Client HTTP, a meno non passi agli embedded, ma allora e' un'altra storia... e cmq anche per questi nutro dei dubbi.
Un'altra possibilita' e' creare un'applicazione web server sul pc (quindi interrogabile con browser da qualunque altro punto della rete) che dialoga con il dispositivo tramite: seriale, seriale virtuale usb, seriale su ethernet.
Io vorrei sperimentare l'ultima possibilita' (che e' la piu' indipendente dall'hardware e dai sistemi operativi usati) ma in questo periodo proprio non ho tempo.
utilizzando un microcontrollore che abbia gi=E0 integrato un controllore ethernet puoi fare molto. vedi il pic18F97J60, che ha gi=E0 integrata l'interfaccia per ethernet
10 base T, che basta e avanza per la tua applicazione. per=F2 risulta complicato sviluppare un web server come vuoi fare tu e come ti hanno gi=E0 fatto notare. magari =E8 pi=F9 comodo fare come ti ha gi=E0 consigliato Giorgio Padoan. oppure comprare un modulino gi=E0 fatto.
Questo e' uno dei modi possibili di funzionamento, equivalente ad una seriale su USB.
Non usando quei driver il modulo lo contatti direttemente via TCP/UDP, quindi da qualsiasi macchina, qualsiasi SO, qualsiasi luogo della terra;)
L'unica cosa e' che non fa da web server, per cui bisogna scrivere un'applicazione server (sempre su qualsiasi PC / SO ecc) che da un lato gestisca le richieste http del browser, e dall'altro invii/riceva pacchetti TCP o UDP al modulo.
"Claudio_F" ha scritto nel messaggio news:4ae350cd$0$1111$ snipped-for-privacy@reader1.news.tin.it...
Ah e' come pensavo Con questi moduli pero' non ti sleghi dall'hardware ma ti leghi indissolubilmente Infatti per 'vedere' la seriale sui pc remoti devi installare un software che permetta di simulare un com inesistente, corrispondente a quella sul modulino colegato via ethernet al pc Quello che vorrei fare io e':
- fornire lle schedine col sensore temepratura al cliente
- collegarle via ethernet allo switch
- aprire un browser e, digitando l'indirizzo opportuno, vedere la lettura dei valori sensore sul video, quindi un sistema usabile su Windows, Linux, Mac o qualsiasi altro che disponga di un browser internet Ciao e grazie RobertoA
Il dispositivo va preventivamente configurato, per cui gli si assegna indirizzo porta protocollo e modo di funzionamento (master / slave) lato ethernet, e i soliti paramentri lato RS232.
Dopo di che una qualsiasi applicazione basata su IP comunica tramite un socket che punta all'indirizzo del modulo. Tutti i bytes inviati nel socket escono come dati seriali dal modulo, e tutti i bytes ricevuti dalla seriale del modulo vengono inviati come pacchetti in rete e ritornati come stringa di bytes dal socket.
Possono esserci piu' o meno passaggi da fare a seconda che si usi un socket TCP (mettere in piedi la connessione prima di trasmettere) o UDP ("tubo" grezzo che trasferisce immediatamente tutto quello che si manda).
Tra l'altro mi sembra piu' comodo mettere insieme un server http (il web server) su un PC piuttosto che costruirlo a basso livello come firmware su un micro, ma questo dipende dal fatto se alla fine il modulo deve essere totalmente autonomo oppure no.
Non ho ancora provato di persona ma il manuale dice questo (finora ho testato solo la trasmissione UDP/IP tra due PC della lan, mettere da un lato quel modulo non dovrebbe cambiare nulla visto che fa passare i dati in modo trasparente e si limita solo a impachettarli/spachettarli dai protocolli di rete). In questo ng qualcuno ha provato quei convertitori nella modalita' "modem simulato" controllabile dal lato seriale con i comandi AT.
La modalità "modem simulato" di cui tu parli, credo sia quella descritta in dettaglio nella RFC2217.
Io sto proprio in questi giorni giocando con una RB411 mikrotik per controllare il roomba da remoto, sfruttando proprio la modalità RFC2217 (che RouterOS supporta nativamente) per inviare comandi alla piattaforma e ricevere i dati dei sensori (e per rigirare lo stream video di una IP camera a bordo del roomba)
Io ho scritto una applicazione custom, ma esiste un driver free per windows (non ricordo il nome, ce l'ho a casa) che crea una COM virtuale e si smazza tutto il protocollo in mezzo, per cui tu invii e ricevi da una COM "locale" mentre in realtà i tuoi dati arrivano ad una porta che magari sta dall'altra parte del mondo :-)
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.