Официальный сайт компании Arduino по адресу arduino.cc
Принятие и обработка метода Get с дальнейшем использованием
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вс, 17/05/2015 - 15:04
Здравствуйте,
имеется Arduino Uno R3, Ethernet Shield W5100. Хочу передать запрос с другой программы на изернет об изменении константы или на включение светодиода. Вообще понять как оформлять запросы и разбирать их. Нужна ваша помощь. Кто работал с этой темой и данным обуродованием помогите пожалуйста. Как отправить запрос и как его получить? Это первый вопрос, а второй - как его распарсить на ардуино. Сам конечно же искал, но ничего толковоо не нашел. Сделал сервер на ардуине, который передает данные с датчиков. Дальше не могу работать, т.к. знаний не хватило в этих вопросах.
Хочу передать запрос с другой программы на изернет об изменении константы или на включение светодиода.
О как! Изменение константы? Серьезная заявка на победу.
Сам конечно же искал, но ничего толковоо не нашел. Сделал сервер на ардуине, который передает данные с датчиков. Дальше не могу работать, т.к. знаний не хватило в этих вопросах.
Вы ничего не искали. На форуме КУЧА постов про все это.
Если бы я нашел готовое решение, я не создавал бы специально для этого тему. А если вы знаете где именно и какой пост, киньте ссылку. Ведь интернет одним форумом не ограничивыется. КУЧУ киньте. И мне не надо про все подряд, я задал конкретный вопрос.
Может мне просто написать Вам готовый скетч?
А что вы вдруг захотели мне написать скетч??? Я попросил пример как работать, а не скетч готовый. Если жалко ссылку кинуть, смысл писать всякое не по теме?
А что вы вдруг захотели мне написать скетч??? Я попросил пример как работать, а не скетч готовый. Если жалко ссылку кинуть, смысл писать всякое не по теме?
бой барабанов ссылка... кидаю
www.google.ru
а для тех у кого башня не жилая как в новом танке...
справа вверху окошечко поиска... там можно написать " w5100 GET " и получить 6 страниц тем с примерами и хороводами
Я, к примеру, для w5100 брал отсюда всю инфу для изучения http://zelectro.cc/Ethernet_shield_W5100 . Правда там метод post, а не get, но если долго вникать (как я это делал с нулевыми знаниями практически), то все становится ясно).
Сделал управление. Но так как сервер поддерживает одновременно подключение до 4 клиентов, создается вопрос, который необходимо решить. КАК СДЕЛАТЬ ТАК, ЧТОБЫ СЕРВЕР НА АРДУИНЕ ПРИНИМАЛ ЗАПРОСЫ С КОНКРЕТНОГО IP АДРЕСА???
Принимать он будет все равно все подряд, но если парсить хидер то можно отбрасывать ненужные подключения.
А зачем большие буквы?
А почему с конкретного ip.... Может авторизацию захерачить просто?:-)
Тогда я надеюсь что ТС знает разницу между динамическим и статическим IP
Авторизация не прокатит. поднималась тема и не раз. на ардуино уно не потянет. как парсить хедер? клиент подключается с постоянного ip адреса. как сделать чтобы только он мог отправлять запросы и все?
Думаю, коли добрался уже до шилда, то знает... Помню, не так давно, я был так рад тому скетчу из своего поста выше... Релюшки по сети! Вау! Но для тех, кто залазит в ардуино-дебри этого быстро становится МАЛО)))
Авторизация не прокатит. поднималась тема и не раз. на ардуино уно не потянет. как парсить хедер? клиент подключается с постоянного ip адреса. как сделать чтобы только он мог отправлять запросы и все?
Только если подключить напрямую проводом. Больше никак. Совсем никак.
И почему это вдруг не прокатит авторизация? Что еще за ерунда?
Потому что другие пробовали и не хватило мощности уно поднять сервер с авторизацией. За другие конечно не могу сказать.
Тогда другой вопрос. Как распарсить строку на значение. содержится в запросе ip/$tmin=15 как вытащить значение после знака =?
Потому что другие пробовали и не хватило мощности уно поднять сервер с авторизацией. За другие конечно не могу сказать.
Поясните, о какой авторизации речь.
Может вы об аутентификации на почтовом сервере? С ней да, проблемы.
Тогда другой вопрос. Как распарсить строку на значение. содержится в запросе ip/$tmin=15 как вытащить значение после знака =?
http://www.arduino.cc/en/Reference/StringObject
Аутентификация имеется ввиду. Проверка на ввод имени и пароля. Это имел ввиду. Подскажите пожалуйста функцию или хотя бы алгоритм как распарсить запрос. Я могу проверить только что если втретилось t1= то выполнить действие. а прочесть после = как не могу найти.
Есть ли функция, которая считывает с определенного символа или после символа и до конца строки???
Не могу найти. Преобразовал запрос в строку. получаю $tmin=25
Как вытащить 25??? Ну подскажите пожалуйста
Что не позволяет вводить имя и пароль в строке адреса?
Попробуте "хакнуть" мою дуню: http://webdom.synology.me/webdom
indexof, strpos - пользуйтесь раз уж в гугле забанили
Можно ли вытащить из char С как-то? Или это делать из строки???
Вы вообще понимаете что и почему Ваш скрипт делает? (если он конечно Ваш)
Тогда другой вопрос. Как распарсить строку на значение. содержится в запросе ip/$tmin=15 как вытащить значение после знака =?
indexOf();
substring();
toInt();
Эти три функции решают все вопросы с парсингом.
Да, понимаю конечно. мы получаем запрос, и посимвольно можем вывести Serial.println(c) или сделав так String a(c) вывести а строку. Но вот проверить на содержание символа могу if(c=='tmin=') т.е. если есть такое то можно выполнить действие какое-то в этом цикле. У меня загвоздка как считать символы после = все до конца. потом то присвоить их int я знаю как. Вот в чем провал. И тут требуется помощь.
Вот проверяю indexOf на =. Выводит -1-1-1-1-10-1-1 А что далее? substring не работает. как им вывести?
Вот проверяю indexOf на =. Выводит -1-1-1-1-10-1-1 А что далее? substring не работает. как им вывести?
А... вы в этом смысле...
Так бы и написали, что ленитесь читать документацию...
У меня выводит 0 посимвольно в строке. В чем проблема может быть? Субстринг не работает получается?
У меня выводит 0 посимвольно в строке. В чем проблема может быть? Субстринг не работает получается?
Могу сказать наверняка - субстринг работает. У меня пока низкий левел магического умения читать чужой код на расстоянии. Попробуйте его тут выложить...
Мои карты таро подсказывают что Вы ищите в переменной "с". И могу Вас уверить - хрен Вы что там найдете с Вашими запросами.
Мои карты таро подсказывают что Вы ищите в переменной "с". И могу Вас уверить - хрен Вы что там найдете с Вашими запросами.
так понимаю что тебе стало скучно в отпуске?
я на работе. у меня плохое настроение и булочку с маком уже доел :( в отпуск в пятницу
я на работе. у меня плохое настроение и булочку с маком уже доел :( в отпуск в пятницу
ну доставай батон тогда с маслом и колбасой :) поправляй настроение
Да, к сожалению не сразу заметил, что с считывается посимвольно. Как сделать чтоб получить строку? Ее получается надо собрать из этих символов.
Такой подход мне больше нравится: сам спросил - сам ответил.
Такой подход мне больше нравится: сам спросил - сам ответил.
вид батона поднимает тебе настроение? хочешь я тебе еще фоток с рыбалки пришлю :)
Кофеёк видать взбодрил. Остальное просто самоконтроль. Но из последних сил.
Кофеёк видать взбодрил. Остальное просто самоконтроль. Но из последних сил.
аналогично, чет не спиться. сижу вот фигней страдаю. дочь обзывает хипстером...
Да ответить ответил, только сделать не могу. подскажите хотя бы, не получается собрать
Да ответить ответил, только сделать не могу. подскажите хотя бы, не получается собрать
а как пытаешся собирать? или ты сидишь ждешь когда тебе все напишут?
ты покажи свои попытки, а потом уже бум править..
Не могу понять, как считать с накоплением
char zapros=[15];
Ругается на это
char zapros=[15];
Ругается на это
грязно ругается? матом? О.о
а не можешь скорее всего от того что код нужно писать самому и понимать что он делает.. а не вымораживать что бы люди на форуме за тебя его писали... форум нужно спрашивать если чего не понятно..
http://arduino.ru/Reference/Array
Все проблемы в том, что у Ардуины ужасный компилятор - ни синтаксические, ни орфографические ошибки сам исправить не в состоянии. Да и код не оптимирует. Ацтой короче.
Так я и спросил, мне не понятно как считать символы в строку. Вот здесь мы получаем от клиента символ
if
(client.available()) {
char
c = client.read();
ну если он равен переносу на другую строку то отсылаем страницу. читаем посимвольно. но не могу понять как собрать все символы. Вот и спрашиваю. Как накопить их в одну переменную? В этом месте (где читаем посимвольно же) тут мы должны накапливать? Подскажите пожалуйста как накапливается. Смотрел как из Сериал порта принимали и накапливали. Но так не получилось.
http://arduino.ru/Reference/String
http://arduino.ru/Reference/StringObject
Я вообще хотя бы там проверяю и считывать пытаюсь? А то я посылаю запрос и ничего не выводится. Есть примеры где считывается в массив? Не могу понять где я что неправильно делаю
Есть. Прямо в примерах в ИДЕ.
Я не знаю где Вы пытаетесь считывать.
Настоятельно рекомендую разобрать примеры из библиотеки ETHERNET.
Вам на самом деле не нужен весь ответ клиента, вам нужен только заголовок, его и парсите.
Вот тут я пытаюсь считать. Но ничего не получается. В запросе в конце ставлю ! . чтобы понимать что конец запроса.