Добрый вечер! Подключаю shield HanRun HR911105A к роутеру и скетч web client из библиотеки ethernet работает отлично. Подключаю к ноутбуку. Настраиваю на нём сеть: загружаю скетч в котором указываю днс, шлюз и маску, но как не кручу ответ на запрос получить не получается. Да и есть сомнения что он вообще уходит. Как выйти в сеть ардуине через сетевую ноутбука? Код (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); } }
логично, ноутбук не является роутером. Гуглите, как на своем ноуте (систему вы не указали, но судя по картинке это Макось) - включить маршрутизацию пакетов с одного сетевого интерфейса на другой
Кажется я указал IP своего маршрутизатора к которому Макбук присоединен по вайфай. а ДНС для ардуины есть Макбук. Что не верного в моей цепочке?
В каком месте вы указали IP маршрутизатора? - в макбуке, правильно? А в ардуине у вас в качестве маршрутизатора и в качестве DNS указан ноут. То есть вы полагаете, что ваш ноут "из коробки" умеет обрабатывать DNS-запросы как сервер? - А так же умеет получать сетевые пакеты с кабеля и сам отправлять их в вай-фай? - я не спец по маку, но сильно сомневаюсь, что такой софт у вас установлен. Во всяком случае в винде и линуксе по умолчанию такого софта нет или он выключен, его нужно сначала установить и настроить.
Единственное, что надо включить на ноуте, это NAT. На дуне пишется статический адрес, в качестве маршрута ноут, в качестве днс сервера роутер или гугл.
На win, чтобы это работало, нужно настроить мост между Беспроводным адаптером и ethernet портом. Можно сделать, выделив два одновременно, затем ПКМ, затем настройка моста. Для mac нашел такую инструкцию: Запускаем приложение Системные настройки. Открываем раздел Общий доступ. Кликаем на Общий интернет в левой части панели. В выпадающем меню Общее подключение выбираем WiFi. В списке Для компьютеров использующих выбираем Ethernet или Мост Thunderbolt, в зависимости от того, как вы подключили компьютер. Ставим флажок в левой части напротив Общий интернет. Проверяем как все работает на подключаемом компьютере.
Большое спасибо! Помогло! Удивлен что за 1 час так много ответов) Давно я на форумах вопросы не задавал) Спасибо всем, старавшимся помочь за не безучастность)