SlideShare una empresa de Scribd logo
1 de 12
LinuxDay 2014 
Cosa vedremo oggi 
Matteo Baccan 
Realizzazione di una stazione meteo 
Quali prodotti software sono stati utilizzati per la realizzazione della stazione 
meteo? In questo breve talk vedremo le scelte che sono state fatte per poter 
avere una GUI responsive in ambiente Raspberry Pi 
matteo@baccan.it – http://www.baccan.it 
http://www.linoxnovara.org/
LinuxDay 2014 
Chi sono? 
http://www.linoxnovara.org/ 
Matteo Baccan 
Divulgatore informatico, giornalista per 
riviste tecniche nazionali oltre 700 articoli 
per: Dev, Login, Computer Programming, 
Mokabyte. Relatore tecnico ad eventi di 
programmazione: Borland Forum 2000, 
Webbit 2004, JIP day 2005, Javaday 
(2006,2007,2010) PHPDay (2008, 2010), 
CONFSL 2010, WebTech 2010, 
Codemotin (2011,2012,2013,2014), 
Vodafone Digital Day (2014). Autore di 
Corso di C# ISBN 8881500167. Autore di 
JobCrawler e HTML2POP3 (Oltre 
900.000 download su SourceForge)
LinuxDay 2014 
Architettura 
WEB - Architettura LAMP 
A causa della potenza limitata di Raspberry Pi, è stato scelto di utilizzare uno stack LAMP per la 
realizzazione della componente Web 
- Linux - Raspbian 
- Apache 
- MySQL 
- PHP 
http://www.linoxnovara.org/
LinuxDay 2014 
Sensori 
Sensori - Python 
Alcuni dei sensori utilizzati sono forniti da Adafruit Industries. 
Oltre a fornire i sensori, Adafruit fornisce anche alcuni esempi Python di come leggere dei dati 
rilevati dai sensori stessi. 
Per questo motivo, abbiamo optato per una personalizzazione di tali programmi, in modo che 
non si limitassero a leggere i dati e a visualizzarli, ma che li andassero anche a scrivere su un 
database MySQL. 
http://www.linoxnovara.org/
LinuxDay 2014 
Prodotti opensource per la GUI 
WEB - GUI 
Per la realizzazione della GUI web sono stati utilizzati alcuni componenti grafici, ideali per la 
realizzazione di GUI responsive e in linea con gli attuali standard di mercato 
- Bootstrap – per la struttura delle pagine 
- Jquery – per il codice aggiuntivo che dinamicamente aggiorna le pagine 
- Flot – per la realizzazione dei grafici 
- Font Awesome – per le icone personalizzate 
- MetisMenu – per i menu del programma 
http://www.linoxnovara.org/
LinuxDay 2014 
Service da installare su Raspberry Pi 
Funzionamento 
Alla partenza di Raspberry viene invocato il seguente service 
'start') 
#!/bin/sh 
service apache2 start 
service mysql start 
sudo /home/pi/meteo/Adafruit_BMP085_mysql.py & 
exit 0 
touch /var/lock/subsys/meteo 
;; 
'stop') 
#!/bin/sh 
sudo kill $(ps aux | grep 'Adafruit_BMP085_mysql.py' | awk '{print $2}') 
service apache2 stop 
service mysql stop 
exit 0 
rm -f /var/lock/subsys/meteo 
;; 
*) 
echo "Usage: $0 { start | stop }" 
;; 
http://www.linoxnovara.org/
LinuxDay 2014 
Lettura tramite Python 
Lettura dei sensori 
# Initialise the BMP085 and use STANDARD mode (default value) 
# bmp = BMP085(0x77, debug=True) 
bmp = BMP085(0x77) 
# To specify a different operating mode, uncomment one of the following: 
# bmp = BMP085(0x77, 0) # ULTRALOWPOWER Mode 
# bmp = BMP085(0x77, 1) # STANDARD Mode 
# bmp = BMP085(0x77, 2) # HIRES Mode 
# bmp = BMP085(0x77, 3) # ULTRAHIRES Mode 
temp = bmp.readTemperature() 
# Read the current barometric pressure level 
pressure = bmp.readPressure() 
# To calculate altitude based on an estimated mean sea level pressure 
# (1013.25 hPa) call the function as follows, but this won't be very accurate 
altitude = bmp.readAltitude() 
http://www.linoxnovara.org/
LinuxDay 2014 
Inserimento in db MySQL 
Scrittura su MySQL 
while 1==1: 
insert = "insert into sensori(stazione,data,temperatura,pressione,altitudine) 
values('Linox','%s',%.2f,%.2f,%.2f);" % (datetime.datetime.now().strftime("%Y-%m- 
%d %H:%M:%S"), temp , (pressure / 100.0) , altitude) 
con = 0 
try: 
con = mdb.connect('192.168.2.22', 'pi', 'raspberry', 'meteo') 
cur = con.cursor() 
cur.execute( insert ) 
except _mysql.Error, e: 
print "Error %d: %s" % (e.args[0], e.args[1]) 
sys.exit(1) 
finally: 
if con: 
con.close() 
time.sleep(1); 
http://www.linoxnovara.org/
LinuxDay 2014 
Parti della GUI 
Componenti - GUI 
● Visualizzazione sensori 
- Grafici Flot aggiornati realtime tramite un webservice 
HTTP/JSON interrogato tramite Jquery 
● TimeLapsed 
- In questo caso, lettura tramite PHP della cartella 
timelapsed e visualizzazione di uno slideshow 
delle immagini catturate 
http://www.linoxnovara.org/
LinuxDay 2014 
http://www.linoxnovara.org/ 
DEMO 
DEMO
LinuxDay 2014 
Domande 
DOMANDE? 
http://www.linoxnovara.org/
LinuxDay 2014 
Come contattarmi 
http://www.linoxnovara.org/ 
Matteo Baccan 
matteo@baccan.it 
http://www.baccan.it

Más contenido relacionado

La actualidad más candente

Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Codemotion
 
CodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 2 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 2 - Corso Linux, Android e Internet of ThingsMirko Mancin
 
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of ThingsMirko Mancin
 
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxTrace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxDeveler S.r.l.
 
Primi passi con la scheda BeagleBone Black
Primi passi con la scheda BeagleBone BlackPrimi passi con la scheda BeagleBone Black
Primi passi con la scheda BeagleBone BlackOpen Makers Italy
 
Progettare e realizzare con Raspberry - Lo stretto digitale
Progettare e realizzare con Raspberry - Lo stretto digitale Progettare e realizzare con Raspberry - Lo stretto digitale
Progettare e realizzare con Raspberry - Lo stretto digitale lostrettodigitale
 
Intro BeagleBone Black - Massimiliano D'Ambrosio
Intro BeagleBone Black - Massimiliano D'AmbrosioIntro BeagleBone Black - Massimiliano D'Ambrosio
Intro BeagleBone Black - Massimiliano D'Ambrosiofirenze-gtug
 
Sistemi operativi ed iso
Sistemi operativi ed isoSistemi operativi ed iso
Sistemi operativi ed isoJacopo Grimoldi
 
Richiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriRichiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriFulvio Corno
 
Linux Embedded per l'automazione
Linux Embedded per l'automazioneLinux Embedded per l'automazione
Linux Embedded per l'automazioneDaniele Costarella
 

La actualidad más candente (13)

Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
 
CodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 2 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
 
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
 
Lotus Foundations Start - Enzo Stanzione
Lotus Foundations Start - Enzo StanzioneLotus Foundations Start - Enzo Stanzione
Lotus Foundations Start - Enzo Stanzione
 
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxTrace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
 
Da 0 all'open per PA e PMI
Da 0 all'open per PA e PMIDa 0 all'open per PA e PMI
Da 0 all'open per PA e PMI
 
Primi passi con la scheda BeagleBone Black
Primi passi con la scheda BeagleBone BlackPrimi passi con la scheda BeagleBone Black
Primi passi con la scheda BeagleBone Black
 
Progettare e realizzare con Raspberry - Lo stretto digitale
Progettare e realizzare con Raspberry - Lo stretto digitale Progettare e realizzare con Raspberry - Lo stretto digitale
Progettare e realizzare con Raspberry - Lo stretto digitale
 
Intro BeagleBone Black - Massimiliano D'Ambrosio
Intro BeagleBone Black - Massimiliano D'AmbrosioIntro BeagleBone Black - Massimiliano D'Ambrosio
Intro BeagleBone Black - Massimiliano D'Ambrosio
 
Sistemi operativi ed iso
Sistemi operativi ed isoSistemi operativi ed iso
Sistemi operativi ed iso
 
Richiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriRichiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatori
 
Media centerpc
Media centerpcMedia centerpc
Media centerpc
 
Linux Embedded per l'automazione
Linux Embedded per l'automazioneLinux Embedded per l'automazione
Linux Embedded per l'automazione
 

Destacado

Verga_ Epson Meteo
Verga_ Epson MeteoVerga_ Epson Meteo
Verga_ Epson MeteoGoWireless
 
L'allerta meteo e normativa volontariato, Regione Toscana. Riparbella 2008
L'allerta meteo e normativa volontariato, Regione Toscana. Riparbella 2008L'allerta meteo e normativa volontariato, Regione Toscana. Riparbella 2008
L'allerta meteo e normativa volontariato, Regione Toscana. Riparbella 2008Barbara Barsanti
 
Crystalweb Meteo Sat
Crystalweb Meteo SatCrystalweb Meteo Sat
Crystalweb Meteo SatPiero Sbressa
 
Interpolazione Meteo
Interpolazione MeteoInterpolazione Meteo
Interpolazione Meteosilli
 
Twitter Vigilance per Meteo e Clima
Twitter Vigilance per Meteo e ClimaTwitter Vigilance per Meteo e Clima
Twitter Vigilance per Meteo e ClimaValentina Grasso
 
Smart University: forecast weather service and "OpenData" applications to sha...
Smart University: forecast weather service and "OpenData" applications to sha...Smart University: forecast weather service and "OpenData" applications to sha...
Smart University: forecast weather service and "OpenData" applications to sha...Giuseppe Agrillo
 
Tutti pazzi per il meteo!
Tutti pazzi per il meteo!Tutti pazzi per il meteo!
Tutti pazzi per il meteo!Luca Lombroso
 
Meteobufale 2.0 Internet Festival
Meteobufale 2.0 Internet FestivalMeteobufale 2.0 Internet Festival
Meteobufale 2.0 Internet FestivalLuca Lombroso
 
Ignite IBB: Duccio Catalioto - Metwit.net è il GEO SOCIAL NETWORK dedicato al...
Ignite IBB: Duccio Catalioto - Metwit.net è il GEO SOCIAL NETWORK dedicato al...Ignite IBB: Duccio Catalioto - Metwit.net è il GEO SOCIAL NETWORK dedicato al...
Ignite IBB: Duccio Catalioto - Metwit.net è il GEO SOCIAL NETWORK dedicato al...Toscanalab
 
EmergenzePrato
EmergenzePratoEmergenzePrato
EmergenzePratoilTempe
 
Schede alberi sentiero
Schede alberi sentieroSchede alberi sentiero
Schede alberi sentieroritafaz
 
Il museo della Bora di Trieste: mostrare l'invisibile/il vento come esperienza
Il museo della Bora di Trieste: mostrare l'invisibile/il vento come esperienza Il museo della Bora di Trieste: mostrare l'invisibile/il vento come esperienza
Il museo della Bora di Trieste: mostrare l'invisibile/il vento come esperienza Associazione Nazionale Alberghi Diffusi
 
presentazione istituzionale mag015
presentazione istituzionale mag015presentazione istituzionale mag015
presentazione istituzionale mag015Adelaide Giromella
 
Le opportunità turistiche del territorio attorno al Lago di Como
Le opportunità turistiche del territorio attorno al Lago di ComoLe opportunità turistiche del territorio attorno al Lago di Como
Le opportunità turistiche del territorio attorno al Lago di ComoinnovActing
 
Presentazione meteorologia alessia
Presentazione meteorologia alessiaPresentazione meteorologia alessia
Presentazione meteorologia alessiaidigitalichiavari
 

Destacado (20)

Verga_ Epson Meteo
Verga_ Epson MeteoVerga_ Epson Meteo
Verga_ Epson Meteo
 
L'allerta meteo e normativa volontariato, Regione Toscana. Riparbella 2008
L'allerta meteo e normativa volontariato, Regione Toscana. Riparbella 2008L'allerta meteo e normativa volontariato, Regione Toscana. Riparbella 2008
L'allerta meteo e normativa volontariato, Regione Toscana. Riparbella 2008
 
Crystalweb Meteo Sat
Crystalweb Meteo SatCrystalweb Meteo Sat
Crystalweb Meteo Sat
 
Meteo-climatizziamoci
Meteo-climatizziamociMeteo-climatizziamoci
Meteo-climatizziamoci
 
Interpolazione Meteo
Interpolazione MeteoInterpolazione Meteo
Interpolazione Meteo
 
Twitter Vigilance per Meteo e Clima
Twitter Vigilance per Meteo e ClimaTwitter Vigilance per Meteo e Clima
Twitter Vigilance per Meteo e Clima
 
Smart University: forecast weather service and "OpenData" applications to sha...
Smart University: forecast weather service and "OpenData" applications to sha...Smart University: forecast weather service and "OpenData" applications to sha...
Smart University: forecast weather service and "OpenData" applications to sha...
 
Tutti pazzi per il meteo!
Tutti pazzi per il meteo!Tutti pazzi per il meteo!
Tutti pazzi per il meteo!
 
Meteobufale 2.0 Internet Festival
Meteobufale 2.0 Internet FestivalMeteobufale 2.0 Internet Festival
Meteobufale 2.0 Internet Festival
 
meteorologia 2
meteorologia 2meteorologia 2
meteorologia 2
 
Ignite IBB: Duccio Catalioto - Metwit.net è il GEO SOCIAL NETWORK dedicato al...
Ignite IBB: Duccio Catalioto - Metwit.net è il GEO SOCIAL NETWORK dedicato al...Ignite IBB: Duccio Catalioto - Metwit.net è il GEO SOCIAL NETWORK dedicato al...
Ignite IBB: Duccio Catalioto - Metwit.net è il GEO SOCIAL NETWORK dedicato al...
 
EmergenzePrato
EmergenzePratoEmergenzePrato
EmergenzePrato
 
Schede alberi sentiero
Schede alberi sentieroSchede alberi sentiero
Schede alberi sentiero
 
Meteorologia
MeteorologiaMeteorologia
Meteorologia
 
Il museo della Bora di Trieste: mostrare l'invisibile/il vento come esperienza
Il museo della Bora di Trieste: mostrare l'invisibile/il vento come esperienza Il museo della Bora di Trieste: mostrare l'invisibile/il vento come esperienza
Il museo della Bora di Trieste: mostrare l'invisibile/il vento come esperienza
 
presentazione istituzionale mag015
presentazione istituzionale mag015presentazione istituzionale mag015
presentazione istituzionale mag015
 
Sicurezza attiva!!!
Sicurezza attiva!!!Sicurezza attiva!!!
Sicurezza attiva!!!
 
Le opportunità turistiche del territorio attorno al Lago di Como
Le opportunità turistiche del territorio attorno al Lago di ComoLe opportunità turistiche del territorio attorno al Lago di Como
Le opportunità turistiche del territorio attorno al Lago di Como
 
Meteo
MeteoMeteo
Meteo
 
Presentazione meteorologia alessia
Presentazione meteorologia alessiaPresentazione meteorologia alessia
Presentazione meteorologia alessia
 

Similar a Creazione di una stazione meteo con prodotti opensource. Linux day 2014 - Linox Novara

Presentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power SystemPresentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power SystemPRAGMA PROGETTI
 
Oltre il Worker Role, da Serverless computing a VM Scale Set
Oltre il Worker Role, da Serverless computing a VM Scale SetOltre il Worker Role, da Serverless computing a VM Scale Set
Oltre il Worker Role, da Serverless computing a VM Scale SetVito Flavio Lorusso
 
Federico Massi.it - Intro alle app mobile Cordova
Federico Massi.it - Intro alle app mobile CordovaFederico Massi.it - Intro alle app mobile Cordova
Federico Massi.it - Intro alle app mobile CordovaFederico Massi
 
LinuxDay2013 - Web2py: make the web easier
LinuxDay2013 - Web2py: make the web easierLinuxDay2013 - Web2py: make the web easier
LinuxDay2013 - Web2py: make the web easierDavide Marzioni
 
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2Bkino2k
 
Un backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con SpringUn backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con SpringMarcello Teodori
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerAlessandro Mascherin
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web Appdotnetcode
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLSinergia Totale
 
DrupalGap: crea una app Android (ed iOS) con Drupal, Drupalgap ed Apache Cordova
DrupalGap: crea una app Android (ed iOS) con Drupal, Drupalgap ed Apache CordovaDrupalGap: crea una app Android (ed iOS) con Drupal, Drupalgap ed Apache Cordova
DrupalGap: crea una app Android (ed iOS) con Drupal, Drupalgap ed Apache CordovaDrupalDay
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...Codemotion
 

Similar a Creazione di una stazione meteo con prodotti opensource. Linux day 2014 - Linox Novara (20)

Presentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power SystemPresentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power System
 
cv Armando Maglio
cv Armando Magliocv Armando Maglio
cv Armando Maglio
 
Oltre il Worker Role, da Serverless computing a VM Scale Set
Oltre il Worker Role, da Serverless computing a VM Scale SetOltre il Worker Role, da Serverless computing a VM Scale Set
Oltre il Worker Role, da Serverless computing a VM Scale Set
 
Federico Massi.it - Intro alle app mobile Cordova
Federico Massi.it - Intro alle app mobile CordovaFederico Massi.it - Intro alle app mobile Cordova
Federico Massi.it - Intro alle app mobile Cordova
 
Brochure webgate400 R8
Brochure webgate400 R8Brochure webgate400 R8
Brochure webgate400 R8
 
ORM Java - Hibernate
ORM Java - HibernateORM Java - Hibernate
ORM Java - Hibernate
 
LinuxDay2013 - Web2py: make the web easier
LinuxDay2013 - Web2py: make the web easierLinuxDay2013 - Web2py: make the web easier
LinuxDay2013 - Web2py: make the web easier
 
Php for ASP.NET Developers
Php for ASP.NET DevelopersPhp for ASP.NET Developers
Php for ASP.NET Developers
 
XPages Tips & Tricks, #dd13
XPages Tips & Tricks, #dd13XPages Tips & Tricks, #dd13
XPages Tips & Tricks, #dd13
 
Html5
Html5Html5
Html5
 
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
 
Un backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con SpringUn backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con Spring
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computer
 
3DD 1e Reconfig
3DD 1e Reconfig3DD 1e Reconfig
3DD 1e Reconfig
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web App
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTML
 
DrupalGap: crea una app Android (ed iOS) con Drupal, Drupalgap ed Apache Cordova
DrupalGap: crea una app Android (ed iOS) con Drupal, Drupalgap ed Apache CordovaDrupalGap: crea una app Android (ed iOS) con Drupal, Drupalgap ed Apache Cordova
DrupalGap: crea una app Android (ed iOS) con Drupal, Drupalgap ed Apache Cordova
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
#dd12 Applicazioni a tre voci (Android e Domino)
#dd12 Applicazioni a tre voci (Android e Domino)#dd12 Applicazioni a tre voci (Android e Domino)
#dd12 Applicazioni a tre voci (Android e Domino)
 
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...
 

Más de Matteo Baccan

javaday 2006 - Tiger
javaday 2006 - Tigerjavaday 2006 - Tiger
javaday 2006 - TigerMatteo Baccan
 
Phpday 2009 php e java
Phpday 2009 php e javaPhpday 2009 php e java
Phpday 2009 php e javaMatteo Baccan
 
Javaday 2009 php e java
Javaday 2009 php e javaJavaday 2009 php e java
Javaday 2009 php e javaMatteo Baccan
 
Confsl 2010 Facebook Framework
Confsl 2010 Facebook FrameworkConfsl 2010 Facebook Framework
Confsl 2010 Facebook FrameworkMatteo Baccan
 
Stack Overflow meetup html2pop3
Stack Overflow meetup html2pop3 Stack Overflow meetup html2pop3
Stack Overflow meetup html2pop3 Matteo Baccan
 
Codemotion 2012 : Sphinx: Open Source Search Server
Codemotion 2012 : Sphinx: Open Source Search ServerCodemotion 2012 : Sphinx: Open Source Search Server
Codemotion 2012 : Sphinx: Open Source Search ServerMatteo Baccan
 
Codemotion twitter programming
Codemotion twitter programmingCodemotion twitter programming
Codemotion twitter programmingMatteo Baccan
 
Webtech 2010: twitter programming
Webtech 2010: twitter programmingWebtech 2010: twitter programming
Webtech 2010: twitter programmingMatteo Baccan
 
Webtech 2010: facebook framework
Webtech 2010: facebook frameworkWebtech 2010: facebook framework
Webtech 2010: facebook frameworkMatteo Baccan
 
Webbit 2004: Tiger, java
Webbit 2004: Tiger, javaWebbit 2004: Tiger, java
Webbit 2004: Tiger, javaMatteo Baccan
 
Webbit 2004: Aspectj
Webbit 2004: AspectjWebbit 2004: Aspectj
Webbit 2004: AspectjMatteo Baccan
 
JIPDay 2005: Xlet Java Programming
JIPDay 2005: Xlet Java ProgrammingJIPDay 2005: Xlet Java Programming
JIPDay 2005: Xlet Java ProgrammingMatteo Baccan
 
Javaday 2006: Java 5
Javaday 2006: Java 5Javaday 2006: Java 5
Javaday 2006: Java 5Matteo Baccan
 
Javaday 2007: skype4java
Javaday 2007: skype4javaJavaday 2007: skype4java
Javaday 2007: skype4javaMatteo Baccan
 
Phpday 2010: facebook php framework
Phpday 2010: facebook php frameworkPhpday 2010: facebook php framework
Phpday 2010: facebook php frameworkMatteo Baccan
 
Javaday 2010: Facebook Java Framework
Javaday 2010: Facebook Java FrameworkJavaday 2010: Facebook Java Framework
Javaday 2010: Facebook Java FrameworkMatteo Baccan
 

Más de Matteo Baccan (17)

Gmail e google app
Gmail e google appGmail e google app
Gmail e google app
 
javaday 2006 - Tiger
javaday 2006 - Tigerjavaday 2006 - Tiger
javaday 2006 - Tiger
 
Phpday 2009 php e java
Phpday 2009 php e javaPhpday 2009 php e java
Phpday 2009 php e java
 
Javaday 2009 php e java
Javaday 2009 php e javaJavaday 2009 php e java
Javaday 2009 php e java
 
Confsl 2010 Facebook Framework
Confsl 2010 Facebook FrameworkConfsl 2010 Facebook Framework
Confsl 2010 Facebook Framework
 
Stack Overflow meetup html2pop3
Stack Overflow meetup html2pop3 Stack Overflow meetup html2pop3
Stack Overflow meetup html2pop3
 
Codemotion 2012 : Sphinx: Open Source Search Server
Codemotion 2012 : Sphinx: Open Source Search ServerCodemotion 2012 : Sphinx: Open Source Search Server
Codemotion 2012 : Sphinx: Open Source Search Server
 
Codemotion twitter programming
Codemotion twitter programmingCodemotion twitter programming
Codemotion twitter programming
 
Webtech 2010: twitter programming
Webtech 2010: twitter programmingWebtech 2010: twitter programming
Webtech 2010: twitter programming
 
Webtech 2010: facebook framework
Webtech 2010: facebook frameworkWebtech 2010: facebook framework
Webtech 2010: facebook framework
 
Webbit 2004: Tiger, java
Webbit 2004: Tiger, javaWebbit 2004: Tiger, java
Webbit 2004: Tiger, java
 
Webbit 2004: Aspectj
Webbit 2004: AspectjWebbit 2004: Aspectj
Webbit 2004: Aspectj
 
JIPDay 2005: Xlet Java Programming
JIPDay 2005: Xlet Java ProgrammingJIPDay 2005: Xlet Java Programming
JIPDay 2005: Xlet Java Programming
 
Javaday 2006: Java 5
Javaday 2006: Java 5Javaday 2006: Java 5
Javaday 2006: Java 5
 
Javaday 2007: skype4java
Javaday 2007: skype4javaJavaday 2007: skype4java
Javaday 2007: skype4java
 
Phpday 2010: facebook php framework
Phpday 2010: facebook php frameworkPhpday 2010: facebook php framework
Phpday 2010: facebook php framework
 
Javaday 2010: Facebook Java Framework
Javaday 2010: Facebook Java FrameworkJavaday 2010: Facebook Java Framework
Javaday 2010: Facebook Java Framework
 

Creazione di una stazione meteo con prodotti opensource. Linux day 2014 - Linox Novara

  • 1. LinuxDay 2014 Cosa vedremo oggi Matteo Baccan Realizzazione di una stazione meteo Quali prodotti software sono stati utilizzati per la realizzazione della stazione meteo? In questo breve talk vedremo le scelte che sono state fatte per poter avere una GUI responsive in ambiente Raspberry Pi matteo@baccan.it – http://www.baccan.it http://www.linoxnovara.org/
  • 2. LinuxDay 2014 Chi sono? http://www.linoxnovara.org/ Matteo Baccan Divulgatore informatico, giornalista per riviste tecniche nazionali oltre 700 articoli per: Dev, Login, Computer Programming, Mokabyte. Relatore tecnico ad eventi di programmazione: Borland Forum 2000, Webbit 2004, JIP day 2005, Javaday (2006,2007,2010) PHPDay (2008, 2010), CONFSL 2010, WebTech 2010, Codemotin (2011,2012,2013,2014), Vodafone Digital Day (2014). Autore di Corso di C# ISBN 8881500167. Autore di JobCrawler e HTML2POP3 (Oltre 900.000 download su SourceForge)
  • 3. LinuxDay 2014 Architettura WEB - Architettura LAMP A causa della potenza limitata di Raspberry Pi, è stato scelto di utilizzare uno stack LAMP per la realizzazione della componente Web - Linux - Raspbian - Apache - MySQL - PHP http://www.linoxnovara.org/
  • 4. LinuxDay 2014 Sensori Sensori - Python Alcuni dei sensori utilizzati sono forniti da Adafruit Industries. Oltre a fornire i sensori, Adafruit fornisce anche alcuni esempi Python di come leggere dei dati rilevati dai sensori stessi. Per questo motivo, abbiamo optato per una personalizzazione di tali programmi, in modo che non si limitassero a leggere i dati e a visualizzarli, ma che li andassero anche a scrivere su un database MySQL. http://www.linoxnovara.org/
  • 5. LinuxDay 2014 Prodotti opensource per la GUI WEB - GUI Per la realizzazione della GUI web sono stati utilizzati alcuni componenti grafici, ideali per la realizzazione di GUI responsive e in linea con gli attuali standard di mercato - Bootstrap – per la struttura delle pagine - Jquery – per il codice aggiuntivo che dinamicamente aggiorna le pagine - Flot – per la realizzazione dei grafici - Font Awesome – per le icone personalizzate - MetisMenu – per i menu del programma http://www.linoxnovara.org/
  • 6. LinuxDay 2014 Service da installare su Raspberry Pi Funzionamento Alla partenza di Raspberry viene invocato il seguente service 'start') #!/bin/sh service apache2 start service mysql start sudo /home/pi/meteo/Adafruit_BMP085_mysql.py & exit 0 touch /var/lock/subsys/meteo ;; 'stop') #!/bin/sh sudo kill $(ps aux | grep 'Adafruit_BMP085_mysql.py' | awk '{print $2}') service apache2 stop service mysql stop exit 0 rm -f /var/lock/subsys/meteo ;; *) echo "Usage: $0 { start | stop }" ;; http://www.linoxnovara.org/
  • 7. LinuxDay 2014 Lettura tramite Python Lettura dei sensori # Initialise the BMP085 and use STANDARD mode (default value) # bmp = BMP085(0x77, debug=True) bmp = BMP085(0x77) # To specify a different operating mode, uncomment one of the following: # bmp = BMP085(0x77, 0) # ULTRALOWPOWER Mode # bmp = BMP085(0x77, 1) # STANDARD Mode # bmp = BMP085(0x77, 2) # HIRES Mode # bmp = BMP085(0x77, 3) # ULTRAHIRES Mode temp = bmp.readTemperature() # Read the current barometric pressure level pressure = bmp.readPressure() # To calculate altitude based on an estimated mean sea level pressure # (1013.25 hPa) call the function as follows, but this won't be very accurate altitude = bmp.readAltitude() http://www.linoxnovara.org/
  • 8. LinuxDay 2014 Inserimento in db MySQL Scrittura su MySQL while 1==1: insert = "insert into sensori(stazione,data,temperatura,pressione,altitudine) values('Linox','%s',%.2f,%.2f,%.2f);" % (datetime.datetime.now().strftime("%Y-%m- %d %H:%M:%S"), temp , (pressure / 100.0) , altitude) con = 0 try: con = mdb.connect('192.168.2.22', 'pi', 'raspberry', 'meteo') cur = con.cursor() cur.execute( insert ) except _mysql.Error, e: print "Error %d: %s" % (e.args[0], e.args[1]) sys.exit(1) finally: if con: con.close() time.sleep(1); http://www.linoxnovara.org/
  • 9. LinuxDay 2014 Parti della GUI Componenti - GUI ● Visualizzazione sensori - Grafici Flot aggiornati realtime tramite un webservice HTTP/JSON interrogato tramite Jquery ● TimeLapsed - In questo caso, lettura tramite PHP della cartella timelapsed e visualizzazione di uno slideshow delle immagini catturate http://www.linoxnovara.org/
  • 11. LinuxDay 2014 Domande DOMANDE? http://www.linoxnovara.org/
  • 12. LinuxDay 2014 Come contattarmi http://www.linoxnovara.org/ Matteo Baccan matteo@baccan.it http://www.baccan.it