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:
- None Found
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.