Pages: [1] 2   Go Down
Author Topic: web e sd  (Read 1115 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 1
Posts: 74
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Bologna
Offline Offline
God Member
*****
Karma: 5
Posts: 520
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non Saprei Proprio. smiley-razz
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 38
Posts: 3260
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hai già fatto questa domanda identica qui
http://arduino.cc/forum/index.php/topic,137820.msg1035551.html#msg1035551

ti 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

no comment

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

dai un'occhiata all'ottimo lavoro di kattivik76 http://arduino.cc/forum/index.php/topic,63747.0.html

Se non capisci qualcosa chiedi pure, ci sto "smanettando" da un po' su webserverSD
Logged

Bologna
Offline Offline
God Member
*****
Karma: 5
Posts: 520
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

non può fare up perchè è il forum vecchio, doveva rifare il post
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 74
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
God Member
*****
Karma: 14
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se leggi le istruzioni e gli esempi forniti su webduino lo capisci al volo come funziona

QUI UN TUTORIAL

Io 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 Offline
Jr. Member
**
Karma: 1
Posts: 74
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ti ringrazio ma non ci siamo.... facciamo che posto il codice che ora sto utilizzando ...


Quote
//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("&#176");
                    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, Italy
Offline Offline
Tesla Member
***
Karma: 110
Posts: 6975
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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ì:
Code:
//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("&#176");
                    pc_client.print("</style>");  

a così:
Code:
//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("&#176"));
                    pc_client.print(F("</style>"));  

Nota che per la variabile temp non è possibile usare la funzione F().
Occhio alle parentesi tonde.  smiley-roll-sweat
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

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Genova
Offline Offline
Faraday Member
**
Karma: 38
Posts: 3260
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

no comment

Offline Offline
Jr. Member
**
Karma: 1
Posts: 74
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Faraday Member
**
Karma: 38
Posts: 3260
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se devi costruire qualcosa di molto grosso, hai già sbagliato in partenza comprando arduino smiley (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

no comment

Offline Offline
Newbie
*
Karma: 0
Posts: 22
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Faraday Member
**
Karma: 38
Posts: 3260
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Leg qi frs trv tt le difrenz ke c sn tr la vers 23 e la 1.0.3   smiley-grin smiley-grin
http://arduino.cc/en/Main/ReleaseNotes
tnt salut
« Last Edit: December 17, 2012, 05:07:27 pm by pablos » Logged

no comment

Offline Offline
Jr. Member
**
Karma: 1
Posts: 74
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Pages: [1] 2   Go Up
Jump to: