Offline
Jr. Member
Karma: 0
Posts: 80
|
 |
« on: February 15, 2012, 01:04:53 pm » |
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. 
|
|
|
|
|
Logged
|
|
|
|
|
Genova
Offline
Faraday Member
Karma: 14
Posts: 2531
|
 |
« Reply #1 on: February 15, 2012, 02:11:18 pm » |
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
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 80
|
 |
« Reply #2 on: February 15, 2012, 02:54:01 pm » |
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
Edison Member
Karma: 15
Posts: 1928
Have you mooed today?
|
 |
« Reply #3 on: February 15, 2012, 03:37:07 pm » |
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
Jr. Member
Karma: 0
Posts: 80
|
 |
« Reply #4 on: February 15, 2012, 04:23:59 pm » |
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
Faraday Member
Karma: 14
Posts: 2531
|
 |
« Reply #5 on: February 15, 2012, 05:20:23 pm » |
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
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
Castelletto Sopra Ticino, IT
Offline
Full Member
Karma: 0
Posts: 169
Yes we can!
|
 |
« Reply #6 on: February 15, 2012, 05:32:37 pm » |
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
Jr. Member
Karma: 0
Posts: 80
|
 |
« Reply #7 on: February 15, 2012, 05:41:17 pm » |
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
Edison Member
Karma: 15
Posts: 1928
Have you mooed today?
|
 |
« Reply #8 on: February 15, 2012, 05:46:12 pm » |
è 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/ 
|
|
|
|
|
Logged
|
|
|
|
|
Bergamo
Offline
God Member
Karma: 1
Posts: 585
|
 |
« Reply #9 on: February 15, 2012, 06:09:02 pm » |
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
|
|
|
|
|
Genova
Offline
Faraday Member
Karma: 14
Posts: 2531
|
 |
« Reply #10 on: February 15, 2012, 06:11:03 pm » |
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
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 80
|
 |
« Reply #11 on: February 15, 2012, 06:22:13 pm » |
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
Faraday Member
Karma: 14
Posts: 2531
|
 |
« Reply #12 on: February 15, 2012, 06:30:43 pm » |
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
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
0
Offline
Edison Member
Karma: 15
Posts: 1928
Have you mooed today?
|
 |
« Reply #13 on: February 15, 2012, 06:47:49 pm » |
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 http://www.highcharts.com/demo/dynamic-updateCmq 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
Faraday Member
Karma: 14
Posts: 2531
|
 |
« Reply #14 on: February 15, 2012, 07:01:35 pm » |
Si, infatti ho detto che la prima è da scartare .... "fare arduino webserver con sd card"
|
|
|
|
|
Logged
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
|