Віримо в перемогу ЗСУ!
Працюємо з 09:00 до 18:00 Пн-Сб

Модуль или шилд wiznet W5100 Arduino UNO подходит для непосредственной установки на плату контроллера Arduino UNO R3 или Arduino MEGA 2560.

Библиотека для работы с шилдом - Ethernet library

Работа с кардридером micro-SD карточек, установленным на шилде, выполняется с применением библиотеки SD Library

Таким образом, используемые пины:

  •      4 для выбора SD-карты (SD_CS)
  •      9 для сброса микросхемы W5100 (W5100_RST)
  •      10 для выбора микросхемы W5100 (W5100_CS)
  •      Шина SPI: 11,12,13 контактов на плате Arduino UNO / Duelmilanove. Контакты 50, 51 и 52 для Mega

 ---------------------------------
|              D13  D12  D11      |
|              SCK MISO  MOSI     |
|                                  \
| ETH                               |
| JACK                              |
|                                   |
|                        MISO ---   |
|                        SCK  MOSI  |
|                        ---- GND   |
|                                   |
|                         SD CARD   |
|                                   |
|                                   |
| RESET                            /
 ----------------------------------

Пример программы под Arduino IDE:

//Libraries
#include <Ethernet.h>
//Parameters
String request ;
unsigned long refreshCounter  = 0;
byte mac [6] = {0x54, 0x34, 0x41, 0x30, 0x30, 0x31};
//Objects
EthernetServer server(80);
IPAddress ip(192, 168, 1, 179);
EthernetClient client;
void setup() {
 //Init Serial USB
 Serial.begin(9600);
 Serial.println(F("Initialize System"));
 //Init W5100
 Ethernet.begin(mac, ip);
 while (!Ethernet.begin(mac)) {
   Serial.println(F("failed. Retrying in 5 seconds."));
   delay(5000);
   Serial.print(F("Starting W5100..."));
 }
 pinMode(2, OUTPUT);
 server.begin();
 Serial.println(F("W5100 initialized"));
 Serial.print(F("IP Address: "));
 Serial.println(Ethernet.localIP());
}
void loop() {
 client = server.available();
 clientRequest();
 handleRequest();
}
void clientRequest( ) { /* function clientRequest */
 ////Get client request
 if (!client) {
   return;
 }
 // Wait until the client sends some data
 while (!client.available()) {
   delay(1);
 }
 request = client.readStringUntil('\r'); // Read the first line of the request
 Serial.println(request);
 client.flush();
}
void handleRequest( ) { /* function handleRequest */
 ////Handle web client request
 if (request.indexOf('GET') >= 0) {
   {
     webpage(client);
     client.stop();
   }
 }
 if (request.indexOf("/dig2on") > 0) {
   {
     digitalWrite(2, HIGH);
   }
 }
 if (request.indexOf("/dig2off") > 0) {
   {
     digitalWrite(2, LOW);
   }
 }
}
void webpage(EthernetClient client) { /* function webpage */
 ////Send webpage to client
 //output HTML data header
 client.println(F("HTTP/1.1 200 OK"));
 client.println(F("Content-Type: text/html"));
 client.println();
 //header
 client.print(F("<!DOCTYPE HTML><html><head><title>AranaCorp</title>"));
 client.print(F("<meta http-equiv='content-type' content='text/html; charset=UTF-8'>"));
 //meta-refresh page every x seconds
 client.print(F("<meta http-equiv='refresh' content='2'>"));
 client.print(F("</head><body bgcolor='black'><br>"));
 client.print(F("<hr/><hr>"));
 client.print(F("<h1 style='color : #3AAA35;'><center> Geekmatic - Arduino Web Controller </center></h1>"));
 client.print(F("<hr/><hr>"));
 client.print("<center><p style='color:white;'>");
 client.print(F("Page refresh number : "));
 client.print(refreshCounter); //current refresh count
 client.print("</p></center><br>");
 client.print(F("<h2 style='color:green;'>Arduino Inputs</h2>"));
 client.print("<p style='color:white;'>");
 client.print("<br><br>");
 //output analog input pin
 for (int i = 0; i < 6; i++) {
   client.print("<b>Input A");
   client.print(i);
   client.print(" : </b>");
   client.print(analogRead(14 + i)); //A0=14, A1=15 ,etc.
   client.print(F("<br>"));
 }
 client.print(F("</p><br>"));
 //digital output
 client.print(F("<h2 style='color:green;'>Arduino Outputs</h2>"));
 client.print(F("<p style='color:white;'>"));
 client.print(F("<br><br>"));
 client.print(F("<b>Digital output Pin 2 : </b>"));
 client.print("<input value=" + String(digitalRead(2)) + " readonly></input>");
 client.print(F("<a href='/dig2on'><button>Turn On </button></a>"));
 client.print(F("<a href='/dig2off'><button>Turn Off </button></a><br />"));
 client.print(F("</p><br>"));
 //file end
 client.print(F("<br></body></html>"));
 refreshCounter += 1;
}

После загрузки скетча в Arduino UNO мы видим, что Ethernet Shield W5100 инициализируется правильно. Когда вы вводите IP-адрес в адресную строку браузера, появляется веб-страница, описанная в функции.


После загрузки страницы значения аналоговых входов меняются при каждом обновлении, и состояние пина 2 можно изменить, нажав соответствующие кнопки.


Микросхема W5100

Микросхема W5100 представляет собой встроенный контроллер Ethernet с проводным TCP / IP, который упрощает подключение к Интернету для встроенных систем.


W5100 лучше всего подходит пользователям, нуждающимся в стабильном подключении к Интернету, используя один чип для реализации стека TCP / IP, 10/100 Ethernet MAC и PHY. Проводной стек TCP / IP поддерживает TCP, UDP, IPv4, ICMP, ARP, IGMP и PPPoE,…, что было проверено в различных приложениях на протяжении многих лет. W5100 использует 16-байтовый внутренний буфер в качестве памяти для передачи данных.

Используя W5100, пользователи могут реализовать необходимое им приложение Ethernet, используя простую программу сокета вместо работы со сложным контроллером Ethernet.

Одновременно можно использовать 4 независимых аппаратных разъема. Шина (прямая и косвенная) и SPI (последовательный периферийный интерфейс) предусмотрены для легкой интеграции с внешним MCU.


Написать отзыв

Примечание: HTML разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо

Ethernet модуль W5100

  • Модель W5100
  • Наличие через 2-3 недели
  • 292.93грн.


<< Проекты << Все товары >> Статьи, уроки >>

Рекомендуемые товары

LAN Ethernet шилд ENC28J60

LAN Ethernet шилд ENC28J60

Ethernet шилд расширения с маркировкой HR911105A. Подходит для различных плат контроллера. Питание 5..

152.79грн.

Патч-корд RJ-45 UTP Cat-5e 2м

Патч-корд RJ-45 UTP Cat-5e 2м

Ethernet кабель патчкорд категории 5ЕДлина кабеля 2м..

41.22грн.

Теги шилд W5100