ENC28J60 et Arduino NANO

Bonjour,

J’essaye de faire fonctionner un ENC28J60 sur un Arduino Nano

J’essaye avec la librairie EtherCard de jc wippler le code backsoon qui doit afficher une page “type 503”

// Present a "Will be back soon web page", as stand-in webserver.
// 2011-01-30 <jc@wippler.nl>
//
// License: GPLv2

#include <EtherCard.h>

#define STATIC 1  // set to 1 to disable DHCP (adjust myip/gwip values below)

#if STATIC
// ethernet interface ip address
static byte myip[] = { 192,168,1,223 };
// gateway ip address
static byte gwip[] = { 192,168,1,10 };
#endif

// ethernet mac address - must be unique on your network
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };

byte Ethernet::buffer[500]; // tcp/ip send and receive buffer

const char page[] PROGMEM =
"HTTP/1.0 503 Service Unavailable\r\n"
"Content-Type: text/html\r\n"
"Retry-After: 600\r\n"
"\r\n"
"<html>"
  "<head><title>"
    "Service Temporarily Unavailable"
  "</title></head>"
  "<body>"
    "<h3>This service is currently unavailable</h3>"
    "<p><em>"
      "The main server is currently off-line.
"
      "Please try again later."
    "</em></p>"
  "</body>"
"</html>"
;

void setup(){
  Serial.begin(9600);
  Serial.println("\n[backSoon]");

  // Change 'SS' to your Slave Select pin, if you arn't using the default pin
  if (ether.begin(sizeof Ethernet::buffer, mymac, SS) == 0)
    Serial.println( "Failed to access Ethernet controller");
#if STATIC
  ether.staticSetup(myip, gwip);
#else
  if (!ether.dhcpSetup())
    Serial.println("DHCP failed");
#endif

  ether.printIp("IP:  ", ether.myip);
  ether.printIp("GW:  ", ether.gwip);
  ether.printIp("DNS: ", ether.dnsip);
}

void loop(){
  // wait for an incoming TCP packet, but ignore its contents
  if (ether.packetLoop(ether.packetReceive())) {
    memcpy_P(ether.tcpOffset(), page, sizeof page);
    ether.httpServerReply(sizeof page - 1);
  }
}

mais le terminal me retourne seulement :

[backSoon]

soit la 1ere ligne du setup

et aucune réponse au ping.

Une idée de mon erreur ?

je pense qu’il faut modifier le SS j’ai essayer 4 et 14 comme vu sur différent site sans succès…

Par avance merci

Je ne connais pas du tout ce truc, mais il ne me semble pas que tu doives attendre autre chose dans la console.

Pour suivre le déroulement de ton code, ajoute des Serial.println :

  ether.printIp("IP:  ", ether.myip);
  Serial.println("apres ether.myip");
  ether.printIp("GW:  ", ether.gwip);
  Serial.println("apres ether.gwip");
  ether.printIp("DNS: ", ether.dnsip);
  Serial.println("apres ether.dnsip");

et

  if (ether.packetLoop(ether.packetReceive())) {
    Serial.println("packet received");
    memcpy_P(ether.tcpOffset(), page, sizeof(page));  // <-- sizeof()
    ether.httpServerReply(sizeof(page) - 1);  // <-- sizeof()
  }

Pour le ping… je ne sais pas.

Du côté de la déclaration de ton tableau, j’aurais plutôt vu :

const char page[] PROGMEM = {
"HTTP/1.0 503 Service Unavailable\r\n",
"Content-Type: text/html\r\n",
"Retry-After: 600\r\n",
"\r\n",
"<html>",
  "<head><title>",
    "Service Temporarily Unavailable",
  "</title></head>",
  "<body>",
    "<h3>This service is currently unavailable</h3>",
    "<p><em>",
      "The main server is currently off-line.
",
      "Please try again later.",
    "</em></p>",
  "</body>",
"</html>"
};

Voir ici :

Syntax
const dataType variableName PROGMEM = {data0, data1, data3…​};

Le circuit ENC28J60 doit être alimenté en 3,3V et peut consommer jusqu'a 200mA.
Comment est-il alimenté acruellement ?

Bonsoir merci des réponses,

Après plusieurs soirée d'essaie infructueuse:

J'ai essayé avec le rajout de print dans le setup mais il ne retourne rien,

Du coup j'ai essayé avec un arduino uno en suivant:

le print dans le setup ne me retourne rien non plus , sauf si je debranche le 5V avec un echec imprimé..

je seche..

@+

Le circuit ENC28J60 doit être alimenté en 3,3V et peut consommer jusqu’a 200mA.
Comment et par quoi est-il alimenté acruellement ?
Un régulateur 3,3V 200mA est-il en place pouralimenter le circuit intégré ENC28J60 ?
(c’est le cas pour la carte Ethercard vendue autrefois par Jeelabs ,de l’auteur de la librairie du même nom
Si le circuit intégré ENC28J60 est monté sur un module , quel est ce module ? lien ?
Oups !!je n’avait pas vu le lien du premier message : il n’ s’agit pas de l’utilsiation d’un circuit intégré ENC28J60 seul… mais d’un module Ethernet Shield V1 qui associe plusieurs composants autour du ENC28J60…
Le régulateur 3,3V est donc bien en place !

Doc de la librairie Ethercard ici

D’autre part en début du programme ‘backsoon’ testé on voit qu’il a été choisi de travailler avec des adresses ip fixes (#define STATIC 1)

#define STATIC 1  // set to 1 to disable DHCP (adjust myip/gwip values below)

#if STATIC
// ethernet interface ip address
static byte myip[] = { 192,168,1,223 };
// gateway ip address
static byte gwip[] = { 192,168,1,10 };

les adresses choisies sont elles conformes au réseau local ?
la box est -elle réellement en 192.168.1.10 ??

Un essai a-t-il été fait en DHCP au lieu de l’IP statique ?

Si le print n'affiche rien, c'est certainement que le déroulement du code s'arrête avant l'instruction print.
Il faut chercher ce qui pose le problème. Mets des prints avec des messages qui te permettent de suivre le déroulement du code et voir où il bloque

Bonjour

Bon ducoup je passe mon tour pour ce produit

Je le ressortirais un jour sans doute :slight_smile:

Est-ce que ce produit un modile WIFI OLED ce televerse comme Lolin et les Wemos D1 R1 ? ou aussi facilement ?

Par avance merci

Bonjour
Oui, à première vue ce module se traite comme les cartes NodeMCU ou Wemos D1 Mini
L'existence d'un schéma serait un plus pour comprendre les éventuelles particularités (câblage de la led de la carte, de l'afficheur.....)

Oui y a pas mal de tuto sur internet

Merci à vous pour l'aide

@+

Bonjour

Je up ce Topic.

Quel shield peut on monter sur un Arduino Nano pour pouvoir le connecter en ethernet ?

( et qui fonctionne surtout ;D )

Merci des infos