arduino MEGA + ethernet shield

GrIZZIy
Offline
Зарегистрирован: 04.11.2014

Народ подскажите, как с ардуины перейти на конкретный url адрес?

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Переходим по адресу http://arduino.cc/latest.txt

EthernetClient client;
char server[] = "arduino.cc";
if (client.connect(server, 80)) {
    Serial.println("connecting...");
    // send the HTTP PUT request:
    client.println("GET /latest.txt HTTP/1.1");
    client.println("Host: arduino.cc");
    client.println("User-Agent: arduino-ethernet");
    client.println("Connection: close");
    client.println();
}else {
    // if you couldn't make a connection:
    Serial.println("connection failed");
    Serial.println("disconnecting.");
    client.stop();
}

Как то так 

GrIZZIy
Offline
Зарегистрирован: 04.11.2014

Это как я понимаю кусок кода из скетча, не могли бы вы скинуть весь код? был бы очень благодарен.

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Это кусок из стандартного примера...

GrIZZIy
Offline
Зарегистрирован: 04.11.2014

может у вас есть пример покороче? просто здесь много чего лишнего, мне бы просто на url конкретный перейти и все (я в ардуине новичек, разбираюсь только, но настроить ее как клиент у меня никак не получается, может вы знаете, можно как нибудь заставить ардуину заходить на адрес раз в 5 минут например?)

GrIZZIy
Offline
Зарегистрирован: 04.11.2014

ну или есть какой-нибудь более понятный код с комментариями? (я уже множество раз загружал стардартные скетчи WebClient из Ethernet.h но постоянно вылезает connection fail )

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Пример этот для модуля W5100 и он максимально прост. А у вас ENC28J60 как я понял. Значит он не для вас. В библиотеке EHTERSHIELD_H library . Есть функция 

void ES_client_browse_url(char *urlbuf, char *urlbuf_varpart, char *hoststr, void (*callback)(uint8_t,uint16_t,uint16_t));

Есть еще библиотека https://github.com/jcw/ethercard но она не захотела работать с моим модулем. А потом я забил на него потому что он требует слишком много оперативки.

Вобщем у тех библиотек тоже есть примеры - смотрите их. Вообще вебклиент это не сложная штука - нужно подключится к серверу на 80 порт(TCP) и отослать ему данные(в перврм посте). Сервер может что-то ответить, но нам это не особо важно - пусть там хоть 404 ошибка, хоть 500. 

GrIZZIy
Offline
Зарегистрирован: 04.11.2014

Может вы бы смогли мне помочь составить работающую программу за отдельную плату? просто я уже не первый день пытаюсь выполнить последний элемент моей курсовой, но ничего не выходит, осталось лишь научиться скидывать данные датчика на страничку ecquire.php GETом, вы сможете мне помочь?

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

GrIZZIy пишет:

Может вы бы смогли мне помочь составить работающую программу за отдельную плату? просто я уже не первый день пытаюсь выполнить последний элемент моей курсовой, но ничего не выходит, осталось лишь научиться скидывать данные датчика на страничку ecquire.php GETом, вы сможете мне помочь?

https://www.youtube.com/watch?v=e9qeCrK85Fs&list=UU7aH7HVqDvwB1xNHfSl-fDw

https://www.youtube.com/watch?v=PPB2Xvubt4s&list=UU7aH7HVqDvwB1xNHfSl-fDw

https://www.youtube.com/watch?v=Dg78YB3i1Vc&list=UU7aH7HVqDvwB1xNHfSl-fDw

GrIZZIy
Offline
Зарегистрирован: 04.11.2014

Большое вам спасибо! не догадался сам глянуть на ютубе:)

GrIZZIy
Offline
Зарегистрирован: 04.11.2014

единственное, что он ипользует ардуину в роли сервера, а мне нужно в качетсве клиента(

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

GrIZZIy пишет:

единственное, что он ипользует ардуину в роли сервера, а мне нужно в качетсве клиента(

Я уже писал на том канале и вам напишу - ENC28J60 - не лучший выбор для доступа в сеть в Ардуино. Тем более, если вы не знаете, как это работает.

У этого модуля нет аппаратного IP-стека, все делается программно.

GrIZZIy
Offline
Зарегистрирован: 04.11.2014

а что посоветуете для выхода в интеренет?

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Вот http://www.aliexpress.com/item/free-shipping-UNO-Shield-Ethernet-Shield-W5100-R3-UNO-Mega-2560-1280-328-UNR-R3-only/32221597233.html

Хотя если есть понимание то можно и на ENC28J60 - попробовал EtherCard на другой плате - заработало - задумался о вечном.

Скачал вроде бы свежую библиотеку - перестало работать. Восстановил старую - работает - чудеса в решете. 

Так что если не хотите плясать с бубном вокруг ENC28J60 и умолять его хоть немного порпботать - используйте W5100.