Ви не увійшли.
Может задаваемый IP занят или не верно указан?
Стоит попробовать без явного задания IP
Подключено только одно устройство с IP 192.168.1.184
Пробовал запускать без указания АйПи
Ethernet.begin(mac);
- в порт не идет вообще ничего.
Пробовал отключать DHCP.
Может задаваемый IP занят или не верно указан?
Стоит попробовать без явного задания IP
Добрый день. Прошу помощи.
Дано:
Ардуино нано вот такая: 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");
}
}
Заранее благодарен.