Не работает Ethernet Shield, server ip 0.0.0.0

Тема в разделе "Arduino & Shields", создана пользователем Alex19, 14 янв 2013.

  1. Alex19

    Alex19 Гуру

    День добрый.

    У меня Arduino Mega 2560 + Ethernet Shield
    http://amperka.ru/collection/Platy/product/Arduino-Mega-2560
    http://amperka.ru/collection/Platy/product/Ethernet-Shield-v2

    На плате Ethernet Shield (W5100, MAC - 90-A2-DA-0D-1D-DE)

    Использую код c официального сайта
    http://arduino.cc/en/Tutorial/WebServer

    Код (Text):
    /*
      Web Server
     
    A simple web server that shows the value of the analog input pins.
    using an Arduino Wiznet Ethernet shield.
     
    Circuit:
    * Ethernet shield attached to pins 10, 11, 12, 13
    * Analog inputs attached to pins A0 through A5 (optional)
     
    created 18 Dec 2009
    by David A. Mellis
    modified 9 Apr 2012
    by Tom Igoe
     
    */
     
    #include <SPI.h>
    #include <Ethernet.h>
     
    // Enter a MAC address and IP address for your controller below.
    // The IP address will be dependent on your local network:
    byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
    //byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x1D, 0xDE };
    IPAddress ip(192,168,1, 177);
     
    // Initialize the Ethernet server library
    // with the IP address and port you want to use
    // (port 80 is default for HTTP):
    EthernetServer server(80);
     
    void setup() {
    // Open serial communications and wait for port to open:
      Serial.begin(9600);
        //while (!Serial) {
        //; // wait for serial port to connect. Needed for Leonardo only
        //}
     
      // start the Ethernet connection and the server:
      Ethernet.begin(mac, ip);
      server.begin();
      Serial.print("server is at ");
      Serial.println(Ethernet.localIP());
    }
     
     
    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 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();
              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\">");
              // 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(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");
      }
    }
    Serial.println(Ethernet.localIP());
    Пишет в мониторе порта - server is at 0.0.0.0

    Пробовал и
    byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
    оба варианта
    byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x1D, 0xDE };

    Подключал на прямую и через роутер к компьютеру.
    По USB питаю, и сетевой кабель для передачи данных.

    Пинг на 192.168.1.177 проходит всегда.
    Открываю браузер набираю 192.168.1.177 и ничего.

    Погибла плата?
    Или я что-то делаю не так?


     
  2. nailxx

    nailxx Официальный Нерд Администратор

    Если пингуется, значит жива. Что-то со скетчем (быть может он для старой версии Wiring?!). В чём проявляется «Открываю браузер набираю 192.168.1.177 и ничего»? Просто белая страница моментально, моментально «Could not open this page» или что-то ещё?
     
  3. Alex19

    Alex19 Гуру

    Спасибо за быстрый ответ.

    Версия Arduino 1.0.3
    Wiring - не знаю что это, буду смотреть.

    Думает секунд 5-10 и потом Веб-страница не доступна
     
  4. nailxx

    nailxx Официальный Нерд Администратор

    У вас последняя Arduino IDE (под этим я и подразумевал Wiring, фиг с ними, с тонкостями), но скетч примера быть может опробирован для старых версий 0.x.

    Судя по симптомам браузер не дожидается ответа. Вы же примерно понимаете как устроен HTTP и что происходит в скетче?! Я бы по ходу погружения внутрь if'ов поставил отладочные Serial.print и посмотрел в которых из тех мест, где должна оказаться программа, она не оказывается…

    Написал и понял, что у вас всё уже на месте. У вас кроме «server is at 0.0.0.0» в Serial monitor больше ничего вообще не падает?
     
  5. Alex19

    Alex19 Гуру

    Пробовал и другие скетчи итог пока тот же эфект

    Увы примерно:(

    Да, дальше не идет.

    Меня смущает то что он пишет что установленный ip 0.0.0.0.
    То есть проблема инициализации сервера, как я себе это представляю
     
  6. nailxx

    nailxx Официальный Нерд Администратор

    0.0.0.0 означает «я слушаю подключение с любых внешних устройств».

    Как у вас устроена сеть? Куда подключена Arduino, куда компьютер с браузером? Точно ли на пути не стоит никаких файр-волов и 80-й порт открыт?
     
  7. Alex19

    Alex19 Гуру

    Подключена на прямую к компьютеру, к компьютера адрес 192.168.1.1

    Сейчас один и тот же компьютер 192.168.1.1

    файр-волов нет, как и антивирусов.

    Не понял, если он был бы закрыт, то я бы не смог бы открывать веб страницы, когда подключался к обычной сети по кабелю
     
  8. Alex19

    Alex19 Гуру

    Возможно, но почему в других примерах, у других ответ ip который указан в скечах
     
  9. nailxx

    nailxx Официальный Нерд Администратор

    Нет ли под рукой хаба или роутера, чтобы он был посредником? Не пробовал подключать напрямую к компу. Возможно в этом случае важно как обжата витая пара: прямая или кросс-овер. Хотя успешный пинг ставит эту теорию под некоторое сомнение.
     
  10. Alex19

    Alex19 Гуру

    Ставил не помогало, пинг проходит а результат тот же
     
  11. Alex19

    Alex19 Гуру

    Кроме того пробовал на 2 компьютерах
     
  12. nailxx

    nailxx Официальный Нерд Администратор

    У вас Винда? Можно увидеть вывод команды:

    ipconfig /ALL

    ?
     
  13. Alex19

    Alex19 Гуру

    Код (Text):
    C:\Users\Admin>ipconfig /all
     
    Настройка протокола IP для Windows
     
      Имя компьютера  . . . . . . . . . : Tp-vin
      Основной DNS-суффикс  . . . . . . :
      Тип узла. . . . . . . . . . . . . : Гибридный
      IP-маршрутизация включена . . . . : Нет
      WINS-прокси включен . . . . . . . : Нет
     
    Адаптер беспроводной локальной сети Беспроводное сетевое соединение:
     
      Состояние среды. . . . . . . . : Среда передачи недоступна.
      DNS-суффикс подключения . . . . . :
      Описание. . . . . . . . . . . . . : Intel(R) Wireless WiFi Link 4965AG
      Физический адрес. . . . . . . . . : 00-1F-3B-B2-09-C3
      DHCP включен. . . . . . . . . . . : Да
      Автонастройка включена. . . . . . : Да
     
    Ethernet adapter Подключение по локальной сети:
     
      Состояние среды. . . . . . . . : Среда передачи недоступна.
      DNS-суффикс подключения . . . . . :
      Описание. . . . . . . . . . . . . : Гигабитное сетевое подключение Intel(R) 8
    2566MM
      Физический адрес. . . . . . . . . : 00-1F-29-7B-53-48
      DHCP включен. . . . . . . . . . . : Нет
      Автонастройка включена. . . . . . : Да
     
    Туннельный адаптер isatap.{321D1496-FD3A-4964-A2E7-919B60568653}:
     
      Состояние среды. . . . . . . . : Среда передачи недоступна.
      DNS-суффикс подключения . . . . . :
      Описание. . . . . . . . . . . . . : Адаптер Microsoft ISATAP #2
      Физический адрес. . . . . . . . . : 00-00-00-00-00-00-00-E0
      DHCP включен. . . . . . . . . . . : Нет
      Автонастройка включена. . . . . . : Да
     
    Туннельный адаптер isatap.{F58455AE-B10C-4606-89C9-174132A345A1}:
     
      Состояние среды. . . . . . . . : Среда передачи недоступна.
      DNS-суффикс подключения . . . . . :
      Описание. . . . . . . . . . . . . : Адаптер Microsoft ISATAP #3
      Физический адрес. . . . . . . . . : 00-00-00-00-00-00-00-E0
      DHCP включен. . . . . . . . . . . : Нет
      Автонастройка включена. . . . . . : Да
     
    Туннельный адаптер Teredo Tunneling Pseudo-Interface:
     
      Состояние среды. . . . . . . . : Среда передачи недоступна.
      DNS-суффикс подключения . . . . . :
      Описание. . . . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
      Физический адрес. . . . . . . . . : 00-00-00-00-00-00-00-E0
      DHCP включен. . . . . . . . . . . : Нет
      Автонастройка включена. . . . . . : Да
     
    C:\Users\Admin>
     
  14. Alex19

    Alex19 Гуру

    Второй ком.
    Код (Text):
    C:\Users\Alex>ipconfig /all
     
    Настройка протокола IP для Windows
     
      Имя компьютера  . . . . . . . . . : Server
      Основной DNS-суффикс  . . . . . . :
      Тип узла. . . . . . . . . . . . . : Гибридный
      IP-маршрутизация включена . . . . : Нет
      WINS-прокси включен . . . . . . . : Нет
     
    Ethernet adapter Сетевое подключение Bluetooth:
     
      Состояние среды. . . . . . . . : Среда передачи недоступна.
      DNS-суффикс подключения . . . . . :
      Описание. . . . . . . . . . . . . : Устройства Bluetooth (личной сети)
      Физический адрес. . . . . . . . . : 00-26-83-31-6B-4F
      DHCP включен. . . . . . . . . . . : Да
      Автонастройка включена. . . . . . : Да
     
    Ethernet adapter Подключение по локальной сети:
     
      DNS-суффикс подключения . . . . . :
      Описание. . . . . . . . . . . . . : Intel(R) 82579V Gigabit Network Connectio
    n
      Физический адрес. . . . . . . . . : 14-DA-E9-43-E6-D0
      DHCP включен. . . . . . . . . . . : Да
      Автонастройка включена. . . . . . : Да
      Локальный IPv6-адрес канала . . . : fe80::906:8ad1:6cc8:64be%11(Основной)
      IPv4-адрес. . . . . . . . . . . . : 192.168.1.100(Основной)
      Маска подсети . . . . . . . . . . : 255.255.255.0
      Аренда получена. . . . . . . . . . : 14 января 2013 г. 19:59:49
      Срок аренды истекает. . . . . . . . . . : 17 января 2013 г. 19:59:48
      Основной шлюз. . . . . . . . . : 192.168.1.1
      DHCP-сервер. . . . . . . . . . . : 192.168.1.1
      IAID DHCPv6 . . . . . . . . . . . : 236247785
      DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-16-43-CC-05-14-DA-E9-43-E6-D0
     
      DNS-серверы. . . . . . . . . . . : 192.168.1.1
      NetBios через TCP/IP. . . . . . . . : Включен
     
    Туннельный адаптер isatap.{5341A7C5-4F5C-46F0-8E66-3C49A6261CA8}:
     
      Состояние среды. . . . . . . . : Среда передачи недоступна.
      DNS-суффикс подключения . . . . . :
      Описание. . . . . . . . . . . . . : Адаптер Microsoft ISATAP
      Физический адрес. . . . . . . . . : 00-00-00-00-00-00-00-E0
      DHCP включен. . . . . . . . . . . : Нет
      Автонастройка включена. . . . . . : Да
     
    Туннельный адаптер Teredo Tunneling Pseudo-Interface:
     
      DNS-суффикс подключения . . . . . :
      Описание. . . . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
      Физический адрес. . . . . . . . . : 00-00-00-00-00-00-00-E0
      DHCP включен. . . . . . . . . . . : Нет
      Автонастройка включена. . . . . . : Да
      IPv6-адрес. . . . . . . . . . . . : 2001:0:4137:9e76:1c47:d7fe:da29:303c(Осно
    вной)
      Локальный IPv6-адрес канала . . . : fe80::1c47:d7fe:da29:303c%15(Основной)
      Основной шлюз. . . . . . . . . : ::
      NetBios через TCP/IP. . . . . . . . : Отключен
     
    Туннельный адаптер isatap.{0AC44C4B-ED58-48EB-9018-F50A0AEF7776}:
     
      Состояние среды. . . . . . . . : Среда передачи недоступна.
      DNS-суффикс подключения . . . . . :
      Описание. . . . . . . . . . . . . : Адаптер Microsoft ISATAP #4
      Физический адрес. . . . . . . . . : 00-00-00-00-00-00-00-E0
      DHCP включен. . . . . . . . . . . : Нет
      Автонастройка включена. . . . . . : Да
     
    C:\Users\Alex>ipconfig /all
     
    Настройка протокола IP для Windows
     
      Имя компьютера  . . . . . . . . . : Server
      Основной DNS-суффикс  . . . . . . :
      Тип узла. . . . . . . . . . . . . : Гибридный
      IP-маршрутизация включена . . . . : Нет
      WINS-прокси включен . . . . . . . : Нет
     
    Ethernet adapter Сетевое подключение Bluetooth:
     
      Состояние среды. . . . . . . . : Среда передачи недоступна.
      DNS-суффикс подключения . . . . . :
      Описание. . . . . . . . . . . . . : Устройства Bluetooth (личной сети)
      Физический адрес. . . . . . . . . : 00-26-83-31-6B-4F
      DHCP включен. . . . . . . . . . . : Да
      Автонастройка включена. . . . . . : Да
     
    Ethernet adapter Подключение по локальной сети:
     
      DNS-суффикс подключения . . . . . :
      Описание. . . . . . . . . . . . . : Intel(R) 82579V Gigabit Network Connectio
    n
      Физический адрес. . . . . . . . . : 14-DA-E9-43-E6-D0
      DHCP включен. . . . . . . . . . . : Да
      Автонастройка включена. . . . . . : Да
      Локальный IPv6-адрес канала . . . : fe80::906:8ad1:6cc8:64be%11(Основной)
      IPv4-адрес. . . . . . . . . . . . : 192.168.1.100(Основной)
      Маска подсети . . . . . . . . . . : 255.255.255.0
      Аренда получена. . . . . . . . . . : 14 января 2013 г. 19:59:49
      Срок аренды истекает. . . . . . . . . . : 17 января 2013 г. 19:59:49
      Основной шлюз. . . . . . . . . : 192.168.1.1
      DHCP-сервер. . . . . . . . . . . : 192.168.1.1
      IAID DHCPv6 . . . . . . . . . . . : 236247785
      DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-16-43-CC-05-14-DA-E9-43-E6-D0
     
      DNS-серверы. . . . . . . . . . . : 192.168.1.1
      NetBios через TCP/IP. . . . . . . . : Включен
     
    Ethernet adapter VMware Network Adapter VMnet1:
     
      DNS-суффикс подключения . . . . . :
      Описание. . . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet
    1
      Физический адрес. . . . . . . . . : 00-50-56-C0-00-01
      DHCP включен. . . . . . . . . . . : Нет
      Автонастройка включена. . . . . . : Да
      Локальный IPv6-адрес канала . . . : fe80::4188:adb9:3f2:35d1%17(Основной)
      IPv4-адрес. . . . . . . . . . . . : 192.168.121.1(Основной)
      Маска подсети . . . . . . . . . . : 255.255.255.0
      Основной шлюз. . . . . . . . . :
      DNS-серверы. . . . . . . . . . . : fec0:0:0:ffff::1%1
                                          fec0:0:0:ffff::2%1
                                          fec0:0:0:ffff::3%1
      NetBios через TCP/IP. . . . . . . . : Включен
     
    Ethernet adapter VMware Network Adapter VMnet8:
     
      DNS-суффикс подключения . . . . . :
      Описание. . . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet
    8
      Физический адрес. . . . . . . . . : 00-50-56-C0-00-08
      DHCP включен. . . . . . . . . . . : Нет
      Автонастройка включена. . . . . . : Да
      Локальный IPv6-адрес канала . . . : fe80::11ad:64a7:a7af:9479%18(Основной)
      IPv4-адрес. . . . . . . . . . . . : 192.168.159.1(Основной)
      Маска подсети . . . . . . . . . . : 255.255.255.0
      Основной шлюз. . . . . . . . . :
      DNS-серверы. . . . . . . . . . . : fec0:0:0:ffff::1%1
                                          fec0:0:0:ffff::2%1
                                          fec0:0:0:ffff::3%1
      NetBios через TCP/IP. . . . . . . . : Включен
     
    Туннельный адаптер isatap.{5341A7C5-4F5C-46F0-8E66-3C49A6261CA8}:
     
      Состояние среды. . . . . . . . : Среда передачи недоступна.
      DNS-суффикс подключения . . . . . :
      Описание. . . . . . . . . . . . . : Адаптер Microsoft ISATAP
      Физический адрес. . . . . . . . . : 00-00-00-00-00-00-00-E0
      DHCP включен. . . . . . . . . . . : Нет
      Автонастройка включена. . . . . . : Да
     
    Туннельный адаптер Teredo Tunneling Pseudo-Interface:
     
      DNS-суффикс подключения . . . . . :
      Описание. . . . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
      Физический адрес. . . . . . . . . : 00-00-00-00-00-00-00-E0
      DHCP включен. . . . . . . . . . . : Нет
      Автонастройка включена. . . . . . : Да
      IPv6-адрес. . . . . . . . . . . . : 2001:0:9d38:953c:c57:ca6e:4d81:1af(Основн
    ой)
      Локальный IPv6-адрес канала . . . : fe80::c57:ca6e:4d81:1af%15(Основной)
      Основной шлюз. . . . . . . . . : ::
      NetBios через TCP/IP. . . . . . . . : Отключен
     
    Туннельный адаптер isatap.{60665536-6F6C-4CD0-96BA-45B06620275A}:
     
      Состояние среды. . . . . . . . : Среда передачи недоступна.
      DNS-суффикс подключения . . . . . :
      Описание. . . . . . . . . . . . . : Адаптер Microsoft ISATAP #3
      Физический адрес. . . . . . . . . : 00-00-00-00-00-00-00-E0
      DHCP включен. . . . . . . . . . . : Нет
      Автонастройка включена. . . . . . : Да
     
    Туннельный адаптер isatap.{0AC44C4B-ED58-48EB-9018-F50A0AEF7776}:
     
      Состояние среды. . . . . . . . : Среда передачи недоступна.
      DNS-суффикс подключения . . . . . :
      Описание. . . . . . . . . . . . . : Адаптер Microsoft ISATAP #4
      Физический адрес. . . . . . . . . : 00-00-00-00-00-00-00-E0
      DHCP включен. . . . . . . . . . . : Нет
      Автонастройка включена. . . . . . : Да
     
    C:\Users\Alex>
    Возможно вы правы и дело просто в этих непонятных для меня сетевых
    Туннельный адаптер isatap.{60665536-6F6C-4CD0-96BA-45B06620275A}:
    Туннельный адаптер isatap.{0AC44C4B-ED58-48EB-9018-F50A0AEF7776}:
    Туннельный адаптер Teredo Tunneling Pseudo-Interface:
    Туннельный адаптер isatap.{5341A7C5-4F5C-46F0-8E66-3C49A6261CA8}:
     
  15. nailxx

    nailxx Официальный Нерд Администратор

    Ой, за несколько лет про Винду, видимо, всё забыл. Хотел посмотреть ваш IP, netmask и Gateway. Видимо, команда не та :) Убедитесь, что ваш комп в подсети 192.168.1.*

    Другие мысли закончились, завтра соберу то, что у вас в офисе и отпишусь что да как.

    UPD. А, во, второго поста не увидел сразу. С сетью вроде всё ок у вас.
     
  16. Alex19

    Alex19 Гуру

    192.168.1.1
    netmask - 255.255.255.0
    Gateway - пусто

    Спасибо за помощь, я завтра приволоку 3 комп., в этих много мусора туфельные адаптеры серверы и т.д. Может дело в них.

    Еще раз спасибо!
     
  17. Alex19

    Alex19 Гуру

    У arduino совместимой платы была такая же проблема, решена внешним питанием
    http://forum.freetronics.com/viewtopic.php?f=26&t=669

    Попробую найти на работе блок питания или аккумулятор и завтра вечером подключить
     
  18. Alex19

    Alex19 Гуру

    Для тех у кого Ethernet Shield V1.0 for Arduino (Microchip's ENC28J60) с той же проблемой.
    Говорят что решена
    http://arduino.cc/forum/index.php?topic=117857.0
    http://www.nuelectronics.com/estore/index.php?main_page=product_info&cPath=1&products_id=4
    Библиотека
    http://www.nuelectronics.com/download/projects/etherShield.zip

    Сам не проверял.

    Может кому-то будет полезно, я все равно копаю интернет :)
     
  19. nailxx

    nailxx Официальный Нерд Администратор

    Кстати о питании, быть может вы запитались от USB на 100 мА. Попробуйте в другой порт того же компа воткнуться.
     
  20. Alex19

    Alex19 Гуру

    Появилась минутка на работе, протестировать блок смогу только вечером.
    Да я пробовал, как узнал, что может быть из-за питания. И USB 2.0 и USB 3.0 и на прямую к материнской и на переднюю панель.

    И к ноутбуку в несколько портов.