Go Down

Topic: Lire une image sur la SDCARD du shield Ethernet (Read 3062 times) previous topic - next topic

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 ;-)
Quel path utiliser dans le code HTML generé pour aller chercher l'image sur la sdcard.

Merci pour votre aide
Oldchap
-------
ARDUINO UNO
ARDUINO NANO
ARDUINO MEGA2560
mikroMMB

barbudor

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 <img src="URL">, 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 <img src="ledOn.jpg"> 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.
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Artouste


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 ;-)
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  :smiley-mr-green:
ça a été un peu discuté ici
http://arduino.cc/forum/index.php/topic,70611.msg524451.html#msg524451

skywodd

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 ;)
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 ...
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

oldchap

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 ;-))))
-------
ARDUINO UNO
ARDUINO NANO
ARDUINO MEGA2560
mikroMMB

oldchap

Désolé skywodd je viens juste de voir ton post au sujet de la librairie
Merci je vais regarder cela de plus près
-------
ARDUINO UNO
ARDUINO NANO
ARDUINO MEGA2560
mikroMMB

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 <img src=logo.jpg>

Artouste

#7
May 08, 2012, 08:16 pm Last Edit: May 09, 2012, 01:29 pm by Artouste Reason: 1

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 <img src=logo.jpg>

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


Artouste

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  :smiley-mr-green:

barbudor

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


Gloups!
Pas une bonne nouvelle.
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Artouste


Quote
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
:smiley-mr-green:

skywodd


Quote
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 ;)
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.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Artouste

#12
May 09, 2012, 07:02 pm Last Edit: May 09, 2012, 07:03 pm by Artouste Reason: 1
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   :smiley-mr-green:  , mais ça permet de voir que cette petite lib est finalement bien sympa et assez souple :smiley-mr-green:

http://cjoint.com/?BEjtbJ8jUEF

testé sous ide 1.00

barbudor


et le minitel en 1200/75

<mode z-avez-pas-connu-ca-les-jeunes>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à.
<mode z-avez-pas-connu-ca-les-jeunes>OFF</>
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

oldchap

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
+++
-------
ARDUINO UNO
ARDUINO NANO
ARDUINO MEGA2560
mikroMMB

Go Up