Модуль или шилд 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.
Ethernet модуль W5100
- Модель W5100
- Наличие через 2-3 недели
-
292.93грн.
Рекомендуемые товары
LAN Ethernet шилд ENC28J60
Ethernet шилд расширения с маркировкой HR911105A. Подходит для различных плат контроллера. Питание 5..
152.79грн.
Теги шилд W5100