Lire une image sur la SDCARD du shield Ethernet

Bonsoir à tous,

je suis en train d'essayer de comprendre comment marche le couple arduino mega et ethernet shield en essayant d'afficher une page web sur un navigateur.
Avec les nombreux exemples sur le net , j'y suis arriver ça marche relativement bien.
Après j'ai mis une petit sdcard dans le shield, j'ai stocké deux images dessus ledOn.png et ledOff.png et je voudrais les faire afficher dans la page renvoyée au navigateur et la heu...c'est chaud :wink:
Quel path utiliser dans le code HTML generé pour aller chercher l'image sur la sdcard.

Merci pour votre aide
Oldchap

Dans ton esprit il faut décorréler le chemin donné dans la page HTML et le chemin sur la carte SD même si après le fait de les lier aide.

Quand tu insère une image dans une page HTML par une balise , l'image va déclencher une nouvelle requête HTML généralement indépendante.
Ce qui veut dire que dans ton code Arduino tu dois identifier quelle est l'URL demandé par le navigateur :
Si le navigateur t'envoi la requête "GET /" ou "GET /index.html" ... => tu renvoie la page index.html qui peut éventuellement contenir des éléments dynamique (valeurs de variables, code dépendant de variables, etc....
Si cette page contient une balise alors il tu vas recevoir une requête "GET /ledOn.jpg".

Tu ne dois pas présupposer que les requêtes arrive dans un ordre ou pas.
Ton code de serveur Web doit être totalement indépendant car un navigateur ou un autre peuvent faire les requêtes différemment (par exemple si tu as plusieurs images dans la page, rien ne peut te permettre de prédire l'ordre dans lequel le navigateur va les demander.

oldchap:
Bonsoir à tous,

je suis en train d'essayer de comprendre comment marche le couple arduino mega et ethernet shield en essayant d'afficher une page web sur un navigateur.
Avec les nombreux exemples sur le net , j'y suis arriver ça marche relativement bien.
Après j'ai mis une petit sdcard dans le shield, j'ai stocké deux images dessus ledOn.png et ledOff.png et je voudrais les faire afficher dans la page renvoyée au navigateur et la heu...c'est chaud :wink:
Quel path utiliser dans le code HTML generé pour aller chercher l'image sur la sdcard.

Merci pour votre aide
Oldchap

comme repondu par barbudo , ce n'est pas si simple aussi simplement :grin:
ça a été un peu discuté ici

Bonjour,

On va finir par croire que je suis payé pour dire ça, mais sache qu'il existe une librairie tout prête pour ce genre de chose :wink:
http://code.google.com/p/webduino/

Après il te reste toujours la solution du fait maison, mais bon c'est un peu galère ...

Ok barbudor,Merci pour ton aide

Donc si j ai bien compris, il faut que je parse ma requête GET /ledOn.png et qu en suite par du code arduino j envoi le fichier stocké sur la sdcard par un client.print ?

Bon ok
Y a pas une petite librairie existante qui pourrait nous aider ;-))))

Désolé skywodd je viens juste de voir ton post au sujet de la librairie
Merci je vais regarder cela de plus près

Telecharge la librairie TinyWebServer, et en plus de faire tout plein de choses interessantes, elle a deja un exemple qui correspond à ce que tu veux faire...
Si tu veux éditer le .htm pour afficher une deuxième image, sache qu'il n'y a pas de chemin sur la cart SD ce qui veut dire que tes fichiers htm ou jpeg etc... doivent être à la racinne et ensuite la balise html sera par exemple

jehuty47:
Telecharge la librairie TinyWebServer, et en plus de faire tout plein de choses interessantes, elle a deja un exemple qui correspond à ce que tu veux faire...
Si tu veux éditer le .htm pour afficher une deuxième image, sache qu'il n'y a pas de chemin sur la cart SD ce qui veut dire que tes fichiers htm ou jpeg etc... doivent être à la racinne et ensuite la balise html sera par exemple

bonsoir
sympa cette petite librarie
l'exemple upload avec l'image est impecc

et pour completer
l'ajout de type mime dans TinyWebServer.cpp est simple à faire
ce qui permet aussi de voir que le taux de transfert du shield ethernet qui partage en SPI la gestion de la SD atteint difficilement les 90 Ko/s :grin:

le taux de transfert du shield ethernet ... atteint difficilement les 90 Ko/s

Gloups!
Pas une bonne nouvelle.

barbudor:

le taux de transfert du shield ethernet ... atteint difficilement les 90 Ko/s

Gloups!
Pas une bonne nouvelle.

reste positif barbudor
c'est largement bien mieux que mes premieres connections internet avec un modem en 9600
et le minitel en 1200/75
:grin:

barbudor:

le taux de transfert du shield ethernet ... atteint difficilement les 90 Ko/s

Gloups!
Pas une bonne nouvelle.

Fallait pas espérer atteindre du 4Mo/s :wink:
90Ko/s c'est déjà pas mal quand on regarde la puissance de l'ATmega, la vitesse du port SPI et tout le bouzin derrière la librairie Ethernet.

petit fichier zip comprenant
ajout de quelques type mime dans la librarie TinyWebServeur
qq fichiers à mettre en racine d'une SD card.
la librarie là où il faut
lancer l'exemple Fileupload (verifier l'IP) .

ça ne casse pas 3 pattes aux canards d'infobarquee :grin: , mais ça permet de voir que cette petite lib est finalement bien sympa et assez souple :grin:

testé sous ide 1.00

Artouste:
et le minitel en 1200/75

ON</>
Ah le Minitel1B et le modem retournable qui m'avait permis de faire un BBS-Minitel hébergé sur un micro portable en basic (Canon X-07 ave un cable bricolé).
Après ca a été le 14400 importé "illégalement" car non certifié par France Telecom puis USRobotics 33600 et 56200... C'est loin tout cà.
OFF</>

Merci à tous pour les infos
Bon apparemment va falloir que je dépoussière mon ZX80 et mon PET de commodore ;-))))
Le Minitel c était pas mal aussi
Allez je vais étudier cet petite lib
+++