Arduino + Web Server
- Войдите на сайт для отправки комментариев
Ср, 20/03/2013 - 22:47
Ребята прошу помощи! Поделитесь ссылкой как отсылать данные с arduino на веб сервер. Может кто уже описывал подобный проект. Хоть что то! Просто наведите на правильный путь)
Если местный поиск не хотите использовать по каким-то религиозным соображениям - google.ru, читать про POST и GET запросы с использованием Ethernet Shield.
Там, обычно, в примерах уже все есть - называется HTTP client...
Ребята прошу помощи! Поделитесь ссылкой как отсылать данные с arduino на веб сервер. Может кто уже описывал подобный проект. Хоть что то! Просто наведите на правильный путь)
Тоже не могу найти как корректрно послать GET на веб сервер
Если появится информацие поделитесь плз
Надеюсь найти как на duino`е настроить tcp/ip соединение с помощью ethernet-шилда найдете сами?
Далее устанавливаете соединение с нужным сервером, например ya.ru на порт 80 (можно потренироваться телнетом "telnet ya.ru 80"). Затем отправляете следующий код (именно это шлет chrome):
Затем 2 переноса строки, которые определяют, что Вы закончили отправлять заголовок теперь только слушайте. Ответ придет в аналогичном виде: заголовок, 2 переноса строки и данные (ответ может быть без данных тогда, только заголовок), затем сервер закроет соединение.
Детальнее, что из HTTP запроса можно убрать за не надобностью или добавить (Ваши данные), ищите документацию по http-протоколу, там много всего...
все зависит от того,какой шилд и какие библиотеки используются ,а так отправить достаточно "GET /адресстроки HTTP/1.1" и если есть виртуалхостинги ,то добавить "Host: вашдомен.ru"
>Accept-Encoding: gzip
;)
Написал, же, что пример из Chrome - тупо закопипастил, а что надо или нет см. в описании протокола.
А потом, может чел захочет на дуине реализовать gzip ;) А еще чтобы дуина шифровалась под последний айфон, чтобы с него в социальные сети писать и хвастаться, что у него айфон :)
Написал, же, что пример из Chrome - тупо закопипастил,
Могли и не писать, хедер "User-Agent" тоже видно :)
а что надо или нет см. в описании протокола.
Зачем мне смотреть в описание протокола? Если я обратил внимание на "Accept-Encoding" то наверное уже имею общие представление о протоколе? ;) На другие тоже обратил, просто именно он больше всех на кандидатуру "граблей удачно положенных" подходил.
Ведь новичок же - вот возмет так все копи-пастом и пошлет. Хотя... врядли он вообще что-то пошлет. Раз гугл и примеры из базовой поставки не смогли подсказать направление. А уж что "чтение описания протокола" даст просветление моментально - сомневаюсь (и в ч тении и в просветлении).
А потом, может чел захочет на дуине реализовать gzip ;) А еще чтобы дуина шифровалась под последний айфон, чтобы с него в социальные сети писать и хвастаться, что у него айфон :)
Да ладно... зачем для этого заголовки? Мне думается что персонажам которым важно у кого "последний айфон" - достаточно в сам текст поста добавлять "написанно на Iphone 99".
P.S. Последнию неделю я провел в войнах с кросс-доменными ajax, куками и авторизацией. Все это на связке Flash+Javascript (тоже "размазаныне" по разным доменам). Так что "прикопатся к заголовкам" - это уже безусловный рефлекс ;)
Да ладно... зачем для этого заголовки? Мне думается что персонажам которым важно у кого "последний айфон" - достаточно в сам текст поста добавлять "написанно на Iphone 99".
Это тоже не всем очевидно как и все выше отмеченное Вами, иначе не было бы таких просьб: "Если я пришлю тебе мои логин и пароль, сможешь мне что-нить написать со своего яйфона на доску, чтобы все подумали, что у меня айфон?".
Собственно вопрос был "как?", на что был дан ответ как это делает реальный браузер, а детализация хидеров зависит от конкретных задач. В зависимости от программера сайта и админа сервера, в зависимости от данных заголовков результат может очень существенно отличаться, почему многие боты шифруются под известные браузеры. Более того, некоторые админы настолько не любят ботов, что по не полному хидеру вообще могут контент не отдать.
Спорить можно много - вопрос уже скорее филосовский.
leshak, в описание протокола предлагал смотреть не Вам, а автору топика. Собственно только глядя в протокол мало что понятно, а если есть рабочий пример, то оттолкнушись от него, наверное значительно легче понять зачем тот или иной хидер.
P.s. У меня был случай когда серверу был критичены регистр каждой буковки в хидере и сами разаработчики не могли понять почему их система не работает, пока я их не ткнул пальцем.
2dtvims: да что вы так серьезно? Тема же - явно "не о чем". Понятно что вы знаете "зачем подделыть User-Agent", так же очевидно что я с этим знаком. Так шо это просто - чешим языком. Наши бодания по поводу хедеров - все равно топик стартеру ничем не помогут. Так же как и отсылка "к протоколам". Ну не верю я что человек который не смог загуглить "Arduino Ethernet" будет разбиратся с протоколами (тем более, что-бы запустить скетч из примера - это не нужно).
>Более того, некоторые админы настолько не любят ботов
сам такое писал. но не из паранои, а потому что "старая древняя легаси система", которая без куков нормально работать не хотела и заходы ботов генерили кучу джанка в error log. Конечно "это криво", но в условиях ограниченного "срока-бюджета", когда нужно "ну ка к нибудь лишь бы за 15-ть минут" - тоже проще всего оказалось тупо делать Response.End() в случае детектирования бота (SEO там был не важен, так что и google с yande-ксом спокойно в пешую прогулку отправить можно было).
Ну, автор или завис илитупо свалил, чтобы понять у первоисточника, что же он хотел на самом деле :)
А если рассматривать что можно легко загуглить, то легко гуглится инфа по Ethernet шилду с минимальными возможными действиями: получение IP адреса или задание его IP в ручную и установка соединения с сервером. А вот установка соединия с конкретным сервером уже не очевидно где искать. Те, кто в этом разбираются, понимают, что ардуино или PC уже значения дальше не имеет, а под это документации вагон и зачем это описывать еще раз но для дуины?
Кстати, вот тут пример уже клиента к вэб серверу http://robocraft.ru/blog/arduino/203.html - странно, что его автор не нашел (я бы там в первую очередь посмотрел :) Хотя приведенный там пример, применительно к ya.ru (т.е. если оставить только строку GET) вернет ошибку "HTTP/1.1 400 Bad Request".
http://www.myfirstsite.ru/articles/web-server-functioning - пример статьи, по http.