Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Forum Index



Shield Ethernet


 
Post new topic   Reply to topic    Simple-Duino Forum Index -> Arduino & Électronique -> Tutos
Previous topic :: Next topic  
Author Message
jaz0340
Débutant

Offline

Joined: 22 Feb 2013
Posts: 13
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Mon 24 Jun - 20:18 (2013)    Post subject: Shield Ethernet Reply with quote

PublicitéSupprimer les publicités ?
Bonjour,
Répondant à une demande je vais vous expliquer comment utiliser le shield ethernet arduino.

Tout d'abord voici comment se présente ce shield:


Ce shield vien se connecter sur votre carte arduino comme suit:


Une fois connecté les pins 13,12,11,10,4 deviennent inutilisables car les 4 premiers servent à la communication avec le shield et le numéro 4 sert à la sélection de la carte micro-sd.

Pour la programmation une librairie est disponible sur le site officiel arduino en suivant ce lien:
http://arduino.cc/en/Reference/Ethernet

Juste un petit conseil il vaut mieux avoir quelques notions d'anglais pas de bol

Bon maintenant passons au choses sérieuses voici un exemple d'utilisation du shield:

Architecture matériel utilisée:
 


Et voici deux petit bout de code que vous pourrez utiliser, ces codes vont mettre en services un serveur en mode non-connecté (UDP):

Sont but est simple:
Vous envoyez un caractère sur le serveur et il vous le renvoi.
Si vous voulez le réutiliser je vous conseille d'utiliser geany sur linux pour la programmation.


Code serveur arduino:
#include <SPI.h>
#include <Ethernet.h>

 // l'adresse MAC:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; 

//l'adresse IP de la carte :
byte ip[] = { 192, 168, 0, 15 };

// l'adresse de la passerelle du routeur
byte gateway[] = { 192, 168, 0, 1 };

// le masque de sous-réseau
byte subnet[] = { 255, 255, 255, 0 };

EthernetServer server (3000);
void setup()
{
  // initialise le composant éthernet
  Ethernet.begin(mac, ip, gateway, subnet);

  // commence à écouter le port
  server.begin();
}

void loop()
{
  // si  un client entrant se connecte, il y aura des octets disponibles à lire :
  // Client client = server.available();
 EthernetClient client = server.available();
  if (client == true) {
   // lit les octets entrants et les renvoient vers
   // les clients connectés au serveur
    server.write(client.read());
  }
}


Code client (C++ avec fonction linux)
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <strings.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

#define PORT 3000

    char BufferR[50]= {0};
    char Env [2]= {'A'};
    int sockfd;
    struct sockaddr_in svcaddr;
    struct hostent* interm;

int main (void)
{
    unsigned long addr;
    svcaddr.sin_family = AF_INET;
    svcaddr.sin_port = htons (PORT);
    addr = inet_addr("192.168.0.15");
    svcaddr.sin_addr.s_addr = addr;
    sockfd= socket(AF_INET, SOCK_STREAM, 0);
   
    connect (sockfd, (struct sockaddr*)&svcaddr, sizeof (struct sockaddr));
   
    send (sockfd ,Env , 1, 0);
    recv (sockfd, BufferR, 1, 0);
    printf ("BufferR: %s\r\n", BufferR);
    close (sockfd);
}

Voilà maintenant à vous de laisser libre cour à votre créativité, si vous avez des questions n'hésitez pas  Okay


 
____________________________
Avoir eu la chance d'être accepté en L3 STRI


Last edited by jaz0340 on Sat 14 Sep - 22:21 (2013); edited 1 time in total
Back to top
arnaud39
Débutant

Offline

Joined: 01 Apr 2013
Posts: 378
Masculin
Niveau d'éléctronique: Dieu vivant

PostPosted: Tue 25 Jun - 16:49 (2013)    Post subject: Shield Ethernet Reply with quote

Merci pour ce tuto :-)
____________________________
Ancien admin du forum, co-fondateur tutoarduino.com
Back to top
Arduino0
Débutant

Offline

Joined: 07 Apr 2013
Posts: 119
Masculin
Niveau d'éléctronique: Pro

PostPosted: Fri 28 Jun - 09:35 (2013)    Post subject: Shield Ethernet Reply with quote

je ferai un tuto plus complet plus tard . désolé de mon absence prolongée mais je suis en vacances merci.
Back to top
Display posts from previous:   
Post new topic   Reply to topic    Simple-Duino Forum Index -> Arduino & Électronique -> Tutos All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  

Index | Xooit.com free forum | Free support forum | Free forums directory | Report a violation | Cookies | Charte | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino