Pages: [1] 2 3 ... 7   Go Down
Author Topic: Ethernet shield - php server - interazione  (Read 4341 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 87
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve a tutti, ho da fare un progetto di domotica. Ho alcune domande a cui non riesco a trovare delle risposte e ho deciso di scrivere qua forse qualcuno ha trovato già risposte alle stesse mie domande.
Comunque ho un arduino uno, ethernet shield, server php (xampp)

voglio fare in modo che da una pagina php mando una richiesta al ethernet server di arduino ed essa mi risponda con un valore, ok, non so se mi sono spiegato, faccio un esempio: su una pagina php voglio vedere la temperatura (che ho sul piedino A0 del mio arduino) ma lo voglio fare nel seguente modo: quando apro una pagina php per esempio temperatura.php questa mi legga il valore del piedino A0 e lo mostri a video. Io ho pensato un modo per farlo ma non ci riesco, forse perché non è proprio quello giusto, allora quando si carica la pagina temperatura.php mandi un "get" al arduino vede la richiesta è manda un get alla pagina termostato.php che mostra il valore ricevuto da arduino.

Spero che mi sono fatto spiegare, se qualcuno mi potrebbe dare una mano sarei molto grato. smiley-sad
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 40
Posts: 3436
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao, che comandi usi dal php per inviare la richiesta? Sei sicuro che Arduino sia correttamente pronto a ricevere richieste? E poi scusa le domande..... Stai usando un server free o a pagamento? Tra i 2 nel traffico in uscita e in entrata al server fa una grande differenza
Ciao
Logged

no comment

Offline Offline
Jr. Member
**
Karma: 0
Posts: 87
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao, sto usando dei semplici get. Le richiest arrivano al arduino perché li visualizzo anche con il serial monitor ma non sono sicuro che i risultati arrivano al php, ma penso che il problema sia nel fatto che leggi semplicemente il get mettendolo in una variabile $dato poi cerco di visualizzarlo con echo ma adesso voglio provare a memorizzarli in un database

Sto usando xampp, sul locale 
Logged

0
Offline Offline
Edison Member
*
Karma: 24
Posts: 2316
Have you mooed today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao,
per recuperare i dati su Arduino e visualizzarli sul browser usando una pagina php, hai 2 modi:
- fai la chiamata ad Arduino, che ti restituisce il valore richiesto; salvi questo dato su file/db; puoi quindi aprire la pagina php che ti serve per visualizzare il dato, la quale ti mostrerà il dato salvato su file/db.
Il problema di questo metodo è che è brigoso, e richiede che tu apra un'altra pagina per visualizzare il dato.
- utilizzi ajax (via jquery o simili), e all'apertura della pagina php, effettui la GET in background, andando poi a compilare un campo predefinito con il valore restituito dalla GET.
Vedi qui: http://api.jquery.com/jQuery.get/

Hai pensato poi all'alternativa, ovvero invece di utilizzare la pagina php su LAMP server, di gestire una pagina html direttamente su Arduino?
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 87
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie mille per la tua risposta, il primo modo l'ho intuito anch'io ma non credevo che sia una cosa giusta poi grazie di avermi suggerito anche l'ajax

si, ho pensato anche a quello ma volevo fare qualcosa di più speciale senza andare a scrivere ogni <br> nel sorgente di arduino e in più con il php posso manipolare i dati più facilmente

Grazie ancora per la tua risposta
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 40
Posts: 3436
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Anche il cURL in php ti fa la richiesta direttamente, header da vedere non me lo ricordo bene un tempo li usavo, ti ho chiesto se era free o a pagamento perchè nei server gratuiti i comandi header e curl vengono deliberatamente bloccati.

ciao
Logged

no comment

Castelletto Sopra Ticino, IT
Offline Offline
Full Member
***
Karma: 0
Posts: 169
Yes we can!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Io uso il primo metodo descritto
ho 2 stazioni:
1- ogni 600 secondi arduino lancia un get verso il mio webserver e nell'url inserisce i dati da loggare, la pagina che chiama è in php e fa il parsing degli argomenti loggando poi nel sistema di logging (uso linux e syslog-ng)
2- ad orari prefissati viene lanciato uno script da crontab sul mi server. parte un wget verso ardino che risponde con i dati contenuti nella pagina (non html, ma txt). il file generato dal wget viene analizzato e i dati vengono loggati (il parsing lo faccio con python)
Quando poi dall'interno di casa mia chiamo il mio sito con i dati, degli altri script in python (chiamati da php) analizzano i log e riportando solo parti interessanti o generano grafici (con openflashchart)

ciao teo
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 87
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

sarebbe bello vedere anche il cUrl

allora io ho da fare un piccolo progetto perché l'ho scelto proprio come tesina per la maturità, quindi voglio fare un piccolo modellino di una casa dove mettere dei sensori di temperatura, ldr... un paio di led per l'illuminazione e magari se riesco a mettere anche qualche servo per delle porte o qualcosa del genere

con questo progetto riesco a mettere insieme elettronica informatica sistemi e anche statistica quindi mi pare ottimo, se avrò tempo ho in mente di fare anche un'applicazione per iPhone oppure mi limito a un piccolo sito scritto in php

è bello come idea ma mi sembra che quello con jQuery sia migliore nel mio caso boh.. vediamo se riesco a fare qualcosa
Logged

0
Offline Offline
Edison Member
*
Karma: 24
Posts: 2316
Have you mooed today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
è bello come idea ma mi sembra che quello con jQuery sia migliore nel mio caso boh.. vediamo se riesco a fare qualcosa

..se poi passi di qua:
http://jquerymobile.com/
 smiley-razz
Logged

Bergamo
Offline Offline
God Member
*****
Karma: 1
Posts: 663
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

la differenza sostanziale tra i due metodi è che jQuery è eseguito lato browser, cURL lato server (dal motore php)
ogni approccio ha pro e contro a seconda dei casi...
Logged

lucadentella.it

Genova
Offline Offline
Faraday Member
**
Karma: 40
Posts: 3436
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
voglio fare in modo che da una pagina php mando una richiesta al ethernet server di arduino ed essa mi risponda con un valore
Il php in realtà visto così sarebbe un client e arduino un webserver, quindi tanto vale che si crea una pagina html e jquery.
Se invece è arduino il primo a inviare i dati allora ha senso il file php in ascolto su server.
Dico bene o dico giusto? correggetemi se sbaglio

ciao
« Last Edit: February 15, 2012, 06:14:55 pm by pablos » Logged

no comment

Offline Offline
Jr. Member
**
Karma: 0
Posts: 87
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Intendi html e jQuery da arduino o sempre da un altro server?
Ma io vorrei anche memorizzare dei dati per poi fare dei grafici
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 40
Posts: 3436
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Certo che puoi fare i grafici raccogliendo i dati.

Dipende dalle tue necessità e quantità di dati
- Puoi fare arduino webserver con sd card che registra i dati (quindi indipendente), interrogarlo ogni x tempo scaricandoli da remoto e rappresentarli poi su un grafico

-Fare arduino client che spedisce costantemente i dati a un server con php in ascolto, se li memorizza su mysql database e rappresentarli su grafico

dipende un po' da cosa ti viene meglio, certo se 2 gb non ti bastano o la rappresentazione grafica deve essere fatta in tempo reale la prima soluzione è da scartare
Logged

no comment

0
Offline Offline
Edison Member
*
Karma: 24
Posts: 2316
Have you mooed today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
dipende un po' da cosa ti viene meglio, certo se 2 gb non ti bastano o la rappresentazione grafica deve essere fatta in tempo reale la prima soluzione è da scartare
non è detto  smiley
http://www.highcharts.com/demo/dynamic-update

Cmq se devi gestie e storicizzare dati, e tu puoi appoggiare a server LAMP, la soluzione già proposta e migliore é:
- Arduino con client regolarmente effettua una GET su tuo server, passando i dati da salvare;
- lato server, avrai uno script php che riceve la GET da Arduino, e salva su DB/File i valori
- lato server, avrai un'altro script (o lo stesso) che ti fa visualizzare i dati fin'ora salvati..

Si è parlato di qualcosa di analogo poco tempo fa:
http://arduino.cc/forum/index.php/topic,89530.msg680344.html#msg680344
(da qui in poi)
« Last Edit: February 15, 2012, 06:52:55 pm by pitusso » Logged

Genova
Offline Offline
Faraday Member
**
Karma: 40
Posts: 3436
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si, infatti ho detto che la prima è da scartare .... "fare arduino webserver con sd card"
Logged

no comment

Pages: [1] 2 3 ... 7   Go Up
Jump to: