Microduino W5500 Network (2)

From Microduino Wiki
Jump to: navigation, search

Purpose

This course will show you how to use DHCP server to configure network parameter automatically, enabling your Microduino to acquire IP address accordingly.

Equipment

  • Other hardware equipment
    • USB cable One

DHCP

Generally, you can find a DHCP (Dynamic Host Configuration Protocol) server in local network. DHCP distributes network parameters (IP address, mask, gateway and DNS) to internal network device automatically.


Here is a simple introduction of how it works:

You need a device (Client) with IP address, send a DISCOVERY broadcasting data package—which will reach the whole network of the device, and "discover" a functional DHCP server;

If there are more than one DHCP servers functional, they will respond to a OFFER package and "suggest" Client set available IP address;

Client selects the IP address and send a REQUEST data package to the corresponding server, asking the permission of using the address;

We suggest set server of the IP address and return an ACK to confirm associated IP address.

DHCPShow.jpg

Luckily, the acquisition of IP address mentioned above has been achieved in library file of dhcp.cpp. Next, we'll compile a simple example to present the use of DHCP server.

Schematic

  • Microduino-W5500
  • Microduino-RJ45
  • Microduino-Core
  • Microduino-USBTTL

Stack them and then plug in network cable.

As follows:

MicroduinoW5500Show.png

Program

[MicroduinoW5500Two]

Debugging

Step 1: First, make sure you have _02_Microduino_Ethernet_WIZ library in your IDE and put it into libraries folder of your IDE.

Step 2: If there still exists Ethernet library in the libraries folder of your IDE, it needs to be deleted since the previous Ethernet is compiled according to W5100.

Then you need to change _02_Microduino_Ethernet_WIZ so that the library function can be corresponding with the pin of Microduino-W5500:

Find w5100.h in utility folder of _02_Microduino_Ethernet_WIZ library.

Change #define wiz_cs_pin 8 //CS_PIN of the code to #define wiz_cs_pin 10 //CS_PIN.

Step 3: Interpret the code:

 // start the Ethernet connection:
 Serial.println("Trying to get an IP address using DHCP");
 if (Ethernet.begin(mac) == 0) {
   Serial.println("Failed to configure Ethernet using DHCP");
   // initialize the ethernet device not using DHCP:
 #if defined(WIZ550io_WITH_MACADDRESS)
   Ethernet.begin(ip, gateway, subnet);
 #else
   Ethernet.begin(mac, ip, gateway, subnet);
 #endif  
 }

The code above uses DHCP to assign IP address firstly. So, if the assignment failed, you need to assign the IP address defined previously.

Step 4: Download the code and pass compile.

Step 5: If everything works fine, you can open the serial port and acquire IP address assigned by DHCP.

MicroduinoW5500DHCP1.png

With the IP, you can have a ping connection with your Microduino.

MicroduinoW5500DHCP2.png

Result

If you can check your DHCP server (Usually, you can find it in the DHCP client of our router), you will see a newly connected device.

Video