Offline
Jr. Member
Karma: 1
Posts: 74
|
 |
« on: December 17, 2012, 07:11:26 am » |
Buongiorno a tutti ho iniziato a eseguire letture di Temperatura da Arduino via WEB Naturalmente in locale E Tutto funziona, pero mi Sono accorto Che scrivendo il codice html Sullo sketch la Memoria SI accorcia notevolmente. Allora ho Pensato Che potevo scrivere la pagina web su sd, ma non Riesco a Capire come mandare dallo sketch"Temperatura" alla Pagina Creata da me .... qualcuno può illuminarmi? Grazie
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Sr. Member
Karma: 4
Posts: 387
|
 |
« Reply #1 on: December 17, 2012, 07:13:14 am » |
Non Saprei Proprio. 
|
|
|
|
|
Logged
|
|
|
|
|
Genova
Offline
Edison Member
Karma: 14
Posts: 2451
|
 |
« Reply #2 on: December 17, 2012, 07:32:53 am » |
Hai già fatto questa domanda identica qui http://arduino.cc/forum/index.php/topic,137820.msg1035551.html#msg1035551ti basta un UP e riprendere il post senza farne uno nuovo. Per la domanda che hai fatto, su questo forum e su google trovi molto da provare, studiare, modificare ecc non ci vuole molto google "arduino web sd" La domanda è troppo generica, per risponderti bisognerebbe postarti il lavoro completo, inizia a fare qualcosa e poi ti si può rispondere a un intoppo o una incomprensione del codice ciao
|
|
|
|
« Last Edit: December 17, 2012, 07:38:10 am by pablos »
|
Logged
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
Verona
Offline
Jr. Member
Karma: 0
Posts: 78
|
 |
« Reply #3 on: December 17, 2012, 07:33:43 am » |
dai un'occhiata all'ottimo lavoro di kattivik76 http://arduino.cc/forum/index.php/topic,63747.0.htmlSe non capisci qualcosa chiedi pure, ci sto "smanettando" da un po' su webserverSD
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Sr. Member
Karma: 4
Posts: 387
|
 |
« Reply #4 on: December 17, 2012, 07:35:20 am » |
non può fare up perchè è il forum vecchio, doveva rifare il post
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 1
Posts: 74
|
 |
« Reply #5 on: December 17, 2012, 08:28:14 am » |
ho visto che c'e' qualcosa su internet ma io sono all'inizi e poco si capisce, io chiedevo solo come posso fare per leggere la temperatura di casa "ad esempio" su una pagina web che non fosse inclusa nello sketch ma messa all'esterno nella SD. Tutto qui mi basta uno spunto e poi parto in quarta.
|
|
|
|
|
Logged
|
|
|
|
|
MC
Offline
God Member
Karma: 9
Posts: 670
|
 |
« Reply #6 on: December 17, 2012, 08:35:12 am » |
Se leggi le istruzioni e gli esempi forniti su webduino lo capisci al volo come funziona QUI UN TUTORIALIo personalmente utilizzo tinywebserver , lo trovo più performante . Salut.
|
|
|
|
|
Logged
|
Vi è una spiegazione scientifica a tutto. La fede è solo quell'anello che si porta al dito dopo il matrimonio.
|
|
|
|
Offline
Jr. Member
Karma: 1
Posts: 74
|
 |
« Reply #7 on: December 17, 2012, 09:44:15 am » |
ti ringrazio ma non ci siamo.... facciamo che posto il codice che ora sto utilizzando ... //Librerie impiegate per il progetto #include <SPI.h> #include <Ethernet.h> int PIN_TEMP=0; //Assegniamo alla variabile il pin di ingresso analogico scelto float tempC; //Dichiariamo la variabile che conterrà il valore della temperatura
//Creao un array di byte per specificare il mac address byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //creo un array di byte per specificare l'indirizzo ip byte ip[] = {192,168,1,177}; //modificate questo valore in base alla vostra rete
char Data_RX;
//creao un oggetto server che rimane in ascolto sulla porta //specificata EthernetServer ArduinoServer(80);
void setup() { //inizializza lo shield con il mac e l'ip Ethernet.begin(mac, ip); //inizializza l'oggetto server ArduinoServer.begin(); }
void loop() { tempC= analogRead(PIN_TEMP)*0.5; //Leggo la temperatura dalla sonda
EthernetClient pc_client = ArduinoServer.available();
//controllo se pc_client è true if (pc_client != false) { //controllo continuamente che il client sia connesso while (pc_client.connected()) { //Controllo se ci sono byte disponibili per la lettura if (pc_client.available()) { //leggo i byte disponibili //provenienti dal client Data_RX = pc_client.read();
//Attendo che tutti i byte siano letti //quando Data_RX contiene il carattere //di nuova line capisco tutti i byte sono //stati letti if (Data_RX == '\n') { //Invio la risposta al client //invio lo status code pc_client.println("HTTP/1.1 200 OK"); //imposto il data type pc_client.println("Content-Type: text/html"); pc_client.println(); //invio codice html pc_client.print("<html><body>"); pc_client.print("<head>"); //questo codice html permette di eseguireil refresh automatico //della pagina html pc_client.print("<META HTTP-EQUIV='refresh' CONTENT='5; /'>"); pc_client.print("</head>"); pc_client.print("<p style='font-size:20px;font-family:nyala;font-weight: 500;text-shadow: 2px 2px 2px #000;'>"); pc_client.print("Temperatura Casa"); pc_client.print(" "); //inserisco nella pagina html il valore acquisito dal pin analogico pc_client.print(tempC); pc_client.write("°"); pc_client.print("</style>"); pc_client.print("</body></html>"); //aspetto 1 ms affinche la risposta giunga al browser del client delay(1); //esco dal ciclo while una volta completato l'invio della risposta break; } } } //chiudo la connessione pc_client.stop(); } }
|
|
|
|
|
Logged
|
|
|
|
|
Cagliari
Offline
Faraday Member
Karma: 49
Posts: 3030
|
 |
« Reply #8 on: December 17, 2012, 10:46:31 am » |
A parte i tanti esempi e tutorial citati. Se vuoi usare questo codice e risparmiare memoria puoi usare la funzione F(); che permette di lasciare sulla flash tutto il contenuto statico come le stringhe html. da così: //questo codice html permette di eseguire il refresh automatico //della pagina html pc_client.print("<META HTTP-EQUIV='refresh' CONTENT='5; /'>"); pc_client.print("</head>"); pc_client.print("<p style='font-size:20px;font-family:nyala;font-weight: 500;text-shadow: 2px 2px 2px #000;'>"); pc_client.print("Temperatura Casa"); pc_client.print(" "); //inserisco nella pagina html il valore acquisito dal pin analogico pc_client.print(tempC); pc_client.write("°"); pc_client.print("</style>"); a così: //questo codice html permette di eseguire il refresh automatico //della pagina html pc_client.print(F("<META HTTP-EQUIV='refresh' CONTENT='5; /'>")); pc_client.print(F("</head>")); pc_client.print(F("<p style='font-size:20px;font-family:nyala;font-weight: 500;text-shadow: 2px 2px 2px #000;'>")); pc_client.print(F("Temperatura Casa")); pc_client.print(F(" ")); //inserisco nella pagina html il valore acquisito dal pin analogico pc_client.print(tempC); pc_client.write(F("°")); pc_client.print(F("</style>")); Nota che per la variabile temp non è possibile usare la funzione F(). Occhio alle parentesi tonde.  E' facile dimenticarsene una o metterne una in più. La funzione è stata inserita nell'IDE dalla versione 1.0 e seguenti; non è disponibile con le vecchia versione 0023 e precedenti. Io comunque ti consiglio di usare la 1.0.3 uscita la settimana scorsa.
|
|
|
|
« Last Edit: December 17, 2012, 10:49:08 am by PaoloP »
|
Logged
|
|
|
|
|
Genova
Offline
Edison Member
Karma: 14
Posts: 2451
|
 |
« Reply #9 on: December 17, 2012, 12:41:27 pm » |
Leggiti questo http://arduino.cc/forum/index.php/topic,81080.0.html ne avevamo parlato un anno fa al « Reply #8 on: December 02, 2011, 09:40:17 PM » Ho migliorato e semplificato ulteriormente quel codice in un anno anche la libreria tinywebserver l'ho un po' modificata, ma il principio è lo stesso, inviare e ricevere dati dalla pag web scaricata dalla SD Quel codice è per la 22-23 ma bisogna cambiare pochissimo per farla funzionare con la 1.xx la libreria della sd non è più #include <SdFat.h> ma #include <SD.h> Se sei interessato ti scarichi la libreria per l'IDE1.0 in poi gli errori (se ce ne sono) si correggono
|
|
|
|
« Last Edit: December 17, 2012, 12:53:52 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: 1
Posts: 74
|
 |
« Reply #10 on: December 17, 2012, 02:56:49 pm » |
ah usando F non caricherei più la memoria? Beh questo è già qualcosa in più, però mi piacerebbe proprio capire bene questa cosa del web su SD, solo che essendo alle prime armi e dovendo sviluppare qualcosa di veramente grosso cercavo qualcosa di molto semplificato giusto per iniziare a capire.... ma mi sà che mi tocca accottentarmi..
|
|
|
|
|
Logged
|
|
|
|
|
Genova
Offline
Edison Member
Karma: 14
Posts: 2451
|
 |
« Reply #11 on: December 17, 2012, 03:21:02 pm » |
Se devi costruire qualcosa di molto grosso, hai già sbagliato in partenza comprando arduino  (a parte che non hai detto quale hai) e poi facendo la pagina web nello sketch. Quanto sarebbe grossa questa cosa ... che vorresti fare?
|
|
|
|
|
Logged
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 22
|
 |
« Reply #12 on: December 17, 2012, 04:28:01 pm » |
anche io avevo fatto una doamnda nella discussione vecchia... visto che non ho la ethernet shield, ma ho solo arduino uno rev 3 (sto usando ancora l'ide 0023 , faccio male?) ho installato su un pc fisso a casa ubuntu apache ,php e mysql , e "parlo con l'arduino solo tramite seriale. adesso riesco a inviare dati ad arduino dalla pagina php e qllo ke arduino mi stampa sulla seriale lo riesco a visulaizzare nella pagina html generata dal php. adesso mi kiedo, se qnd cn il php leggo la seriale invece di stamparla solo a video posso mandarla a mysql?(credo di si).
grazie a tutti
|
|
|
|
|
Logged
|
|
|
|
|
Genova
Offline
Edison Member
Karma: 14
Posts: 2451
|
 |
« Reply #13 on: December 17, 2012, 05:04:33 pm » |
Leg qi frs trv tt le difrenz ke c sn tr la vers 23 e la 1.0.3 http://arduino.cc/en/Main/ReleaseNotestnt salut
|
|
|
|
« Last Edit: December 17, 2012, 05:07:27 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: 1
Posts: 74
|
 |
« Reply #14 on: December 17, 2012, 05:19:30 pm » |
allora spiego.... io ho un'Arduino uno che mi serve per fare dei test... ovvero imparare.. A casa di un mio cliente 2 anni fa gli ho installato una bellissima centrale antifurto che fa anche della domotica. e fin qua va tutto bene. Giustamente il mio cliente mi ha chiesto....Davide ma possiamo mettere in rete questa centrale in modo che posso controllarla anche da remoto? Il mio fornitore 2 anni fa mi disse.... a breve faremo le app per android e apple cosi potranno controllare le centrali anche da remoto. A oggi queste app non le ho ancora viste... e il mio cliente è un pò deluso" giustamente". Siccome la centrale mi permette di avere input pilota per gestire il tutto o pensato.... cavolo aggiungo un'Arduino la metto in rete creo una bella paginetta in html o risolto il mio problema. Bene devo poter gestire 12 gruppi di allarmi e 12 parti domotiche... quindi scrivere tutto sul micro controllore dell'Arduino penso che sia decisamente pesante. Allora avevo pensato di utilizzare la SD per snellire lo sketch. Ma leggendo tutti i tutorial in giro la vedo proprio dura.
|
|
|
|
|
Logged
|
|
|
|
|
|