ок, давайте разбираться. так как я не знаю, что именно у вас не работает, а вы сами не говорите, то я буду задавать вопросы с самого начала, а вы просто отвечайте. так мы рано или поздно найдем ,что именно увас не работает.
Помогите пожалуйста нужен кусок кода для отправки get запроса с помощью данного ethernet shield-а. И какую библиотеку использовать. Сколько ищю ничего не получается.
В части GET и POSTзапросов - c браузером потренируйтесь для начала, а потом перенесете на шилд... Ну и, по-хорошему, прежде чем что-то совать в селект - надо бы проверить, что оно существует, отличается от нуля, и имеет разумную длину.
Есть enc28j60 как на картинке выше и arduino mega2560. Мне нужно получать ip по dhcp и передавать данные на сервер подскажите рабочую библиотеку и примеры
Нашел библиотеку UIPEthernet https://github.com/ntruchsess/arduino_uip с ней получаю по примеру web client адрес по dhcp (УРА!!!!). Но с отправкой данных ничего не выходит (хотя в ходе эксперементов один раз отправил (но я поздно заметил и повтарить не удалось :( )). Помогите!!! :(
но теперь возник вопрос_ если отвалится соединение или выдернуть шнурок и воткнуть обратно то соединение не востановится и ip уже не получим. Какие есть предложения?
пишет: Arduino: 1.5.6-r2 (Windows XP), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"
webClient.ino: In function 'void loop()':
webClient:49: error: invalid conversion from 'const char*' to 'prog_char*'
webClient:49: error: initializing argument 1 of 'static void EtherCard::browseUrl(prog_char*, const char*, prog_char*, void (*)(uint8_t, uint16_t, uint16_t))'
В проекте еще использую Stash::prepare для отправки данных на сервер. но как с помощью Stash:: получить данные пока не разобрался
Походу, чтобы дождаться ответа нужно новую тему создавать.
Теперь по делу, проблема возникает при использовании старых библиотек <EtherCard.h> и <RF24.h>. При установке новых, проблема исчезает, но засада в том, что с новыми ничего не работает.
Остановился на таком варианте, мож кому пригодится.
Sonmax, компилятор Вам сказал, что он ожидает в первом аргументе типа prog_char*, а у Вас там const и это его смутило. Вы же зачем-то оставили const, и присобачили к нему преобразование к (char *). Зачем дважды преобразовывать? Ощущение, что делалось это методом тыка по принципу "ой, кажется заработало". :)
В принципе, (prog_char*) перед website можно и убрать, но можно и оставить - хуже не будет.
При такой записи Ваша строка "/w4394_1.php" сразу преобразуется к типу (prog_char*), что и требуется. А так как у Вас написано, она сначала преобразется к PSTR, затем Вы указали преобразование к (char *), а затем компилятор таки преобразует его к (prog_char*), как ему собственно и надо. Т.е. происходит ТРИ преобразования вместо одного.
У меня нет этой библиотеки, потому попробовать не могу, но по смыслу сообщения компилятора должно быть так.
Спасибо, компилируется вроде без ошибок, но на железе только вечером попробую. т.к., так же пробовал убирать PSTR: ether.browseUrl(("/w4394_1.php"), "", website, my_result_cb);
и ошибок не было, но ethernet не поднялся.
P.S.
не очень понял про малолеток, FidoNet вроде как с середины 80х существует. Хотя в 90-е это было бы про меня. И для меня это не жаргон, а просто сокращение- "библ-ой". И конечно же я это учту при общении с Вами, спасибо.
В любом случае (если не поднимется) тройное преобразование - не выход.
Надо смотреть что такое "prog_char" - этот тип определяется в файле arduino-1.6.5-r2\hardware\tools\avr\avr\include\avr\pgmspace.h и кстати, там много комментариев про него - почитайте. поймёте почему не работает с новыми версиями.
Есть такой вопрос, у меня поему-то по dhcp не хочет получать ip, есть предположение почему так может быть? уже долго голову ломаю, или может к enc28j60 не подходит этот код. Только не бейте, если что, совсем зелёный всё-таки :D
В примерах EtherCard есть реализации,например пример твиттер.
попробую
Не как не получается, помогите плиз
ок, давайте разбираться. так как я не знаю, что именно у вас не работает, а вы сами не говорите, то я буду задавать вопросы с самого начала, а вы просто отвечайте. так мы рано или поздно найдем ,что именно увас не работает.
итак, начнем.
Вопрос 1. Компьютер включен?
Помогите пожалуйста нужен кусок кода для отправки get запроса с помощью данного ethernet shield-а. И какую библиотеку использовать. Сколько ищю ничего не получается.
есть сайт, на нем есть
надо запрос POST или GET
Использую libraries EncEthernet или ETHER_28J60 или ethercard (есть - etherShield с подержкой enc28j60 = но пока не использовал)
В части GET и POSTзапросов - c браузером потренируйтесь для начала, а потом перенесете на шилд... Ну и, по-хорошему, прежде чем что-то совать в селект - надо бы проверить, что оно существует, отличается от нуля, и имеет разумную длину.
в браузере у меня все замечательно выходит а вот перенести не получается, а того и прошу помощь
Кто долго мучается тот находит решение
Tucan_Iura спасибо, помогло. Юзал не ту либу.
Есть enc28j60 как на картинке выше и arduino mega2560. Мне нужно получать ip по dhcp и передавать данные на сервер подскажите рабочую библиотеку и примеры
http://www.lucadentella.it/en/category/enc28j60-arduino/
http://www.lucadentella.it/en/category/enc28j60-arduino/ из этих примеров ничего не получается.
Нашел библиотеку UIPEthernet https://github.com/ntruchsess/arduino_uip с ней получаю по примеру web client адрес по dhcp (УРА!!!!). Но с отправкой данных ничего не выходит (хотя в ходе эксперементов один раз отправил (но я поздно заметил и повтарить не удалось :( )). Помогите!!! :(
Хоть какое то продвижение :) шлет на сервер
но теперь возник вопрос_ если отвалится соединение или выдернуть шнурок и воткнуть обратно то соединение не востановится и ip уже не получим. Какие есть предложения?
Не стал плодить новую тему.
столкнулся с такой неприятностью:
пример из библиотеки ethercard
подключаю
начинает ругаеться на
пишет: Arduino: 1.5.6-r2 (Windows XP), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"
webClient.ino: In function 'void loop()':
webClient:49: error: invalid conversion from 'const char*' to 'prog_char*'
webClient:49: error: initializing argument 1 of 'static void EtherCard::browseUrl(prog_char*, const char*, prog_char*, void (*)(uint8_t, uint16_t, uint16_t))'
В проекте еще использую Stash::prepare для отправки данных на сервер. но как с помощью Stash:: получить данные пока не разобрался
кто-то сталкивался с такой проблемой?
Походу, чтобы дождаться ответа нужно новую тему создавать.
Теперь по делу, проблема возникает при использовании старых библиотек
<EtherCard.h> и <RF24.h>.
При установке новых, проблема исчезает, но засада в том, что с новыми ничего не работает.Остановился на таком варианте, мож кому пригодится.
sonmax, зачем на таком? Там же в сообщении компилятора ясно было написано в чём дело, чего огород городить? Зачем тройное преобразование типов?
По другому не получилось. Как надо было?
И второй вопрос, с помощью ф.Stash: можно с сайта данные получить?
Sonmax, компилятор Вам сказал, что он ожидает в первом аргументе типа prog_char*, а у Вас там const и это его смутило. Вы же зачем-то оставили const, и присобачили к нему преобразование к (char *). Зачем дважды преобразовывать? Ощущение, что делалось это методом тыка по принципу "ой, кажется заработало". :)
Да, получилось методем тыка, т.к. знаний в этой части у меня маловато. Если не трудно, правильное решение какое?
B если уж дальше разбираться, то каким образом библа RF24 влияет на стороннюю EtherCard?
Да, получилось методем тыка, т.к. знаний в этой части у меня маловато. Если не трудно, правильное решение какое?
Ну, вот смотрите, компилятор Вам сказал:
webClient:49: error: initializing argument 1 of 'static void EtherCard::browseUrl(prog_char*, const char*, prog_char*, void (*)(uint8_t, uint16_t, uint16_t))'
так и передавайте ему те типы, которых он требует:
В принципе, (prog_char*) перед website можно и убрать, но можно и оставить - хуже не будет.
При такой записи Ваша строка "/w4394_1.php" сразу преобразуется к типу (prog_char*), что и требуется. А так как у Вас написано, она сначала преобразется к PSTR, затем Вы указали преобразование к (char *), а затем компилятор таки преобразует его к (prog_char*), как ему собственно и надо. Т.е. происходит ТРИ преобразования вместо одного.
У меня нет этой библиотеки, потому попробовать не могу, но по смыслу сообщения компилятора должно быть так.
B если уж дальше разбираться, то каким образом библа RF24 влияет на стороннюю EtherCard?
Влиять может как угодно (по типам передралась или по константам, у меня её нет и посмотреть не могу).
Пожалуйста, не употребляйте выражений типа "библа", "прога", "либа", "сервак" и т.п. при обращении ко мне. Это жаргон малолеток из ФИДО - уши режет.
Спасибо, компилируется вроде без ошибок, но на железе только вечером попробую. т.к., так же пробовал убирать PSTR:
ether.browseUrl(
(
"/w4394_1.php"
),
""
, website, my_result_cb);
и ошибок не было, но ethernet не поднялся.
P.S.
не очень понял про малолеток, FidoNet вроде как с середины 80х существует. Хотя в 90-е это было бы про меня. И для меня это не жаргон, а просто сокращение- "библ-ой". И конечно же я это учту при общении с Вами, спасибо.
В любом случае (если не поднимется) тройное преобразование - не выход.
Надо смотреть что такое "prog_char" - этот тип определяется в файле arduino-1.6.5-r2\hardware\tools\avr\avr\include\avr\pgmspace.h и кстати, там много комментариев про него - почитайте. поймёте почему не работает с новыми версиями.
Спасибо, большое.
Почти сразу же наткнулся на такую строчку
#include <avr/pgmspace.h>
В примере, который я привел, ее не было.
и вот с ней исходный код
ether.browseUrl(PSTR(
"/foo/"
),
"bar"
, website, my_callback);
компилируется нормально.
Кстати, мне она уже попадалась ранее в каких-то примерах, но я не придал ей значение.
как ардуине работать с ftp сервером ?
Сразу наткнулся на грабли
есть старый ftp сервер. ftp.tratata.com.ua, при входе просит пароль и логинб как ему это выдать ???
плюс при подключениии мой адрес сервера скорее всего измениться на что-то типа ftp://admin@ftp.tratata.com.ua
как соедениться с ftp ?
Ну и, по-хорошему, прежде чем что-то совать в селект - надо бы проверить, что оно существует, отличается от нуля, и имеет разумную длину.
Вы о переменных говорите?
Насколько я понял, надо руками ip расписать для ардуинки, так?
и не подскажите ли, как отправить запрос такого вида?
http://*пользователь*:*Пароль*@192.168.1.105/cgi-bin/ptz.cgi?action=start&channel=0&code=GotoPreset&arg1=0&arg2=7&arg3=0
Есть такой вопрос, у меня поему-то по dhcp не хочет получать ip, есть предположение почему так может быть? уже долго голову ломаю, или может к enc28j60 не подходит этот код. Только не бейте, если что, совсем зелёный всё-таки :D
Господа, есть такой вопрос каким образом можно отправить запрос такого вида? http://логин:пароль@192.168.54.102/cgi-bin/ptz.cgi?action=start&channel=0&code=GotoPreset&arg1=0&arg2=7&arg3=0
https://github.com/arduino-libraries/ArduinoHttpClient/issues/80
Честно сказать, не помогло, не очень понимаю, какие библиотеки нужны для этого и как это использовать