Arduino Forum

International => Italiano => Generale => Topic started by: pigio on May 27, 2011, 01:01 pm

Title: Inserire immagini Arduino Ethernet shield
Post by: pigio on May 27, 2011, 01:01 pm
Salve a tutti, sono nuovo del forum.
Sto cercando di inserire un immagine in una pagina html creata da un web server arduino.
Per creare una pagina web le righe di codice html devono essere tutte nello stesso client.print("<table><tr>")
o posso andare a capo in questo modo:
client.println("<table>");
client.println("<tr>");
ecc
il problema è che non ho idea di come si faccia, vorrei evitare l'utilizzo della scheda sd perchè non sono capace di utilizzarla.

Attendo aiuti
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: dr4gone on May 27, 2011, 01:06 pm
puoi andare a capo... per rendere tutto più leggibile .
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: pigio on May 27, 2011, 01:12 pm
<head>
<style type="text/css">
<!--
body {
   font-family:"Arial Black", Gadget, sans-serif;
   font-size:small;
}
table {
   border-collapse:collapse;
   width:20%;
   margin-left:40%;
   margin-right:40%;
   outline:3px solid #C0C0C0;-moz-outline-radius:5px;
}
td {
   border:1px ridge #000;
}
a {
   border:1px ridge #000;
   text-decoration:none;
   font-size:x-small;
   color:white;
}
a.on {
   background-color:#F00;
}
a.off {
   background-color:#0C0;
}
a.on:hover{
   background-color:#900;
}
a.off:hover{
   background-color:#090;
}
-->
</style></head>
<body>
<table>
   <thead>
      <tr>
         <th colspan="3">Stazione meteorologica</th>
      </tr>
   </thead>
   <tr>
      <td>LUX</td>
      <td></td>
      <td><p>MIN</p><p>MAX</p></td>
   </tr>
   <tr>
      <td>TEMP C°</td>
      <td></td>
      <td><p>MIN</p><p>MAX</p></td>
   </tr>
   <tr>
      <td>LED</td>
      <td></td>
      <td><a class="on" href="">Acceso</a> <a class="off" href="">Spento</a></td>
   </tr>
   <tr>
      <td>VENTOLA</td>
      <td></td>
      <td></td>
   </tr>

</table>
</body>

Io ho questo codice, prima di ogni riga devo mettere il print.client?
Io l'ho inserito tutto su una riga, ma non mi carica la pagina html.
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: dr4gone on May 27, 2011, 01:29 pm
Ci ho lavorato un paio di mesetti fa.. Metti tutto nel compilatore di arduino... e vedi di che "colore" ti appaiono le scritte.. dovrebbe essere tutto in blu all'interno del print..
Cmq attento ai doppi apici ".. mi sembra che quando ci smanettavo io erano quelli il problema... li devi sostituire con quello singolo '

Provaci.. Se non riesci come ho un po di tempo ritrovo quello che ho scritto io e ti faccio sapere sicuro..
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: pigio on May 27, 2011, 01:55 pm
Grazie mille :)
e per inserire un'immagine?
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: dr4gone on May 27, 2011, 02:16 pm
io uso un dominio esterno per mettere le immagini e poi metto il link a quel dominio come un normale link a un'immagine nello sketh di arduino..

Altrimenti se ti vuoi complicare la vita puoi usare la microsd che puoi usare con l'eth shield...
Ma li la cosa si fa seria.. e lunga.. e ci devi sbattere la testa un po :D
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: pigio on May 27, 2011, 02:32 pm
accidenti non esistono altri modi??
uffi io non ho idea di come si usi la sd
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: superlol on May 27, 2011, 02:43 pm
il codice html per l'immagine è
Code: [Select]
<img src="percorso.gif/png/bmp">
riguardo ai doppi apici per non sostituirli bata mettere un carattere di escape tipo:
Code: [Select]
client.println("questa \"cosa\" funziona senza problemi");
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: pigio on May 27, 2011, 02:56 pm
ok ho capito il percorso ma dove metto l'immagine in arduino senza sd? non si può? perchè utilizzo un immagine di pochi kb per farli stare nella memoria interna arduino però non sò come inserirla in arduino e che percorso utilizzare
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: pigio on May 27, 2011, 03:10 pm
riassumendo
   
client.println("background-color:#090;");
client.println("}");
client.println("-->");
client.println("</style></head>");
client.println("<body>");
.
.
.

client.println("<tr>");
client.println(" <th colspan=/"3/">Stazione meteorologica</th>");

in quest ultima riga, </th> può darmi problemi?
Io modifico il codice in questo modo e lo rimetto in arduino e vi sò dire se mi mostrerà questa cavolo di tabella o no.
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: robitabu on May 27, 2011, 03:34 pm

Code: [Select]

client.println(" <th colspan=/"3/">Stazione meteorologica</th>");



Nooooo!!! Il carattere di escape è "\" e non "/" !!!

Title: Re: Inserire immagini Arduino Ethernet shield
Post by: dr4gone on May 27, 2011, 03:38 pm
mah.. non capisco perchè complicarsi la vita con i caratteri di escape..

Prendi un editor di testo tipo notepad++, incolla il codice e seleziona il doppio apice ".. dopodichè usa il comando per sostituire tutti gli " con ' e sei apposto in 10 secondi..

Cmq la soluzione piu immediata per l'immagine è caricarla su un dominio e richiamarla con un link...
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: lestofante on May 27, 2011, 03:47 pm

Sto cercando di inserire un immagine in una pagina html creata da un web server arduino.
il problema è che non ho idea di come si faccia, vorrei evitare l'utilizzo della scheda sd perchè non sono capace di utilizzarla.


le immagini sono troppo grosse per arduino. usa la sd o mettile su un server web esterno.
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: pigio on May 27, 2011, 04:53 pm
anche le immagini di 10kb??
comunque proverò a cercare un immagine in internet e ci copio il link allora ;)
comunque alla fine ho sostituito gli " con ' e sembra funzionare!!!
vi teno aggiornati ;)
sul mio progetto ho una fotoresistenza, un led che si accende quando è buio, un LM35 e successivamente devo mettere una stazione che misura la direzione e la velocità del vento, un sensore di prossimità ad infrarosso che mi servirà a fare qualcosa che deciderò più avanti e una ventola che si accende quando è caldo :)
Non sò che altro aggiungere.
Il tutto verrà visualizzato in una pagina web attraverso una connessione internet da un cellulare

ethernet--->internet---->internet--->cellulare
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: robitabu on May 27, 2011, 05:33 pm

Prendi un editor di testo tipo notepad++, incolla il codice e seleziona il doppio apice ".. dopodichè usa il comando per sostituire tutti gli " con ' e sei apposto in 10 secondi..


Questo è un pessimo suggerimento!

Il nostro amico vuol fare una cosa semplice, vuole scrivere la seguente stringa:
Code: [Select]

<th colspan="3">Stazione meteorologica</th>


Se vuole usare il client.println() allora deve eseguire l'escape del carattere " (virgolette).
Il modo più semplice per farlo è di usare il carattere di escape \ prima delle virgolette.

Ma usare le virgolette singole al posto delle doppie è assolutamente fuori luogo.
Certo, molti browser sono abbastanza tolleranti da concederti questo errore ma è pur sempre un errore.

Mi par di vedere ancora i miei vecchi colleghi che per per scrivere la à (la lettera a accentata) al computer scrivevano a' (cioè una a seguita da un apostrofo). Pessime abitudini!!!
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: pigio on May 27, 2011, 05:53 pm
Io ho messo le ' al posto delle "
comunque provvedo a cambiare allora!!
Forse ho un problema coi link delle immagini, vi saprò dire!
a presto!
e grazie!
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: dr4gone on May 27, 2011, 06:06 pm


Prendi un editor di testo tipo notepad++, incolla il codice e seleziona il doppio apice ".. dopodichè usa il comando per sostituire tutti gli " con ' e sei apposto in 10 secondi..


Questo è un pessimo suggerimento!


Potrebbe anche essere un pessimo suggerimento per fare un sito o un programma stabile  come si deve...
Ma visto che è il primo progettino che fa, non riusciva a risolvere con l'escape, e ancora è in fase di test, per non farlo scoraggiare gli ho indicato la via più semplice e sbrigativa.. Infatti come noti è stato in grado di risolvere i suoi problemi immediatamente, e a farlo funzionare..

Poi che sia un metodo "sbagliato" questo è un altro paio di maniche..

Come dico sempre.. l'importante è che funzioni, per le ottimizzazioni c'è sempre tempo  :smiley-mr-green:
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: superlol on May 27, 2011, 06:17 pm
a livello di web non cambia molto ma come programmazione " viene indicato come char e ' come string, o era qualcosa di simile, comunque non sono la stessa cosa ;)
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: lestofante on May 27, 2011, 06:50 pm
sia che metti le immagini su arduino o sulla sd(basta caricare le immagini collegando la sd al pc...)
devi poi prevedere nel codice che quando il client richiede l'immagine gliela invii, mi pare che si invia il binario. Se ti interessa dò un'occhiata

se usi la flash di arduino magari 10k ci sta(proprio non ricordo le dimensioni), dipende anche da che atmega stai utilizzando...

edit:

a livello di web non cambia molto ma come programmazione " viene indicato come char e ' come string, o era qualcosa di simile, comunque non sono la stessa cosa ;)


giusto, però credo che sia nell'html che in alcuni linguaggi di programmazione le ' sono equivalenti a ", proprio per evitare troppi sbatti con i caratteri di escape... però questa info prendila con le pinze
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: matti157 on May 27, 2011, 07:03 pm
le immagini le carichi su
http:\\imageshack.us

una volta caricata il sistema ti darà un collegamento da inserire nell'Arduino
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: pigio on May 28, 2011, 10:03 am
ok!
qualcuno sa come connettersi da un altro computer al mio via internet?
arduino ha indirizzo statico 192.168.1.30 nella mia rete, porta 8080 (perchè la 80 è bloccata dall isp)
sono andato nelle impostazioni del router ed ho fatto il port forwarding indirizzo 192.168.1.30 inizio porta 8080 fine porta 8080.

è corretto?
e adesso cosa dovrei fare?

ho creato una nuova discussione perchè stavo andando off topic :)
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: dr4gone on May 28, 2011, 10:49 am
Se il tuo provider non ti fornisce un indirizzo WAN statico, Quindi un indirizzo IP statico su cui sei raggiungibile da internet, devi impostare un dns dinamico.
Ci sono tanti servizi tipo No-ip oppure Dyndns.
Ti crei un dns dinamico con uno di questi provider.. Ad esempio pigio.no-ip.org o quello che vuoi.. lo inserisci nel router se hai la possibilità di farlo, e poi indirizzi il client sulla porta che hai aperto per arduino..

Ricapitolando..

Sul router --> Imposti il dns dinamico e apri la porta 8080 sull'ip che hai scelto (192.168.1.30) nel tuo caso...
Sul client,da qualsiasi browser che utilizzi da remoto, scrivi sulla barra degli indirizzi http://il tuo dns.no-ip.org:8080

Et voilà  XD
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: superlol on May 28, 2011, 01:10 pm
ti consiglio comunque un'altra porta in modo da essere meno tracciabile, come magari la 1234 o la 9999. magari anche la 2543, tutte inventate, ovvio.

ricorda che aprire la porta anche a un solo indirizzo ip è pericoloso in quanto da li è facile bucare la rete. ci vorrebbe un firewall di mezzo (intendo lo scatolotto per capirci) ma costano, i più economici (e meno sicuri) partono da circa 80€
Title: Re: Inserire immagini Arduino Ethernet shield
Post by: lestofante on May 28, 2011, 03:01 pm
dr4gone e superlol hanno ragione, ma per fare un paio di prove al volo ti basta conoscere il tuo ip pubblico, ad esempio andando su www.mioip.it
a questo punto sulla barra degli indirizzi del browser scrivi http://xx.xx.xx.xx:8080 dove xx.xx.xx.xx è il tuo ip