В статье разобрано создание Web сервера на ардуине с платой Ethernet shield.
Сервер отображает состояние всех шести аналоговых входов и температуры с датчика DS18B20…
Наверное, большинство вступающих в «ряды любителей» ардуино именно для «выхода в интернет вещей» и приобретают эти наборы (у меня это так и было…)
Создаем Web-сервер

Ethernet shield на микросхеме W5100 представляет собой плату в формате Arduino UNO и может устанавливаться «этажеркой» поверх Arduino UNO R3.
На плате кроме Ethernet контроллера установлен ридер microSD карт. Контроллер W5100 имеет более «продвинутую» структуру, чем менее дорогой ENC28J60 и ведет себя в работе более стабильно. Во всяком случае именно его советуют использовать в сетевых решениях на Arduino. Для подключения используется последовательный интерфейс SPI.
Сразу «берем на ум», что сетевая плата для управления использует pin 11,12,13 — последовательная шина; pin 10 — ноль при обращении к Ethernet контроллеру и pin 4 — ноль при работе с microSD картой (на плате, видимо, много места свободного оставалось, вот картридер туда и сунули…); так что эти пины нами не должны использоваться.
Библиотека Ethernet встроена, отдельно скачивать и устанавливать ее не надо. С библиотекой идет пример Web-сервера: WebServer. Загрузил, проверил — работает (не забудьте только прописать IP адрес Вашей подсети). Подключил DS18B20 как описано тут (1-Wire организуем на линии pin 8). Добавил в пример процедуру опроса и вывода термодатчика — тоже работает.
#include <SPI.h> //подключаем библиотеку для работы с SPI, т.к. // плата на W5100 работает через этот интерфейс #include <Ethernet.h> //тут то что нам надо для работы в сети // Надо указать уникальный в локальной сети МАС адрес нашей сетевой // платы. Писать надо не абы как, тут и контрольная сумма присутствует byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(10,0,5,11); //надо явно указать IP адрес нашего // будущего Web-сервера, чтоб было куда обращаться //инициализируем библиотеку Ethernet server (порт 80 - по умолчанию) EthernetServer server(80); //пины для подключения стандартны для // SPI: pin 4(SD),10(Sel EthShi),11,12,13 void setup() { // Open serial communications and wait for port to open: Serial.begin(9600); // start the Ethernet connection and the server: Ethernet.begin(mac, ip); server.begin(); Serial.print("server is at "); Serial.println(Ethernet.localIP()); //нам нарисуют IP 10.0.5.11 } 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(); Serial.write(c); //выводим на экран принимаемые в запросе от клиента символы //!!! не анализируем их - просто ждем конца, чтоб начать //свою передачу if (c == '\n' && currentLineIsBlank) { // конец запроса найден, начинаем передачу страницы client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: close"); client.println(); client.println("<!DOCTYPE HTML>"); client.println("<html>"); // add a meta refresh tag, so the browser pulls again every 5 seconds: client.println("<meta http-equiv=\"refresh\" content=\"5\">"); // теперь, собственно, пошел наш текст с данными по входам client.print("Web server Arduino! "); client.println("<br />"); //это перевод строки :) for (int analogChannel = 0; analogChannel < 6; analogChannel++) { //перебираем все аналоговые входы и по каждому даем строку int sensorReading = analogRead(analogChannel); client.print("analog input "); client.print(analogChannel); client.print(" is "); client.print(sensorReading); client.println("<br />"); } client.println("</html>"); break; //вот и все, страничка выдана... } 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 delay(1); // close the connection: client.stop(); Serial.println("client disonnected"); } }
Arduino UNO и Ethernet Shield (W5100) Вы подключаете в роутер или напрямую в компьютер?
В роутер или коммутатор