Решено: Доступ в интернет через сетевую карту компьютера для Ethernet shield

Тема в разделе "Arduino & Shields", создана пользователем Felix102, 3 окт 2017.

  1. Felix102

    Felix102 Нерд

    Добрый вечер!

    Подключаю shield HanRun HR911105A к роутеру и скетч web client из библиотеки ethernet работает отлично.

    Подключаю к ноутбуку. Настраиваю на нём сеть:
    Снимок экрана 2017-10-03 в 18.41.28.png
    загружаю скетч в котором указываю днс, шлюз и маску, но как не кручу ответ на запрос получить не получается. Да и есть сомнения что он вообще уходит.
    Как выйти в сеть ардуине через сетевую ноутбука?

    Код (C++):

    #include <SPI.h>
    #include <Ethernet.h>

    byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
    char server[] = "www.google.com";  

    IPAddress ip(192, 168, 1, 177);
    IPAddress gateway(192, 168, 1, 111);
    IPAddress subnet(255, 255, 0, 0);
    IPAddress  mydns(192, 168, 1, 111);
    EthernetClient client;

    void setup() {
      Serial.begin(9600);
      while (!Serial) {
        ;
      }

      if (Ethernet.begin(mac) == 0) {
        Serial.println("Failed to configure Ethernet using DHCP")
        Ethernet.begin(mac, ip, dns, gateway, subnet);// пробую и так
        //Ethernet.begin(mac, ip, mydns, gateway, subnet); // и так

      }
      Serial.println(Ethernet.localIP());
      delay(1000);
      Serial.println("connecting...");
      if (client.connect(server, 80)) {
        Serial.println("connected");
        // Make a HTTP request:
        client.println("GET /search?q=arduino HTTP/1.1");
        client.println("Host: www.google.com");
        client.println("Connection: close");
        client.println();
      } else {
        Serial.println("connection failed");
      }
    }

    void loop() {
      if (client.available()) {
        char c = client.read();
        Serial.print(c);
      }
      if (!client.connected()) {
        Serial.println();
        Serial.println("disconnecting.");
        client.stop();
        while (true);
      }
    }
     
     
  2. b707

    b707 Гуру

    логично, ноутбук не является роутером. Гуглите, как на своем ноуте (систему вы не указали, но судя по картинке это Макось) - включить маршрутизацию пакетов с одного сетевого интерфейса на другой
     
  3. Felix102

    Felix102 Нерд

    Кажется я указал IP своего маршрутизатора к которому Макбук присоединен по вайфай.
    а ДНС для ардуины есть Макбук.

    Что не верного в моей цепочке?
     
  4. b707

    b707 Гуру

    В каком месте вы указали IP маршрутизатора? - в макбуке, правильно?
    А в ардуине у вас в качестве маршрутизатора и в качестве DNS указан ноут.

    То есть вы полагаете, что ваш ноут "из коробки" умеет обрабатывать DNS-запросы как сервер? - А так же умеет получать сетевые пакеты с кабеля и сам отправлять их в вай-фай? - я не спец по маку, но сильно сомневаюсь, что такой софт у вас установлен. Во всяком случае в винде и линуксе по умолчанию такого софта нет или он выключен, его нужно сначала установить и настроить.
     
    NikitOS нравится это.
  5. rkit

    rkit Гуру

    Единственное, что надо включить на ноуте, это NAT.
    На дуне пишется статический адрес, в качестве маршрута ноут, в качестве днс сервера роутер или гугл.
     
  6. ORLENOK

    ORLENOK Гик

    На win, чтобы это работало, нужно настроить мост между Беспроводным адаптером и ethernet портом. Можно сделать, выделив два одновременно, затем ПКМ, затем настройка моста.
    Для mac нашел такую инструкцию:

    1. Запускаем приложение Системные настройки.
    2. Открываем раздел Общий доступ.
    3. Кликаем на Общий интернет в левой части панели.
    4. В выпадающем меню Общее подключение выбираем WiFi.
    5. В списке Для компьютеров использующих выбираем Ethernet или Мост Thunderbolt, в зависимости от того, как вы подключили компьютер.
    6. Ставим флажок в левой части напротив Общий интернет.
    7. Проверяем как все работает на подключаемом компьютере.
     
    Felix102 нравится это.
  7. b707

    b707 Гуру

    прям-таки на любом ноуте под любой ОС есть НАТ? :)
     
  8. rkit

    rkit Гуру

    Для любой современной настольной ОС 50% что уже есть, 50% что устанавливается за пять минут.
     
  9. Felix102

    Felix102 Нерд

    Большое спасибо! Помогло!

    Удивлен что за 1 час так много ответов)

    Давно я на форумах вопросы не задавал)

    Спасибо всем, старавшимся помочь за не безучастность)