Pages: [1] 2 3   Go Down
Author Topic: Ethernet sur réseau non-local ?  (Read 2423 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 89
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut à tous, je requiert votre aide suite à la réalisation d'un programme avec l'arduino UNO et l'ethernet shield officiel.
J'ai développé un programme permettant la lecture et la mise à l'état HAUT ou BAS des Pin Digital et Analogs grâce à une page HTML.
L'ensemble (page HTML) est hébérgé sur l'arduino ethernet shield mais je me rends compte que je ne peut utiliser l'ip du shield que sur un réseau local (celui de la maison).Ainsi, je vous demande s'il m'est possible de controler l'arduino ethernet shield en dehors du réseaux local.Si oui, comment ??

PS: Gratuitement (et légalement de préférence) bien sûr !! smiley-draw
Logged

Venez visiter mon site web !!
http://arduino.leforum.eu

Offline Offline
Faraday Member
**
Karma: 33
Posts: 4983
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut à tous, je requiert votre aide suite à la réalisation d'un programme avec l'arduino UNO et l'ethernet shield officiel.
J'ai développé un programme permettant la lecture et la mise à l'état HAUT ou BAS des Pin Digital et Analogs grâce à une page HTML.
L'ensemble (page HTML) est hébérgé sur l'arduino ethernet shield mais je me rends compte que je ne peut utiliser l'ip du shield que sur un réseau local (celui de la maison).Ainsi, je vous demande s'il m'est possible de controler l'arduino ethernet shield en dehors du réseaux local.Si oui, comment ??

PS: Gratuitement (et légalement de préférence) bien sûr !! smiley-draw
bonjour
je vais présupposer que tu a une box internet ? (free,orange ou autre FAI ? )
perso j'ai fait sur ma livebox (orange) une redirection de port vers l'IP locale du shield ethernet , ça fonctionne sans problemes
ATTENTION neanmoins à une chose , il te faut connaitre ton adresse IP externe si ton FAI ne t'attribue pas une IP fixe
Logged

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 330
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

et pour avoir une adresse fixe au lieu de l'ip tu peux utiliser noip ou dydns
ca marche impeccable chez moi pour un accès a mon nas donc pourquoi pas a un arduino
Logged

Offline Offline
Faraday Member
**
Karma: 33
Posts: 4983
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

et pour avoir une adresse fixe au lieu de l'ip tu peux utiliser noip ou dydns
ca marche impeccable chez moi pour un accès a mon nas donc pourquoi pas a un arduino

oui, mais avec noip, dydns ou autre "services approchants" tu mets un tiers dans la boucle  smiley-cool
Logged

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

Pour accéder à ton LAN depuis "n'importe ou dans le monde", c'est "beaucoup de tiers" qu'il faut mettre dans la boucle. Dans le cas, ou son IP n'est pas fixe, il n'est plus à un tiers près.
Logged

Offline Offline
Faraday Member
**
Karma: 33
Posts: 4983
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pour accéder à ton LAN depuis "n'importe ou dans le monde", c'est "beaucoup de tiers" qu'il faut mettre dans la boucle. Dans le cas, ou son IP n'est pas fixe, il n'est plus à un tiers près.
je parle du tiers  qui attribue une adresse IP exploitable vue de l'exterieur
si ton FAI est dans les choux , il est dans les choux  smiley-mr-green
les services tiers dynamiques là sont des tiers dont la fiabilité/pérennité/intégrité ne sont pas garanties/certifiées, ça n’empêche pas que l'utilisation soit pratique, 
il faut juste avoir à l'esprit celà  smiley-cool
Logged

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

Le tiers en question n'attribue pas une adresse IP mais un nom de domaine.
Le service qu'il gère est la diffusion aux serveurs DNS du couple "nom de domaine-adresseIP tournante de ta connexion".
J'ai rarement vu des problèmes sur ces services.
« Last Edit: May 02, 2013, 12:05:32 pm by Pac2Kro » Logged

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

ok merci de votre aide rapide donc pour résumer :
- j'ouvre le port que je déclare dans la programme sur ma box
- je vais sur dydns et je créé une adresse ip fixe (la même que celle que je déclare dans mon programme ??)

PS: pour la manip avec dydns c'est gratuit ?
Logged

Venez visiter mon site web !!
http://arduino.leforum.eu

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

donc voici le code pour m'aider :
(celui là c'est un de recup qui fonctionne en local)
Code:
//simple button GET server code to control servo and arduino pin 5
//for use with IDE 1.0
//open serial monitor to see what the arduino receives
//use the \ slash to escape the " in the html
//for use with W5100 based ethernet shields
//Powering a servo from the arduino usually DOES NOT WORK.
//note that the below bug fix may be required
// http://code.google.com/p/arduino/issues/detail?id=605
 
#include <SPI.h>
#include <Ethernet.h>
 
#include <Servo.h>
Servo myservo;  // create servo object to control a servo
 
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 1, 177 }; // ip in lan
byte gateway[] = { 192, 168, 1, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server port
 
String readString;
 
//////////////////////
 
void setup(){
 
  pinMode(6, OUTPUT); //pin selected to control
  //start Ethernet
  Ethernet.begin(mac, ip, gateway, subnet);
  server.begin();
  //the pin for the servo co
  //enable serial data print
  Serial.begin(9600);
  Serial.println("server LED test 1.0"); // so I can keep track of what is loaded
}
 
void loop(){
  // Create a client connection
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
 
        //read char by char HTTP request
        if (readString.length() < 100) {
 
          //store characters to string
          readString += c;
          //Serial.print(c);
        }
 
        //if HTTP request has ended
        if (c == '\n') {
 
          ///////////////
          Serial.println(readString); //print to serial monitor for debuging
 
          client.println("HTTP/1.1 200 OK"); //send new page
          client.println("Content-Type: text/html");
          client.println();
 
          client.println("<HTML>");
          client.println("<HEAD>");
          client.println("<meta name='apple-mobile-web-app-capable' content='yes' />");
          client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />");
          client.println("<link rel='stylesheet' type='text/css' href='http://homeautocss.net84.net/a.css' />");
          client.println("<TITLE>Home Automation</TITLE>");
          client.println("</HEAD>");
          client.println("<BODY>");
          client.println("<H1>Home Automation</H1>");
          client.println("<hr />");
          client.println("<br />");
         
          client.println("<a href=\"/?lighton\"\">Turn On Light</a>");
          client.println("<a href=\"/?lightoff\"\">Turn Off Light</a><br />");       
 
          client.println("</BODY>");
          client.println("</HTML>");
 
          delay(1);
          //stopping client
          client.stop();
 
          ///////////////////// control arduino pin
          if(readString.indexOf("?lighton") >0)//checks for on
          {
            digitalWrite(6, HIGH);    // set pin 4 high
            Serial.println("Led On");
          }
          else{
          if(readString.indexOf("?lightoff") >0)//checks for off
          {
            digitalWrite(6, LOW);    // set pin 4 low
            Serial.println("Led Off");
          }
          }
          //clearing string for next read
          readString="";
 
        }
      }
    }
  }
}

Et là, c'est le blanc...
En faite, je souhaite acceder à cette page (généré parfaitement sur mon réseaux local de livebox) mais au niveau mondial (au moins international).
J'imagine qu'il me faut une adresse IP qui n'existe pas et donc quelque chose pour la générer, j'imagine aussi qu'il faut ouvrir des ports sur la livebox et/ou modifier ceux du programme arduino.Mais comment faire ? quels ports ouvrir ? comment avoir une adresse IP statique non existante qui redirige vers l'arduino ? C'est pour ces questions que je demande votre aide.En plus (pour être un peu plus... chiant smiley-roll-blue) j'aimerai le faire gratuitement.

Merci de votre aide future
Logged

Venez visiter mon site web !!
http://arduino.leforum.eu

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

Tu n'as rien à modifier dans ton sketch.
Tout se passe au niveau de ta box.
Tu dois diriger les requêtes entrantes vers l'ip de ton arduino.
Seulement, j'espère que tu as prévu un contrôle d'accès du type "login/MDP", sinon tout le monde pourra se connecter sur ton arduino. 
Logged

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

j'ai pas prévu de système de login mais tu pourrais être plus précis sur les manips que j'ai à faire voir me guider s'il te plait ?
Car je n'ai jamais fait cela et je n'ai vraiment aucune idée de ce que je dois faire.

Merci smiley-wink
Logged

Venez visiter mon site web !!
http://arduino.leforum.eu

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

Pour des redirections de port, nous allons être ici un peu hors sujet.
Par contre, tu trouveras une foultitude de tutos sur google.

Pour comprendre le NAT : http://fr.wikipedia.org/wiki/Network_address_translation

Si ton FAI ne te fourni pas une IP fixe, regardes du coté de "dyndns" ou ses homologues.

Pour comprendre le DNS : http://fr.wikipedia.org/wiki/Domain_Name_System

De la même manière, il faudra que tu configures ta box (qui a un client dyndns) pour qu'elle fournisse la nouvelle IP à chaque changement de ton FAI, dyndns se chargera de faire la correspondance entre le nom de domaine que tu auras choisie et la nouvelle ip.

Depuis l'extérieur, tu n'auras juste qu'à taper dans ton navigateur : http://monadressedyndns
 
Logged

Offline Offline
Full Member
***
Karma: 2
Posts: 143
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si tu as une freebox, il y a un service à activer pour avoir gratuitement une ip fixe, sans tiers!
Logged

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

En faite, je souhaite acceder à cette page (généré parfaitement sur mon réseaux local de livebox) mais au niveau mondial (au moins international).

C'est une livebox.
Logged

Offline Offline
Faraday Member
**
Karma: 33
Posts: 4983
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

j'ai pas prévu de système de login mais tu pourrais être plus précis sur les manips que j'ai à faire voir me guider s'il te plait ?
Car je n'ai jamais fait cela et je n'ai vraiment aucune idée de ce que je dois faire.

Merci smiley-wink
de toutes façons dans un premier temps, IP fixe ou pas (externe), pour faire un test il faut que tu crée ta regle dans ta livebox

port entrée ----> adresse locale:port
ça se trouve dans les options avancées de ta livebox (règles NAT/PAT)
Logged

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