francyhacker94
Posts: 11
Joined: Wed Mar 05, 2014 12:07 pm

salvare stato LED su server online

Wed Mar 05, 2014 12:14 pm

salve a tutti,sono un appassionato di elettronica e ho cominciato ad usare il raspberry pi, ho imparato come far accendere un led alla pressione di un pulsante, il programma l'ho scritto in C...

adesso volevo tentare di salvare lo stato del led in un database che memorizzi se il led è spento o acceso e la data e l'ora di accensione e spegnimento del led, tutto su un server online...

potreste darmi qualche indicazione, tipo da dove iniziare ecc??

grazie a tutti in anticipo

Angelus88
Posts: 442
Joined: Mon May 13, 2013 9:25 am
Location: Ivrea, TO (Italy)

Re: salvare stato LED su server online

Thu Mar 06, 2014 12:47 pm

Per prima cosa ti serve un server mysql dove registrare i dati.

Code: Select all

sudo apt-get install mysql mysql-server
Poi se oltre al database vuoi ospitare anche una pagina internet, devi installare anche apache e php:

Code: Select all

sudo apt-get install apache2 php5 libapache2-mod-php5
In questo modo avrai un server web dove potrai ospitare una pagina internet, magari scritta in php, che ti fa la query sul database ovvero recupera dal database lo stato del LED e lo mostra all'interno di una pagina accessibile su Internet o solo sulla rete locale, a tua scelta.

Lo stato del LED sul database lo andrai invece a memorizzare usando il programma stesso che hai scritto in C con il quale accendi il LED.

Nel dettaglio non so dirti come fare perché non conosco C ma semplicemente se in C hai scritto, in via teorica, che alla pressione del pulsante si accende il led, aggiungi che oltre ad accendere il LED ti faccia una insert sul database ovvero ti memorizzi sul database il valore "0" se è spento e "1" se è acceso ed usando la funzione del timestamp dell'sql puoi anche automaticamente inserire data e ora dell'operazione (a patto che la data e l'ora sul raspberry siano corrette).

Installa intanto mysql, apache e php e dopo vediamo il da farsi ;)

francyhacker94
Posts: 11
Joined: Wed Mar 05, 2014 12:07 pm

Re: salvare stato LED su server online

Thu Mar 06, 2014 3:46 pm

Angelus88 wrote:Per prima cosa ti serve un server mysql dove registrare i dati.

Code: Select all

sudo apt-get install mysql mysql-server
Poi se oltre al database vuoi ospitare anche una pagina internet, devi installare anche apache e php:

Code: Select all

sudo apt-get install apache2 php5 libapache2-mod-php5
In questo modo avrai un server web dove potrai ospitare una pagina internet, magari scritta in php, che ti fa la query sul database ovvero recupera dal database lo stato del LED e lo mostra all'interno di una pagina accessibile su Internet o solo sulla rete locale, a tua scelta.

Lo stato del LED sul database lo andrai invece a memorizzare usando il programma stesso che hai scritto in C con il quale accendi il LED.

Nel dettaglio non so dirti come fare perché non conosco C ma semplicemente se in C hai scritto, in via teorica, che alla pressione del pulsante si accende il led, aggiungi che oltre ad accendere il LED ti faccia una insert sul database ovvero ti memorizzi sul database il valore "0" se è spento e "1" se è acceso ed usando la funzione del timestamp dell'sql puoi anche automaticamente inserire data e ora dell'operazione (a patto che la data e l'ora sul raspberry siano corrette).

Installa intanto mysql, apache e php e dopo vediamo il da farsi ;)
sei stato gentilissimo :)
grazie ma per far fare questo su un server esterno? cioè io vorrei fare che si il raspberry a inviare le informazioni al server online... sai darmi qualche altra delucidazione ?

in un certo senso sul raspberry non devo ospitare database o pagine html,quest'ultimi li dovrei mettere su un dominio, è questo quello a cui punto

Angelus88
Posts: 442
Joined: Mon May 13, 2013 9:25 am
Location: Ivrea, TO (Italy)

Re: salvare stato LED su server online

Thu Mar 06, 2014 3:53 pm

Bene, ancora più semplice... Devi solo preoccuparti del programma che hai scritto in C che come ti dicevo, oltre a dover attivare il LED quando premi il pulsante, deve anche collegarsi ad un server mysql dove memorizzare i dati. Il server mysql può essere locale ma può anche essere su internet, non cambia nulla.

Quando creerai l'account o aprirai comunque il dominio, ti forniranno anche l'indirizzo dove gira il server mysql, la porta, username e password e il nome del database. Può anche essere che in base al dominio scelto, il nome del database puoi anche creartelo tu.

Quindi intanto ti consiglio di scegliere su quale sito o dominio vorrai caricare la pagina internet e il database e poi in base a quello impostiamo il programma.

Angelus88
Posts: 442
Joined: Mon May 13, 2013 9:25 am
Location: Ivrea, TO (Italy)

Re: salvare stato LED su server online

Thu Mar 06, 2014 3:57 pm

Qui ad esempio c'è un tutorial che spiega come scrivere il codice in modo che il programma possa collegarsi ad un server mysql.

francyhacker94
Posts: 11
Joined: Wed Mar 05, 2014 12:07 pm

Re: salvare stato LED su server online

Thu Mar 06, 2014 3:59 pm

già fatto il dominio è operativo su altervista :) ma non riesco a capire che istruzione devo includere nel programma che ho fatto in C per fargli trasmettere i dati relativi allo stato del led...è questo quello che mi blocca!!!

francyhacker94
Posts: 11
Joined: Wed Mar 05, 2014 12:07 pm

Re: salvare stato LED su server online

Thu Mar 06, 2014 4:02 pm

Angelus88 wrote:Qui ad esempio c'è un tutorial che spiega come scrivere il codice in modo che il programma possa collegarsi ad un server mysql.
sei il mio salvatore :') mi sta facendo capire tante cose :) ti ringrazio tantissimo :)

Angelus88
Posts: 442
Joined: Mon May 13, 2013 9:25 am
Location: Ivrea, TO (Italy)

Re: salvare stato LED su server online

Thu Mar 06, 2014 4:04 pm

Figurati!! I parametri per collegarti al server mysql li hai? Tipo host, porta, ecc....?

AGGIORNAMENTO

Ho un dubbio.... Sono entrato su altervista con un account creato anni fa... Ho visto che nella sezione dedicata alla gestione del database scrivono le credenziali ovvero:
Hostname/server: localhost
Username: <mionickname>
Password: Facoltativa (puoi lasciare il campo vuoto)
Database: my_<mionickname>
Questo mi fa pensare che il server mysql sia accessibile solo se la connessione al server avvenga dal server stesso dato che come host indicano localhost.

Quando carichi una pagina php che si collega al server mysql, la pagina php è caricata su altervista e anche il server mysql si trova su altervista quindi l'host è localhost.

Ma ho paura che se la connessione al server mysql proviene dall'esterno, non possiamo usare ovviamente localhost ma forse andrebbe usato altervista.org o <nickname>.altervista.org ma la password? Se davvero è facoltativa significherebbe che tutti potrebbero collegarsi al server mysql a patto di conoscere solo la username!!

Quindi questo mi fa pensare che non puoi usare altervista se vuoi ospitare mysql...
Last edited by Angelus88 on Thu Mar 06, 2014 4:19 pm, edited 1 time in total.

francyhacker94
Posts: 11
Joined: Wed Mar 05, 2014 12:07 pm

Re: salvare stato LED su server online

Thu Mar 06, 2014 4:14 pm

Angelus88 wrote:Figurati!! I parametri per collegarti al server mysql li hai? Tipo host, porta, ecc....?
si ho tutto :) quindi per connettermi al database c'è la libreria mysql.h che mi permette di scrivere i dati relativi al led sul database e qui ci siamo... l'altro passo da fare è stamparli a video su una pagina html...

Angelus88
Posts: 442
Joined: Mon May 13, 2013 9:25 am
Location: Ivrea, TO (Italy)

Re: salvare stato LED su server online

Thu Mar 06, 2014 4:19 pm

Leggi su! Ho aggiornato il post

francyhacker94
Posts: 11
Joined: Wed Mar 05, 2014 12:07 pm

Re: salvare stato LED su server online

Thu Mar 06, 2014 4:32 pm

il progetto reale è quello di fare una raccolta punti... praticamente al raspberry viene collegato un lettore di badge che comunica con il raspberry tramite porta seriale, al passaggio della scheda nel lettore di badge il raspberry leggeva l'id della carta e deve memorizzare nel database online i punti associati a quel utente con quella scheda... è questo in sostanza quello che devo fare... mi è stato affidato dalla scuola il raspberry da poco tempo per questo chiedo molto aiuto, ma purtroppo non ho trovato molti esempi in giro che mi spiegano come fare una raccolta punti da memorizzare su un database online

Angelus88
Posts: 442
Joined: Mon May 13, 2013 9:25 am
Location: Ivrea, TO (Italy)

Re: salvare stato LED su server online

Thu Mar 06, 2014 4:37 pm

Nessun problema, quello che hai fatto fin'ora va bene come partenza. La parte di stampare i dati su una pagina internet è la più semplice. Fai una pagina in php che tramite una semplice query recupera il valore che hai precedentemente scritto con il programma in C ;)

francyhacker94
Posts: 11
Joined: Wed Mar 05, 2014 12:07 pm

Re: salvare stato LED su server online

Thu Mar 06, 2014 4:49 pm

va bene ti ringrazio per le delucidazioni :) grazie di tutto :D

Angelus88
Posts: 442
Joined: Mon May 13, 2013 9:25 am
Location: Ivrea, TO (Italy)

Re: salvare stato LED su server online

Thu Mar 06, 2014 4:54 pm

Mettiti al lavoro e se ci sono problemi ci risentiamo qui :D

francyhacker94
Posts: 11
Joined: Wed Mar 05, 2014 12:07 pm

Re: salvare stato LED su server online

Fri Mar 07, 2014 4:51 pm

ciao ieri oggi ho provato un po a cercare l'istruzione in C che mi faccia connettere alla pagina php, ma non l'ho trovata :(

Angelus88
Posts: 442
Joined: Mon May 13, 2013 9:25 am
Location: Ivrea, TO (Italy)

Re: salvare stato LED su server online

Mon Mar 10, 2014 7:33 am

Aspetta non ho capito... Che intendi per "istruzione in C per connetterti alla pagina php"?

Con il programma scritto in C devi solo limitarti ad accendere e spegnere il led e a scrivere quindi il valore sul database mysql.

Con la pagina scritta invece in PHP salvata su altervista che aprirai normalmente dal browser devi invece fare la query ovvero recuperare il valore sul database e in base a quello mostrare quello che desideri.

francyhacker94
Posts: 11
Joined: Wed Mar 05, 2014 12:07 pm

Re: salvare stato LED su server online

Thu Mar 13, 2014 2:15 pm

ciao scusa per l'imprecisione... avevo visto questo sketch per arduino: http://gaedc2.altervista.org/wp-content ... ete_01.pdf che si collegava alla pagina php, pensavo che si potesse fare anche così anche con il raspberry

Angelus88
Posts: 442
Joined: Mon May 13, 2013 9:25 am
Location: Ivrea, TO (Italy)

Re: salvare stato LED su server online

Thu Mar 13, 2014 2:40 pm

Ok, ho capito cos'ha fatto...

Quel programma invece di salvare le informazioni su un database, le invia ad una pagina PHP usando il GET.

In parole povere se su un browser scrivi il link:

Code: Select all

http://www.prova.it/index.php?id=ciao
stai praticamente mandando il valore "ciao" inserendolo in un'array alla posizione "id".

Dall'altro lato, la pagina PHP si occuperà di recuperare quel valore usando la variabile $_GET[id].

E' indifferente quindi... O il valore lo scrivi sul database usando direttamente il programma scritto in C oppure il programma può inviare il valore ad una pagina php e sarà poi la pagina php a scrivere il valore recuperato sul database.

Cambia l'approccio e il modo con cui dovrai scrivere la pagina in PHP ma è la stessa cosa! Il risultato sarà uguale in entrambi i casi.

In termini di semplicità, è più semplice usare il metodo che ha usato quel ragazzo in quanto non hai bisogno di avere direttamente accesso al database a patto che tu sappia poi PHP.

francyhacker94
Posts: 11
Joined: Wed Mar 05, 2014 12:07 pm

Re: salvare stato LED su server online

Thu Mar 13, 2014 10:45 pm

ecco come ti dicevo prima non so come far comunicare il programma con la pagina php, non trovo esempi oltre a questo che è per arduino

Angelus88
Posts: 442
Joined: Mon May 13, 2013 9:25 am
Location: Ivrea, TO (Italy)

Re: salvare stato LED su server online

Fri Mar 14, 2014 8:00 am

Piuttosto usa allora l'esempio che ti ho pubblicato prima io! Ovvero invece di usare il programma per comunicare con la pagina PHP, usa il programma per scrivere sul database mysql!

Return to “Italiano”