10/12/2017, 18:40
(Questo messaggio è stato modificato l'ultima volta il: 11/02/2018, 00:56 da LaPa.)
Salve, spero che questa guida sia utile a qualcuno.
Esistono diverse indicazioni e guide per inviare i dati rilevati dai sensori su piattaforme on-line, io ad esempio utilizzo Freeboard e ThingSpeak e questo ci permette di vedere i rilievi dei sensori collegati al nostro RPI. Tuttavia potrebbe essere utile salvare una copia dei rilievi in locale su file excel per avere una continuità delle registrazioni anche se il collegamento, per qualsiasi motivo, s’interrompe.
1) installare openpyxl sul Raspberry:
a) Se gli script dei sensori sono in Python 3 il comando è
b) se gli script dei sensori sono in Python 2 il comando è
Ora create una cartella, la mia l’ho chiamata RPIProject e copiate all’interno tutti gli script dei sensori collegati al vostro Rpi e soprattutto gli eventuali script da cui importano.
Nella stessa cartella inserite un file in .xlsx che è quello dove verranno scritti i dati. A questo proposito vi ricordo che su Raspbian c’è LibreOffice e che con l’applicazione Calc si possono creare file con estensione .xlsx. Nell’intestazione della prima colonna scrivete “data e ora”, nelle intestazioni successive ciò che rilevano i sensori (ad esempio: temperatura, umidità relativa, etc. etc.)
Ora dobbiamo creare uno script in Python che legga i sensori ed inserisca i rilievi nel foglio excel: io l’ho chiamato storing.py
In storing.py ho copiato tutti gli script in sequenza di tutti i sensori senza gli output numerici (in genere quello che c’è dopo il “print”)
poi scrivo
Al posto di “data1,data2,…..,dataN” scrivete gli output numerici dei sensori (in genere quello che c’è dopo il ‘print’ nei vari script dei sensori)
Nota bene, openpyxl non salva i grafici, pertanto se impostate un grafico derivante dai dati nel file .xlsx non ve lo ritroverete.
A questo punto dobbiamo fare in modo che il file storing.py , o come lo avete chiamato voi, venga eseguito ogni tot minuti. Ad esempio con crontab:
digitate nel terminale
oppure
si apre un file in fondo al quale potete inserire la vostra richiesta di esecuzione periodica del file storing.
Ad esempio per rilevare ogni mezz’ora: il comando da aggiungere in crontab è il seguente:
poi digitate ctrl o per salvare e ctrl x per uscire dal crontab.
Riavviate il Raspberry Pi per rendere eseguibile il crontab.
Grazie per l’attenzione
Ciao
LaPa
Esistono diverse indicazioni e guide per inviare i dati rilevati dai sensori su piattaforme on-line, io ad esempio utilizzo Freeboard e ThingSpeak e questo ci permette di vedere i rilievi dei sensori collegati al nostro RPI. Tuttavia potrebbe essere utile salvare una copia dei rilievi in locale su file excel per avere una continuità delle registrazioni anche se il collegamento, per qualsiasi motivo, s’interrompe.
1) installare openpyxl sul Raspberry:
a) Se gli script dei sensori sono in Python 3 il comando è
Codice:
sudo pip3 install openpyxl
b) se gli script dei sensori sono in Python 2 il comando è
Codice:
sudo pip2 install openpyxl
Ora create una cartella, la mia l’ho chiamata RPIProject e copiate all’interno tutti gli script dei sensori collegati al vostro Rpi e soprattutto gli eventuali script da cui importano.
Nella stessa cartella inserite un file in .xlsx che è quello dove verranno scritti i dati. A questo proposito vi ricordo che su Raspbian c’è LibreOffice e che con l’applicazione Calc si possono creare file con estensione .xlsx. Nell’intestazione della prima colonna scrivete “data e ora”, nelle intestazioni successive ciò che rilevano i sensori (ad esempio: temperatura, umidità relativa, etc. etc.)
Ora dobbiamo creare uno script in Python che legga i sensori ed inserisca i rilievi nel foglio excel: io l’ho chiamato storing.py
In storing.py ho copiato tutti gli script in sequenza di tutti i sensori senza gli output numerici (in genere quello che c’è dopo il “print”)
poi scrivo
Codice:
import datetime
import openpyxl
#scrittura della data e ora
now=datetime.datetime.now()
ora=now.strftime('%d/%m/%Y %H:%M:%S')
#scrittura dei dati nel file .xlsx
wb=openpyxl.load_workbook('/indirizzoassolutodellacartella/nomefile.xlsx')
ws=wb.active
ws.append([ora,data1,data2,…..,dataN])
wb.save('/indirizzoassolutodellacartella/nomefile.xlsx')
Al posto di “data1,data2,…..,dataN” scrivete gli output numerici dei sensori (in genere quello che c’è dopo il ‘print’ nei vari script dei sensori)
Nota bene, openpyxl non salva i grafici, pertanto se impostate un grafico derivante dai dati nel file .xlsx non ve lo ritroverete.
A questo punto dobbiamo fare in modo che il file storing.py , o come lo avete chiamato voi, venga eseguito ogni tot minuti. Ad esempio con crontab:
digitate nel terminale
Codice:
crontab -e
oppure
Codice:
sudo crontab -e
si apre un file in fondo al quale potete inserire la vostra richiesta di esecuzione periodica del file storing.
Ad esempio per rilevare ogni mezz’ora: il comando da aggiungere in crontab è il seguente:
Codice:
*/30 * * * * python /indirizzoassolutodellacartella/nomefile.py
poi digitate ctrl o per salvare e ctrl x per uscire dal crontab.
Riavviate il Raspberry Pi per rendere eseguibile il crontab.
Grazie per l’attenzione
Ciao
LaPa
With a little/big help from my friends