Pages: [1]   Go Down
Author Topic: Arduino + Ethernet Shield + Page web  (Read 1743 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 152
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous, cela fait un petit moment que je bidouille mon arduino grâce à mon-club-elec.fr
Je souhaiterais faire une "textbox" (je ne suis pas bien sur du nom ^^) la petite barre à gauche du bouton Search en haut de cette page smiley

J'ai réussi tout ce qui est connexion avec le Shield Ethernet,
Cependant je ne sais pas comment coder cette petite partie, j'ai réussi à insérer des checkbox et autre mais je bloque totalement aprés.
Le but de se programme serait d'envoyer une chaine de caractère à l'arduino pour l'afficher sur un ecran LCD 16*2.

Si quelqu'un à une piste ou un petit bout de sketch pour me lancer ce serait vraiment sympa car je suis dessus depuis 2 jours ^^

Cordialement,
Trigger

[EDIT] je pensais que certaines personnes avaient déjà tenté l'experience ...

J'ai trouvé l'erreur pour afficher le label et la textbox, voici le code :

client.println(F("<label for=\"chaine\">Chaine</label> : <input type=\"text\" name=\"chaine\" id=\"chaine\" />"));
client.println(F("<INPUT type=\"submit\" value=\"Valider chaine\">"));

En espérant que quelqu'un puisse aider pour la récupération de la chaine
« Last Edit: November 24, 2011, 01:09:02 pm by trigger » Logged

La Roche sur Yon - France
Offline Offline
Newbie
*
Karma: 0
Posts: 32
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Cette partie nécessite des compétences en langage HTML (c'est un langage qui s'exécute coté client, avec ton navigateur web)
Pour afficher un "textbox", comme tu dis,c'est simple, ce qu'y l'ai moins, c'est d'exploiter les données ; car normalement, il faut réaliser un formulaire en HTML avec des balises <form> ; les champs du formulaire sont ensuite envoyés au serveur en "GET" ou "POST".


Je te conseil "le site du zero" pour tout ce qui est gestion des formulaire en HTML.
Logged

Arduino Mega 2560 R2
Shield Ethernet + SD
Arduino 1.0

Offline Offline
Edison Member
*
Karma: 17
Posts: 1967
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour,
qui dit input dit formulaire avec method POST ou GET

en html ca donne ceci
Code:
<form method="POST" action="">
<input type="checkbox" name="option1" value="toto"> toto<br>
<input type="checkbox" name="option2" value="titi" checked> titi<br>
<input type="submit" value="envoyer">
</form>
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 152
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour et merci d'avoir preté attention à mon post.

@jmatgou : oui je me suis rendu compte de cela et je effectivement sur le site du zéro pour ce qui est du HTML

@infobarquee : Merci pour ton exemple, cependant j'ai un petit bout de code que j'ai récupérer sur mon-club-elec et dont je m'inspire beaucoup :

Code:
client.println(F("<form method="post" action="http://192.168.1.10">));
client.println(F("<p>));
client.println(F("<label for="chaine">Chaine</label> : <input type="text" name="chaine" id="chaine" />));
client.println(F("<INPUT type="submit" value="Valider chaine">));
client.println(F("</p>));
client.println(F("</form>));

La page web s'affiche correctement avec la textbox et le label cependant je n'ai aucune idée de comment récuperer la chaine saisie dans la textbox, une piste ou une idée serait le bien venu smiley

Amicalement,
Trigger
Logged

Offline Offline
Edison Member
*
Karma: 17
Posts: 1967
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

essaye avec un GET au lieu de POST, pas la peine de mettre l'ip non plus.

Code:
client.println(F("<form method="get" action="">));
client.println(F("<p>));
client.println(F("<label for="chaine">Chaine</label> : <input type="text" name="chaine" id="chaine" />));
client.println(F("<INPUT type="submit" value="Valider chaine">));
client.println(F("</p>));
client.println(F("</form>));

Code:
      if (client.available()) {
        char c = client.read();
        if (readString.length() < 100)
        {
          //store characters to string
          readString += c; //replaces readString.append(c);
        } 
        //output chars to serial port
        Serial.print(c);
 //if HTTP request has ended
        if (c == '\n') {
          if (readString.indexOf("?") <0)
          {
            //on fait rien
          }
          }
          else
            //lets check if LED should be lighted
            if(readString.indexOf('chaine=test"))//test est la chaine rentrée par exemple
            {
//on fait quelque chose
}
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 152
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Yeah merci beaucoup smiley

Cependant il semble que quelque chose m’échappe, je tente de rajouter un morceau de code a celui que j'ai récupérer sur mon-club-elec ( au passage grand bravo pour les tutos de cette mine d'or).

Du coup sur la page j'ai deux boutons mais lorsque je clique sur l'un l'autre devient inexistant, il a des astuces pour lier les boutons ?

Amicalement
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 152
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut salut,
Merci à vous pour les réponses.

Je reviens pour dire que j'arrive bien à déterminer si il y eu saisie de texte ou non et faire une action en suivant.
Cependant je n'arrive pas à récupérer la chaine de caractères (pour ensuite l'afficher sur un LCd) quelqu'un à une idée ?
Logged

Aix en Provence
Offline Offline
Sr. Member
****
Karma: 2
Posts: 264
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,
Je vais avoir le même problème que toi.
Je participe à la gestation du projet de ce topic : http://arduino.cc/forum/index.php/topic,80422.0.html
Je vais avoir besoin de transférer des données depuis le web (ou au moins le réseau local dans un premier temps) qui correspondent à des plages horaires : heures et minutes de début de plage horaire et heures et minutes de fin de plage horaire.
Une (ou des) sortie(s) de l’Arduino devront être activées durant la plage horaire.
Je vais commencer d’ici peu à chercher des solutions et faire des essais, et ton travail va bien m’aider, merci.
Je me permettrai de te recontacter, d’ici quelques temps, lorsque j’en serai là, et que j’aurai très certainement des difficultés.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 152
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut salut,

Content que tu trouves des inos utiles ici, cependant si quelqu'un à une piste pour extraire la chaine de caractère saisie dans la textbox je suis preneur parce que je trottine depuis deux jours ....

Amicalement
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 152
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonsoir tout le monde !!!

Après plusieurs heures à chercher et manipuler les chaines j'ai bricolé une solution qui fonctionne !

Si ça intéresse du monde (bon ok c'est vraiment du bricolage ^^ ) :

- Il faut chercher les symboles qui sont aux extrémités de la chaine
- Couper entre ces bornes
- Et magie on récupère la chaine
- Par contre attention à la saisie de plusieurs mots à la suite ( cf code)
En gros ça donne un truc comme ça :
Code:
       int debutChaine= chaineRecue.indexOf('='); // cherche debut
       int finChaine= chaineRecue.indexOf(' ',6); // cherche fin

       maChaine = chaineRecue.substring(debutChaine+1,finChaine); // la chaine se trouve entre
       maChaineCorrige = maChaine.replace("+", " "); // les espaces sont des + dans l'url

En espérant que ça aidera du monde ++
Logged

Pages: [1]   Go Up
Jump to: