Arduino, Tutoriels

Comment utiliser ENC28J60 Module Ethernet avec Arduino

Module Ethernet Enc28J60 Avec Arduino

Introduction au Module Ethernet ENC28J60

Vente Module Ethernet Réseau Lan Enc28J60 Au Maroc

Le module Ethernet ENC28J60 est un module de communication réseau conçu pour les systèmes embarqués. Il est équipé d’un contrôleur Ethernet intégré, qui permet aux dispositifs tels que les microcontrôleurs et les ordinateurs de petite taille de se connecter à Internet. Ce module est facile à utiliser et à intégrer dans un système, offrant ainsi une solution rentable et fiable pour la communication réseau.

Caractéristiques

Le module ENC28J60 est doté de plusieurs caractéristiques importantes, telles que :

  • Connexion Ethernet 10 Mbps : ce module est conçu pour la communication Ethernet 10 Mbps, ce qui permet une connexion rapide et fiable à Internet.
  • Interface SPI : le module ENC28J60 utilise une interface SPI, qui est une interface de communication rapide et facile à utiliser.
  • Alimentation électrique : ce module peut être alimenté par une tension de 3,3 V à 5 V, ce qui le rend compatible avec une large gamme de systèmes embarqués.
  • Taille compacte : le module ENC28J60 mesure seulement 27 x 33 mm, ce qui le rend facile à intégrer dans un système de petite taille.
  • Économie d’énergie : ce module est conçu pour utiliser peu d’énergie, ce qui le rend parfait pour les systèmes embarqués à faible consommation d’énergie.

Les avantages du Module Ethernet ENC28J60

Le module Ethernet ENC28J60 offre de nombreux avantages, tels que :

  • Simplicité d’utilisation : ce module est facile à utiliser et à intégrer dans un système, ce qui en fait une solution idéale pour les développeurs débutants.
  • Flexibilité : le module ENC28J60 peut être utilisé avec une large gamme de systèmes embarqués, ce qui en fait une solution flexible pour les projets de développement de réseau.
  • Rentabilité : le module ENC28J60 est abordable et économique, ce qui en fait une solution rentable pour les petits projets de développement de réseau.
  • Fiabilité : le module ENC28J60 est conçu pour fonctionner de manière fiable et stable, ce qui en fait une solution fiable pour les projets de développement de réseau.

Les broches du Module Ethernet ENC28J60

Le module Ethernet ENC28J60 comporte 28 broches, dont les fonctions les plus importantes sont :

  1. VCC : Alimentation en 5V
  2. GND : Masse
  3. SCK : Horloge Synchronisation
  4. SI : entrée de données pour SPI
  5. SO : sortie de données pour SPI
  6. CS : sélection du périphérique pour SPI
  7. INT : Interrupt Request
  8. RESET : pour réinitialiser le module
  9. RXD : entrée de données Ethernet
  10. TXD : sortie de données Ethernet
  11. RD+ et RD- : entrées pour les signaux de détection de liaison
  12. TD+ et TD- : sorties pour les signaux de transmission de liaison.

Principe de fonctionnement du Module Ethernet ENC28J60

Le module ENC28J60 utilise un contrôleur Ethernet intégré pour permettre aux systèmes embarqués de se connecter à Internet. Le contrôleur Ethernet utilise une interface SPI pour communiquer avec le système embarqué. Le système embarqué peut envoyer et recevoir

des données à travers le module ENC28J60, ce qui permet une communication réseau fiable et rapide.

Le module ENC28J60 peut être utilisé pour la communication de différents types de protocoles de réseau, tels que TCP, UDP et ICMP. Cela permet aux systèmes embarqués de communiquer avec d’autres dispositifs réseau tels que des ordinateurs, des serveurs et des périphériques IoT.

Lorsqu’un système embarqué envoie une requête à travers le module ENC28J60, le contrôleur Ethernet intégré formate la requête selon le protocole de réseau choisi et l’envoie à travers le réseau. Lorsqu’une réponse est reçue, le contrôleur Ethernet déformate les données reçues et les transmet au système embarqué.

Utilisation du Module Ethernet ENC28J60 avec Arduino

Arduino Ethernet Connected
Module Ethernet Enc28J60 Avec Arduino

L’ENC28J60 est un module Ethernet facile à utiliser qui permet de connecter un microcontrôleur, tel qu’un Arduino, à un réseau Ethernet. Il est équipé d’un contrôleur Ethernet intégré et d’une interface SPI, ce qui facilite la communication entre l’Arduino et le module. Nous allons vous montrer comment connecter un ENC28J60 Ethernet Shield à un Arduino et comment utiliser un simple exemple de code pour tester la connexion.

De quoi avons-nous besoin ?

Les étapes pour connecter l’ENC28J60 à l’Arduino

  1. Le branchement du module Ethernet ENC28J60 avec l’Arduino est simple. Vous avez besoin de connecter les broches du module à celles de l’Arduino comme suit:
    • VCC -> 3.3V
    • GND -> GND
    • SCK -> Pin 13
    • SO -> Pin 12
    • SI -> Pin 11
    • CS -> Pin 10
  2. Connectez le câble Ethernet entre le Shield Ethernet ENC28J60 et votre ordinateur.
  3. Téléchargez et installez le bibliothèque EtherShield sur votre ordinateur. Vous pouvez la trouver sur le site Internet de la bibliothèque EtherShield.
  4. Ouvrez l’IDE Arduino et créez un nouveau sketch.
  5. Copiez et collez le code suivant dans le sketch :
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 1, 177);

EthernetServer server(80);

void setup() {
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.begin(9600);
  Serial.println("Server is ready");
}

void loop() {
  EthernetClient client = server.available();
  if (client) {
    Serial.println("Client connected");
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.print(c);
        client.print(c);
      }
    }
    Serial.println();
    Serial.println("Client disconnected");
  }
}

Comment fonctionne ce code: Le code ci-dessus initialise le module Ethernet ENC28J60 avec l’Arduino en définissant une adresse MAC et une adresse IP statique. Ensuite, un serveur Ethernet est créé sur le port 80. Dans la boucle principale, le code vérifie s’il y a un client connecté au serveur. Si oui, il lit les données envoyées par le client et les renvoie. Sinon, il attend jusqu’à ce qu’un client se connecte. Le code utilise les bibliothèques SPI et Ethernet pour gérer la communication avec le module Ethernet.

Commander des relais par internet en utilisant module ethernet ENC28J60 et arduino

Module Ethernet Enc28J60 Avec Arduino

Matériel nécessaire:

  • Arduino (par exemple, Arduino Uno)
  • Module Ethernet ENC28J60
  • Relais
  • Câbles pour connecter les composants

Comment branchez les relais, le module Ethernet ENC28J60 et l’Arduino

  • Connectez le module Ethernet ENC28J60 à l’Arduino en utilisant le précèdent branchement
  • Connectez les relais à l’Arduino en utilisant des broches numériques pour commander les relais. Pour plus savoir concernant le branchement des relais et l’Arduino : https://www.moussasoft.com/relais-avec-arduino

Exemple de code:

#include <SPI.h>
#include <Ethernet.h>

// adresse MAC et IP
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 1, 177);

// serveur web
EthernetServer server(80);

// Etat des relais
int relay1 = 13;
int relay2 = 12;
int relay3 = 11;

void setup() {
  // initialise les relais comme sortie
  pinMode(relay1, OUTPUT);
  pinMode(relay2, OUTPUT);
  pinMode(relay3, OUTPUT);

  // Initialise Ethernet en utilisant l'adresse MAC et IP
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.begin(9600);
}

void loop() {
  EthernetClient client = server.available();
  if (client) {
    // lecture des données reçues
    String request = client.readStringUntil('\r');
    // Analyse des données pour déterminer l'état des relais
    if (request.indexOf("/relay1=1") != -1) {
      digitalWrite(relay1, HIGH);
    }
    if (request.indexOf("/relay1=0") != -1) {
      digitalWrite(relay1, LOW);
    }
    if (request.indexOf("/relay2=1") != -1) {
      digitalWrite(relay2, HIGH);
    }
    if (request.indexOf("/relay2=0") != -1) {
      digitalWrite(relay2, LOW);
    }
    if (request.indexOf("/relay3=1") != -1) {
      digitalWrite(relay3, HIGH);
    }
    if (request.indexOf("/relay3=0") != -1) {
      digitalWrite(relay3, LOW);
    }
    // Envoi d'une réponse au client
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println();
    client.println"<html><body>");
    client.println("<h1>Etat des relais:</h1>");
    client.println("<p>Relais 1: " + (digitalRead(relay1) == HIGH ? "ON" : "OFF") + "</p>");
    client.println("<p>Relais 2: " + (digitalRead(relay2) == HIGH ? "ON" : "OFF") + "</p>");
    client.println("<p>Relais 3: " + (digitalRead(relay3) == HIGH ? "ON" : "OFF") + "</p>");
    client.println("</body></html>");
    client.stop();
  }
}

4- Fonctionnement du code:

  • Le code initialise les relais en tant que sorties et configure le module Ethernet en utilisant l’adresse MAC et IP spécifiées.
  • Le serveur web écoute ensuite les requêtes entrantes.
  • Lorsqu’une requête est reçue, le code analyse les données pour déterminer l’état des relais. Les états des relais peuvent être modifiés en envoyant des requêtes avec les paramètres “/relay1 = 1” ou “/relay1 = 0” pour le premier relais, “/relay2 = 1” ou “/relay2 = 0” pour le deuxième relais, et “/relay3 = 1” ou “/relay3 = 0” pour le troisième relais.
  • Enfin, le code envoie une réponse au client, affichant l’état actuel des relais.

Lien outille :

La documentation du module Ethernet ENC28J60 :

https://5.imimg.com/data5/IU/GV/NT/SELLER-1833510/enc28j60-ethernet-lan-network-module-for-arduino.pdf

https://ww1.microchip.com/downloads/en/devicedoc/39662a.pdf

Pour télécharger la bibliothèque pour ENC28J60 sur GitHub : https://github.com/njh/EtherCard

Video descriptif du tutoriel Module Ethernet ENC28J60 avec Arduino :https://www.youtube.com/watch?v=5MHisFC-_dE

Video descriptif du tutoriel Commander des relais par internet en utilisant module ethernet ENC28J60 et arduino :

https://www.youtube.com/watch?v=hRgJtKLGwq0