Pages: [1] 2 3   Go Down
Author Topic: [help] Soulager Arduino Page Web  (Read 4119 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

Salut salut :-)

Je fais tourner un petit projet de domotique basé sur un Arduino Meag + Ethernet Shield et tout se passe plutôt bien sauf que souhaiterais alléger un peu la somme de travail que je demande a l'arduino ...

Sans trop entrer dans les détails qui vont barber la majorité d'entre vous xD
Je piloter des relays, ma télé ^^, envoie message twitter, capter la température ... via une page web

En effet l'arduino fait absolument tout : acquisition, hébergement des pages web, traitement des données ...

Je souhaiterais donc savoir si il est possible de soulager ?

Il y a beaucoup d'idée sur internet mais pas vraiment de tuto :S
Quelqu'un aurait une petite idée, VB, HTML/PHP ?

Je suis un petit nooby dans le domaine du dev web smiley-sad

Amicalement,
trigger
Logged

Massongex, Suisse
Offline Offline
Full Member
***
Karma: 3
Posts: 169
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello,
Cela ne va pas être facile avec peu de détails.
Mais sinon, le principe est de faire faire le maximum de traitement au client (javascript) et d'alléger tes pages au maximum (html "light" + css).
churchill
Logged

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

Merci pour ta réponse smiley

Mon code fait 1572 lignes alors je ne vais pas tout poster ^^

Voici les grandes lignes :

J'accède à une page web via mon navigateur ( l'arduino gère très bien le html par conte ^^).
Suivant les click sur les différents boutons des pages il y a telle ou telle réactions de l'arduino smiley


Je sais les explications c'est pas mon fort :S

Une piste pour le Java/HTML/CSS

J'ai bien trouvé http://blog.weeboo.net/tutoriel-arduino-ethernet-shield-controler-led-depuis-une-page-web/ mais impossible depuis deux jours de le mettre en place smiley-sad

Amicalement,
Trigger
Logged

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

Quote
J'ai bien trouvé http://blog.weeboo.net/tutoriel-arduino-ethernet-shield-controler-led-depuis-une-page-web/ mais impossible depuis deux jours de le mettre en place

Interessant tout ça, j'essayerais demain pour voir ce que cela donne de mon côté.

++
Logged

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

Je viens de terminer, pour le moment ce n'est pas très concluant.
Du coté PHP tout fonctionne par contre rien au niveau de la sortie de l'arduino.

Je continuerais ce soir

++
Logged

Made in Belgium
Offline Offline
God Member
*****
Karma: 1
Posts: 756
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Yop,
L'erreur ou le problème le plus souvent rencontré (constaté) sont souvent du au routage et non au code, donc je sais pas si ça peut venir de là mais bien faire attention à la redirection des ports, etc, ...
Logged


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

Bonsoir à tous smiley

Je me suis donc mis a potasser le site du zéro niveau PHP et je sens que cela va etre un peu coton ^^

Merci à tous de tester les codes a droites a gauche parce que je perdais un peu espoir ^^


Amicalement,
trigger
Logged

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

Quelqu'un a avancé sur le sujet ?
Logged

Paris
Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

j'aie utilisé un serveur pour héberger une simple  page html  qui regroupe  les boutons

Code:
<a href="off.php"><img src="image/off.gif" alt="off" width="32" height="32" border="0" align="middle" /></a> //bouton off
<a href="on.php"><img src="image/on.gif" alt="on" width="32" height="32" border="0" align="middle" /></a>//bouton on

elle appele une page en php (ici  soit on.php soit off.php )   qui ouvre des pages sur arduino 
code page on.php
Code:
<?php 
$homepage 
fopen("http://xx.xxx.xxx.xxx/on/","r");// ouvre la page on sur arduino    xx.xxx.xxx.xxx= ip arduino
header("Location: http://www.url.com"); // retourne  sur la première page des boutons 
?>

bien sur on fait une autre page pour off
pas coton   smiley-grin

le simple fait d'ouvrir une page entraine une une action d' arduino   "on"  et "off"


Code:

#include <Ethernet.h>
#include <TextFinder.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };// connexion mac
byte ip[] =  { xxx,xxx,x,xx };//  connexion ip
byte gateway[] = { xxx,xxx,x,xxx };//connexion gateway
byte subnet[] = {xxx,xxx,xxx,x  };  // connexion subnet
char buffer[8];// pour le nom de la page
Server server(xx);//port
int pinled =5;
void setup()
{ Serial.begin(9600);
  Ethernet.begin(mac, ip , gateway, subnet);
  server.begin();
  Serial.println("ok-pret");
}
void loop()
{
 pinMode(pinled,OUTPUT);
  Client client = server.available();
  if (client) {
    TextFinder  finder(client );
    while (client.connected()) {
      if (client.available()) {
        if( finder.find("GET ") ) {
          // look for the page name
          if(finder.getString( "/", "/", buffer, sizeof(buffer) ))
          {
            if(strcmp(buffer, "on") == 0)
              showOn(client);
            else if(strcmp(buffer, "off") == 0)
              showOff(client);
 else
              unknownPage(client, buffer);
          }
        }
        Serial.println();
        break;
      }
    }
   
    delay(1);
    client.stop();
  }
}

void showOn(Client client)
{
  Serial.println("on");
  sendHeader(client);
  client.println("on");
 digitalWrite(pinled, HIGH);
}

void showOff(Client client)
{
  Serial.println("off");
  sendHeader(client);
  client.println("off");
digitalWrite(pinled, LOW);
}

void unknownPage(Client client, char *page)
{
  Serial.print("Unknown : ");
  Serial.println("page");

  sendHeader(client);
  client.println("<h1>Unknown Page</h1>");
  client.println(page);
  client.println("</body></html>");
}

void sendHeader(Client client)
{
 
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println();
  client.println("<html><head><title>Web server on off</title>");
  client.println("<body>");
}



« Last Edit: February 12, 2012, 04:17:40 am by ArtBotHack » Logged

arduino processing http://www.ebooki.fr

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

Merci ArtBotHack de ton aide.

Ton exemple fonctionne, je vais pouvoir m'en inspirer.

il a juste fallu que je rajoute à ton code
Code:
#include <SPI.h>

Je reviens un plus tard avec d'autres questions, dans un nouveau post je pense  smiley

A+ et bon dimanche
 
Logged

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

Bonjour à tous,
merci beaucoup pour le code qui, je pense, va inspirer pas mal de monde smiley

Je bricole ça et reviendrais surement avec des questions :p

Encore merci
Amicalement,
Trigger
Logged

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

Bonjour,

Tu peux me détailler ces lignes de ton code, j'ai du mal à comprendre.
Je vois bien que l'on recherche les caractères "on" ou "off" mais si tu pouvais détailler chaque ligne ce serait bien  smiley

Quote
  if (client) {
    TextFinder  finder(client );
    while (client.connected()) {
      if (client.available()) {
        if( finder.find("GET ") ) {
          // look for the page name
          if(finder.getString( "/", "/", buffer, sizeof(buffer) ))
          {
            if(strcmp(buffer, "on") == 0)
              showOn(client);

et dans le php pourquoi le "r" à la fin :

Quote


Merci d'avance smiley-wink
Logged

Paris
Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour,

TextFinder  sa aide à parser  les résultats :
http://www.arduino.cc/playground/Code/TextFinder

pour la fonction : php fopen accède à une ressource (un fichier... une page web ici)
r  indique l’accès en  lecture seule...
http://php.net/manual/fr/function.fopen.php
Logged

arduino processing http://www.ebooki.fr

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

Bonjour tout le monde :=)

Je reviens vers vous car je tourne en rond depuis un moment et cela me tracasse quelque peu ...
Suite à la lecture de ce super tuto je ne suis toujours pas en mesure de faire communiquer l'Arduino avec ma page web smiley-sad

pourtant :
- installation de wamp Ok
- Copie des fichiers avec modification des ports et ip Ok
- Affichage du slider Ok en passant par http://localhost/test/index.php

mai il n'y a aucune communication et le Serial ne bouge pas

Une idée ?

Amicalement,
Trigger
Logged

Paris
Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour,
dans mon exemple c'est la page web qui communique avec ardunio et non le contraire !
client(navigateur) <=>serveur web(page php)=>serveur(arduino)
rien ne "remonte"  d'arduino
si la  communication bug le fopen du php donne une erreur (la page php n'ouvre pas  la page arduino )

envoie ton code

A++
Logged

arduino processing http://www.ebooki.fr

Pages: [1] 2 3   Go Up
Jump to: