#1 2019-11-12 14:53:51

Alex999
Учасник
Зареєстрований: 2019-11-12
Повідомлень: 2

Проблемы с Ethernet шилд для Arduino Nano V3

Добрый день. Прошу помощи.

Дано:
Ардуино нано вот такая: https://arduino.ua/prod2177-arduino-nano-v3-0-avr-atmega328-p-20au
Ethernet шилд https://arduino.ua/prod2565-ethernet-shild-dlya-arduino-nano-v3

Шилд не желает подключаться к роутеру (проверял по списку клиентов роутера). Роутер Асус в режиме DHCP. Основной шлюз 192.168.1.1. Маска подсети 255.255.255.0.
КомПорт выдает "ip сервера:0.0.0.0"

Скеч:

#include <SPI.h>
#include <Ethernet.h>
// MAC адрес можно выбрать любой - на результат это не повлияет
byte mac[] = {
  0x00, 0xaa, 0xbb, 0xcc,  0xda, 0x02

};
/* IP адрес нужно выбирать исходя из IP адреса основного шлюза - выполнив команду ipconfig в командной строке, получим IPv4 и IPv6 адреса, а так же IP основного шлюза и маску подсети. Если основной шлюз имеет вид 192.168.0.1, то выберем например 192.168.0.177
Основной шлюз можно узнать так же в настройках подключения.*/
IPAddress ip(192, 168, 1, 177);
// Выбираем порт, к которому будем подключаться. По умолчанию при HTTP запросе идет подключение в 80 порту, но можно выбрать любое значение
EthernetServer server(80);
void setup() {
  Serial.begin(9600); // открываем монитор COM-порта
  while (!Serial) {
    ; // ждем подключения COM-порта
  }
  // начинаем интернет-соединение
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("ip сервера:");
  Serial.println(Ethernet.localIP());
}
void loop() {
  // ждем появления клиентов
  EthernetClient client = server.available();
  if (client) {
    Serial.println("new client");
    // переменная флаг новой строки
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        // если мы получили символ новой строки
        // и текущая строка пустая, значит запрос окончен
        // и можно отослать ответ
        if (c == '\n' && currentLineIsBlank) {
          // отсылаем старндартные http заголовки
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");  // соединение будет закрыто после получения ответа
          client.println("Refresh: 5");  // автоматическая перезагрузка страницы каждые 5 секунд
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          // выводим данные с каждого аналогового выхода
          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') {
          // у нас новая строка
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          // у нас символ на текущей строке
          currentLineIsBlank = false;
        }
      }
    }
    // даем браузеру время получить данные
    delay(1);
    // закрываем соединение
    client.stop();
    Serial.println("client disconnected");
  }
}

Заранее благодарен.

Неактивний

#2 2019-11-12 15:44:04

Avazart
Учасник
Зареєстрований: 2019-05-05
Повідомлень: 181

Re: Проблемы с Ethernet шилд для Arduino Nano V3

Может задаваемый IP занят или не верно указан?
Стоит попробовать без явного задания IP

Остання редакція Avazart (2019-11-12 15:45:32)

Неактивний

#3 2019-11-12 16:57:30

Alex999
Учасник
Зареєстрований: 2019-11-12
Повідомлень: 2

Re: Проблемы с Ethernet шилд для Arduino Nano V3

Avazart пише:

Может задаваемый IP занят или не верно указан?
Стоит попробовать без явного задания IP

Подключено только одно устройство с IP 192.168.1.184

Пробовал запускать без указания АйПи
Ethernet.begin(mac);
- в порт не идет вообще ничего.

Пробовал отключать DHCP.

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму