Отправка данных на ардуино через интернет
- Войдите на сайт для отправки комментариев
Чт, 24/11/2011 - 12:00
Добрый день!
Имеется ардуина+интернет шеилд, работающие в режими сервера.
В окне терминала все ок, т.е. при подключении к ардуино от удаленного компьютера начинает бегать служебная информация состояния подключения (ардуино подключен к роутеру, на вход которого идет ADSL ин-ет, роутер раздает инет по wi-fi, удаленый компьютер обращается к ардуине через wi-fi).
1й вопрос: как передать на ардуину простейшие параметры из браузера (т.е. 1 или 0 через GET\POST запросы)
2й вопрос: компьютеры домашний сети видят ардуину по ip, присвоеному ему роутеру, а как дела обстоят с компами не из этой сети?
Спасибо за ответы и помощь!
Насчет второго вопроса: необходимо "пробросить порт". На разных роутерах это делается по разному, информации по этому поводу много, например вот: portforward.com
Спасибо за ответ!
Небольшой комментарий к моему первому вопросу: как передать серверу информацию - ясно, форма ввода, яваскрипты или аякс, но несовсем до меня дошло: как обработать входные данные ардуином (аналогия $_GET[]\ $_POST[] в php)?
По втрому вопросу, помимо проброса, есть еще тонкость внешнего адреса. Неплохо иметь выделенный внешний IP, а не динамический, чтобы знать куда стучаться.
Ну да, или пользоваться сервисами динамических DNS. (некоторые роутеры эту функцию поддерживают)
Еще иногда может возникнуть проблема с открытием доступа по некоторым портам. У многих провайдеров эта функция оплачиваается отдельно, и надо либо оплачивать соответствующую услугу (обычно 100-150р в месяц) либо использовать незаблокированный порт.
Итак, немного знаний по поводу проброски портов:
1.http://www.adslclub.ru/new/man/modem - инструкции ко многим модемам или аналогам, там я нашел аналог своего D-Link 2600U
2.http://dlink.ru/ru/faq/68/275.html - о проброске портов у д-линка вкратце
3.http://p2p.toom.su/D-Link - обучающее видео о проброске портов на примере D-Link DIR-100
Но для меня пока остается загадкой: допустим, ардуино присвоен ip 192.168.1.7 в домашней сети, следовательно, в настройках роутера я пробрасываю порт к этому ip, а как тогда обратиться к этому порту "из вне" (предполагаю, что это выглядит так: мой айпи + ":" + проброшенный порт) ?
Ну да, или пользоваться сервисами динамических DNS. (некоторые роутеры эту функцию поддерживают)
В моем роутере есть вкладки DNS, в них везде проставлено "включено, т.е. Enable Automatic Assigned DNS"...Как мне это может облегчить жизнь?
Разжуйте профану, пожалуйста.Спасибо!
Все молчат, отвечу себе сам на вопрос о передаче параметров НА ардуину, работующую как сервер:
обращаемся к ардуине по ip+"/?param=value", на ардуине это будет в первой строке запроса от клиента (client.read()) что-то типа "/GET param=value HTTP", парсим эту строку и вытаскиваем переменные.
Но для меня пока остается загадкой: допустим, ардуино присвоен ip 192.168.1.7 в домашней сети, следовательно, в настройках роутера я пробрасываю порт к этому ip, а как тогда обратиться к этому порту "из вне" (предполагаю, что это выглядит так: мой айпи + ":" + проброшенный порт) ?
Так и есть. А еще желательно привязать желаемый ip адрес к mac адресу ардуино (если это возможно). Обычно это делается в настройках dhcp.
Насчет динамического dns. ищите в настройках все, связанное с DDNS.
Спасибо.
Сейчас собираю аппаратную часть и как девайс будет готов - подключаю к сети, пытаюсь подключиться к нему из другого города, и если все ок - отпишусь в данной теме "от и до".
Как успехи?
У самого есть ардуино +W5100 хочу подключить к нету через роутер чтобы на каком-нибудь сайте инфу с ардуино сохранялась.
К примеру температура с датчика. Интернет перекопал, нашел аналогичный проект, но видимо изложенный материал до меня не доходит.
Из проблем так же то, что адрес динамический. Как-то видел статью для решения сей проблемы: ардуино переодически сам запрашивает адрес и корректирует его на сайте (помоему как-то так) только сейчас ее найти не могу.
У кого-нибудь что-то похожее получилось? Опишите програмные процедуры "для чайников".
https://www.teleduino.org/ как вариант, иначе танцы с проброской портов или dns
Вот готовый WebServer который умеет управлять портами по команде и видит датчики ds18b20.
https://github.com/sochkasov/majordomo-arduino
Разберайтесь...
Спасибо!
Буду Разбираться.
Добрый день.
Скачал и пользуюсь https://github.com/sochkasov/majordomo-arduino
Не могу снять данные через php код.
по запросу http://192.168.3.177/getdev открывается страница с показаниями датчика
а вот к php коде
$homepage = file_get_contents('http://192.168.3.177/getdev');
Вот готовый WebServer который умеет управлять портами по команде и видит датчики ds18b20.
https://github.com/sochkasov/majordomo-arduino
Разберайтесь...
Тут используется статический IP это не пойдет. Нет его у меня.
https://www.teleduino.org/ как вариант, иначе танцы с проброской портов или dns
Это заработало.
как сделать get запрос и обработать ответ?
Все молчат, отвечу себе сам на вопрос о передаче параметров НА ардуину, работующую как сервер:
обращаемся к ардуине по ip+"/?param=value", на ардуине это будет в первой строке запроса от клиента (client.read()) что-то типа "/GET param=value HTTP", парсим эту строку и вытаскиваем переменные.
А подробнее для чайников можно?
Подскажите, получилось вытащить значение? Сейчас стоит аналогичная задача: ajax запрос со страницы приходит, но не получается вытащить значение из формы в переменную на ардуино
ajax запрос?
http://blog.startingelectronics.com/arduino-web-server-tutorial/
Имеется в виду GET запрос посредством методов open() send() объекта XMLHttpRequest()
Имеется в виду GET запрос посредством методов open() send() объекта XMLHttpRequest()
Этот запрос ни чем не отличается от любого другого. Посмотрите пример из библиотеки Ethernet - там все полностью реализовано и все понятно.
Ржавые пять копеек в тему :-)
Попалась интересная статья(проект) Ардуино передает данные на свой сайт. Все из запросов+скрипты. Необходим свой сайт.
http://cxem.net/arduino/arduino174.php
Можно вопрос? Я прошу помощь в работе с ethernet модулем. Я бы хотел узнать, каким образом можно вводить текст в ардуино что бы данный текст в последющем применялся в коде, как бы переменная присаивала значения того что я хочу ввести. Пожаалйста помогите с этим возможно простым делом
Немного ошибся. Я буду вводить текст на сайте, который ардуино сам и создает(сервер) и так, данные что я ввел, как я думаю должны конвертироваться в числовые данные и потом присваиваться перемнным которые в используются в коде
Немного ошибся. Я буду вводить текст на сайте, который ардуино сам и создает(сервер) и так, данные что я ввел, как я думаю должны конвертироваться в числовые данные и потом присваиваться перемнным которые в используются в коде
Т.е. вы пишите "пять по сто " , а ардуина вам выводит "500" или "0.5Л" и наливает ? Правильно я понял?