Nov 092010
 

linux serial

Catturare automaticamente, salvare e pubblicare informazioni da una porta seriale RS232

Authore: John Smitty

Questo articolo descrive come configurare un sistema che utilizzerà una installazione CLI (Command line) minimale di Linux (Ubuntu in questo esempio) per catturare informazioni da una porta seriale RS232 e caricarle ad un server ftp.

Questo è utile per applicazioni che includono la raccolta di dati provenienti da sensori o altri dispositivi seriali come packet radio amatoriali – ed utilizzeremo i dati su un sito web o su un altro computer remoto.



Il processo comporterà la partenza del programma ‘screen’ e del programma ‘minicom’ all’avvio della macchina. L’output del comando ‘screen’ sarà catturate in un file di testo. Questo file di testo sarà poi trasmesso a un server FTP usando il programma ‘lftp’, attraverso un lavoro programmato da ‘cron’.

Questo articolo non copre l’installazione di un distribuzione Linux minimale come un Ubuntu – si presuppone di avere un sistema funzionale. Quando la macchina si avvia, dovrebbe iniziare una sessione di ‘screen’ individuale, e far partire minicom (programma di comunicazione con il terminale) all’interno – e registrare i dati trasmessi da screen in un file.

per installare screen e minicom utilizzate: sudo apt-get install screen minicom

Verificate la vostra configurazione di minicom

Eseguite: sudo minicom -r ,e configurate la porta di default e cancellate la stringa di init in quanto lo script di startup gira come root. Ctrl-A o, configura ttyS0 a 1200 (o il vostro appropriato baud rate). Notate che io ho anche dovuto configurare con sudo nano /etc/minicom/minirc.dfl per farlo funzionare in maniera appropriata —anche se avevo utilizzato sudo minicom -r — questo il contenuto del mio file:

# Machine-generated file – use “minicom -s” to change parameters.

pu baudrate 1200
pu bits 8
pu parity N
pu stopbits 1
pu mhangup
pr port /dev/ttyS0

Get screen to auto-start at boot and run minicom:

In /etc/init.d, create uno script di startup: sudo nano /etc/init.d/startHAM

contenuto:

#!/bin/sh
/usr/bin/screen -d -m -L /usr/bin/minicom

Modificate il file così partirà allo startup:


sudo chmod +x /etc/init.d/startHAM
sudo update-rc.d startHAM defaults 80

Io non sono riuscito a far loggare screen passando il parametro “-L”, così ho esitato il file: sudo nano /etc/screenrc

Aggiungendo la linea< pre>log on

Si consiglia di riavviare dopo la modifica di questi file. Dopo il riavvio si può vedere se funziona digitando sudo screen -r per riprendere la sessione di screen – si dovrebbe essere in minicom e si dovrebbe essere in grado di vedere/scrivere al vostro TNC (o dispositivo).

Se funziona, potete verificare il log file – il mio è salvato direttamente in radice, quindi nano /screenlog.0

E’ anche possibile utilizzare il comando tail per vedere in tempo reale qualsiasi cosa scritta sul log con tail -f /screenlog.0

Adesso avete screen e minicom che partono all’avvio e tutto l’output del comando screen è salvato nel file screenlog.0

Adesso faciamo l’upload del file screenlog.0 sul nostro sito web utilizzando ftp:

Il programma lftp può essere utilizzato per sincronizzare files verso un server ftp (il tuo web host). Per installare lftp, scrivete: sudo apt-get install lftp

Create uno script lftp : “SyncHAM.txt” nella vostra home directory con
sudo nano SyncHAM.txt

Contenuto:

open ftp: //username:[email protected]
set ftp:ssl-allow no
mput -O /public_html/myhostbasepath /screenlog.0

-O è il percorso base sul web host, dopodiche c’e’ il percorso al nostro file (screenlog).

Nota: il ssl-allow no è opzionale se il vostro host non supporta ssl, il -R significa reverse, ovvero spedisci il file UP al server ftp.

Per verificarlo, scrivete sudo lftp SyncHAM.txt

Configurate il Cron Job
editare il file: sudo nano /etc/cron.daily/hamsync

contenuto:

#!/bin/sh
lftp -f /home/cmate/SyncHAM.txt
echo "done with SyncHAM.txt"

rendetelo eseguibile con:

sudo chmod +x hamsync

Ora si dovrebbe avere un sistema funzionale per catturare i dati dalla porta seriale e di caricarli ogni giorno sul server ftp.

Article Source: http://www.articlesbase.com/software-articles/automatically-capturing-saving-and-publishing-serial-rs232-data-to-the-web-3601874.html

About the Author

Check out http://www.n1van.com for more electronics and amateur radio related information.

Popular Posts:

Flattr this!

  One Response to “Da RS232 al Web”

  1. You know you can use screen to pull serial directly? screen /dev/ttyS0 1200 8N1 will do the same without minicom. If it were 9600, you could just do cat /dev/ttyS0 > file.txt as well.

Leave a Reply to ZX Cancel reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

*