• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
grafico in acquisizione testo invio formato realizzare dati e per

invio dati per realizzare grafico e acquisizione in formato testo
#1
Buonasera la mia idea sarebbe di utilizzare raspberry per elaborare un file di testo già in mio possesso e frutto di precedenti misurazioni al fine di elaborare dei grafici con GNUPLOT(o applicativi simili)...( il file si aggiorna periodicamente)
Il listato in python dovrebbe prevedere un aggiornamento costante dell'acquisione del file e l'invio dei dati per determinare i grafici.
L'ideale sarebbe anche un alert con invio email al mio indirizzo gmail( quando si supera un valore soglia)

L'acquisione del file di testo avviene prelevando il file.txt all'interno di una cartella condivisa tra raspberry e una strumentazione che gira sotto windows.

il file di testo è di questo tipo 8 penso che vada ripulito da informazioni inutili,basterebbe solo data ,ora, status , valore (result name )


State Name Variables
Step Name User Interface Control
Result Name valore
Units
Iteration Date Time Time (milliseconds) Status
1 04/12/2015 15:58:56 923 Pass 0.00000
2 04/12/2015 15:58:58 432 Pass 78.16270

Pensate sia fattibile , qualcuno potrebbe darmi una mano...magari col caso semplice del prelievo della temperatura del raspberry o con un file di testo di prova....poi provereiio a farlo leggere dalla cartella condivisa qualora il mio progetto fosse attuabile.


Grazie
Risposta
#2
Ciao, non ho capito ma cercherò di darti un po di strumenti.....da quipuoi recuperare la funzione per l'invio della mail (gmail).
Qui invece trovi la spiegazione per leggere e scrivere file in python

Per il resto prova a spiegarti meglio...Wink
Buona giornata!

Inviato dal mio m2 note utilizzando Tapatalk
Il mio software non ha mai bugs. Include soltanto funzionalità casuali.


Risposta
#3
Molto semplicemente : ho un file di testo con delle misure , sta in una cartella condivisa tra Windows e raspberry,devo dire a raspberry di andarlo a leggere e prendere un valore scritto in questo file di testo è un valore che devo monitorare ...(per il momento mi accontenterei di questa parte del progetto poi so come inviare mail e anche allegati,ma mi interessa sapere se si può prendere un valore dal file .txt e monitorarlo come se fosse un valore che viene letto da un sensore)
Risposta
#4
Si, è molto semplice...devi fare uno script python...magari dopo ti faccio io qualcosa
Praticamente leggi il txt ed estrapoli il valore che assegni ad una variabile.

Dopodichè con il modulo di invio mail al posto del testo inserisci la variabile assegnata prima...quindi il dato che ti interessa....
Ho capito bene?
Inviato dal mio m2 note utilizzando Tapatalk
Il mio software non ha mai bugs. Include soltanto funzionalità casuali.


Risposta
#5
(05/12/2015, 09:03)GabrieleToselli Ha scritto: Si, è molto semplice...devi fare uno script python...magari dopo ti faccio io qualcosa
Praticamente leggi il txt ed estrapoli il valore che assegni ad una variabile.

Dopodichè con il modulo di invio mail al posto del testo inserisci la variabile assegnata prima...quindi il dato che ti interessa....
Ho capito bene?
Inviato dal mio m2 note utilizzando Tapatalk

Si grazie, è proprio questo che cerco .... grazie per l'aiuto
Risposta
#6
Ciao.
Così leggi il contenuto del txt:
Codice:
in_file = open("tuofile.txt","r")
testoletto = in_file.read()
in_file.close()
Se aggiungi un
Codice:
print testoletto
vedrai che verrà visualizzato il tuo bel txt

Fai una prima prova creando un leggo.py con
Codice:
nano leggo.py
ci scrivi dentro e poi lo esegui scrivendo
Codice:
python leggo.py
Inviare la mail invece è un pelo più complicato...
Lo script "generale" è questo:
Codice:
#!/usr/bin/env python

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEBase import MIMEBase
from email import encoders

fromaddr = "emailmittente"
tuapass = "passaccountgmail"
toaddr = "emaildestonatario"
soggetto = "soggettomail"
body = "testodainviare"
nomefile = "nomeallegatoeestensione"
# Esempio: prova.txt
percfile = "percorsoallegato"
# Esempio: /home/pi/prova.txt

msg = MIMEMultipart()

msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = soggetto

msg.attach(MIMEText(body, 'plain'))

filename = nomefile
attachment = open(percfile, "rb")

part = MIMEBase('application', 'octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= %s" % filename)

msg.attach(part)

server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(fromaddr, tuapass)
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()

Ovviamente al posto di "testodainviare" metterai la variabile testoletto.
Ti consiglio di fare qualche prova...Wink
Il mio software non ha mai bugs. Include soltanto funzionalità casuali.


Risposta
#7
Innanzitutto grazie per l'aiuto e perdonami per qualche domanda banale di troppo,ma vorrei capire come far prelevare il file .txt da una specifica cartella ad esempio presente in Home/etc/risorse/risorse Python /comune dove devo scrivere questo percorso ( ammesso che vada specificato così )
Risposta
#8
Figurati!
Citazione:in_file = open("tuofile.txt","r")
dove io ho messo tuofile.txt tu metti /home/condiviso/file.txt o comunque quello che corrisponde al percorso del file da leggere
Il mio software non ha mai bugs. Include soltanto funzionalità casuali.


Risposta
#9
(05/12/2015, 15:14)GabrieleToselli Ha scritto: Ciao.
Così leggi il contenuto del txt:

Codice:
in_file = open("tuofile.txt","r")
testoletto = in_file.read()
in_file.close()
Se aggiungi un

Codice:
print testoletto
vedrai che verrà visualizzato il tuo bel txt

Fai una prima prova creando un leggo.py con

Codice:
nano leggo.py
ci scrivi dentro e poi lo esegui scrivendo

Codice:
python leggo.py
Inviare la mail invece è un pelo più complicato...
Lo script "generale" è questo:

Codice:
#!/usr/bin/env python

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEBase import MIMEBase
from email import encoders

fromaddr = "emailmittente"
tuapass = "passaccountgmail"
toaddr = "emaildestonatario"
soggetto = "soggettomail"
body = "testodainviare"
nomefile = "nomeallegatoeestensione"
# Esempio: prova.txt
percfile = "percorsoallegato"
# Esempio: /home/pi/prova.txt

msg = MIMEMultipart()

msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = soggetto

msg.attach(MIMEText(body, 'plain'))

filename = nomefile
attachment = open(percfile, "rb")

part = MIMEBase('application', 'octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= %s" % filename)

msg.attach(part)

server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(fromaddr, tuapass)
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()

Ovviamente al posto di "testodainviare" metterai la variabile testoletto.
Ti consiglio di fare qualche prova...Wink

E' tutto chiaro e rapidamente funzionante ,ma resta il problema che io vorrei fare estrarre da raspberry di continuo questo file .txt che si aggiorna secondo dopo secondo e quindi farmi inviare la mail con l'allegato...meglio ancora sarebbe estrarre solo quei valori che superano un limite e farmi inviare la mail...il processo dovrebbe essere continuo senza che io lo vada a richiamare da raspberry il codice ( così non ha alcuna utilità per i miei scopi di monitoraggio dei valori letti)
Risposta
#10
Questo è un ciclo infinito:
Codice:
#!/usr/bin/python

while True :
   print "Eii!"
Estrapolare i valori è complicato non sapendo come è costituito il tuo file? E' un txt? Non puoi postarcelo?
Il mio software non ha mai bugs. Include soltanto funzionalità casuali.


Risposta
  


Vai al forum:


Navigazione:
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect