Internet of thing is becoming so easy. With Xboard Relay, you can not only monitor data through internet, but also control it through internet. The Xboard Relay combines an Atmega 32u4 microprocessor and wiz5100 chip which is fully compatible with Arduino Lendardo and Ethernet library, it has build-in Xbee socket and 2 Relays which allow an easy play sensoring and controlling over internet.

Not like previous X-board, X-board relay has no programming adapter required. A micro usb cable is the only hardware needed to upload sketch.


New Version Burning Tutorials


Relay's connected to pins D7 and D8

Sample Code


You will need:

  1. W5500 Ethernet with POE Mainboard
  2. Micro USB cable
  3. PC
  4. RJ45 network cable

Step 1: Connections

1.The X-Board Relay module access the Internet line into any router LAN port, 2.Micro USB cable plugged into the X-Board relay module, and the other end to the computer USB port.

warning_yellow.png NOTE: after uploading the sketch below successfully, you have to open Arduino Serial Monitor to get the card run. This is to ensure the initialization done, you could also delete or comment those three lines of code and add a delay(1000) instead.

Step 2:Download

Programming code:

//while (!Serial) {
//  ; // wait for serial port to connect. Needed for Leonardo only
DFRobot X-board V2 Sample Code

 A simple web server with DHPC capbabilty.
1)Get IP address from router automatically
2)Show the value of the analog input pins

 created 28 Sep 2012
 by Ricky

#include <SPI.h>
#include <Ethernet.h>
EthernetServer server(80);
// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
  0xDE, 0xCD, 0xAE, 0x0F, 0xFE, 0xED };

// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):

void setup() {
 // Open serial communications and wait for port to open:
  while (!Serial) {
  ; // wait for serial port to connect. Needed for Leonardo only

  // start the Ethernet connection:
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // no point in carrying on, so do nothing forevermore:
  // print your local IP address:
  Serial.print("My IP address: ");
  for (byte thisByte = 0; thisByte < 4; thisByte++) {
    // print the value of each byte of the IP address:
    Serial.print(Ethernet.localIP()[thisByte], DEC);

  // start the Ethernet connection and the server:

  Serial.print("server is at ");

void loop() {
  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    Serial.println("new client");
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        if (c == '\n' && currentLineIsBlank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connnection: close");
          client.println("<!DOCTYPE HTML>");
                    // add a meta refresh tag, so the browser pulls again every 5 seconds:
          client.println("<meta http-equiv=\"refresh\" content=\"5\">");
          client.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"https://www.dfrobot.com/ihome/stylesheet/stylesheet.css\" />");

            client.println("<center> <a href=\"https://www.dfrobot.com\"><img src=\"http://alturl.com/qf6vz\"></a> </center> ");
           client.println("<br />");

          // output the value of each analog input pin
          for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
            int sensorReading = analogRead(analogChannel);
            client.print("analog input ");
            client.print(" is ");
            client.println("<br />");


             // output the value of each digital input pin
          for (int digitalChannel = 2; digitalChannel < 10; digitalChannel++) {
            int sensorReading = digitalRead(digitalChannel);
            client.print("Digital input ");
            client.print(" is ");
             client.println("<br />");

             client.print("Relay ");
            client.print(" is ");
             client.println("<br />");



        if (c == '\n') {
          // you're starting a new line
          currentLineIsBlank = true;
        else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
    // give the web browser time to receive the data
    // close the connection:
    Serial.println("client disonnected");

Check that it works

1 After burning is complete, open the serial monitor. Window displays your IP address.

2 Open a browser -> Enter the IP address -> Enter to open the page.

3 Serial Monitor has a corresponding feedback data.

Relay module Application examples

Reference relay module: wiki Note that the actual parameters.

DFshopping_car1.png Get X-Board Relay from DFRobot Store or DFRobot Distributor.

Turn to the Top