Ethernet считывать данные

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем nibb, 20 мар 2012.

  1. nibb

    nibb Нуб

    Добрый вечер
    Имеется ардуино мега, ethernet shield и например lcd дисплей
    Подключил ethernet shield, разобрал примеры с поднятием на нем сервера и запуска клиента, вроде всё получается.
    С подключением дисплеем проблем не возникло.
    Управлять лампочкой (вкл/выкл) через ethernet shield тоже научился.
    Теперь пусть еще веб-сервер на компьютере. На нем делаю форму для ввода текста и хочу его отправить через ethernet shield на дисплей, но не выходит...
    Подскажите как это сделать? Как считывать параметры приходящие на сервер ардуино?
    Фактически надо разобрать строчку с запросов. В случае если значения например только 0 или 1 - это сделать не сложно (на каждое значение своя обработка), а вот когда значение может быть любым...

    ЗЫ прошу прошения, если не понятно выражаюсь, но думаю суть всё же ясна. Буду благодарен за любой совет
     
  2. nailxx

    nailxx Официальный Нерд Администратор

    То есть вы хотите, чтобы можно было на компе заполнить форму и чтобы её контент затем отобразился на LCD?

    В этом случае web-server'ом будет Arduino. На компе будет просто страничка с формой, у которой action указывает на Arduino. А ещё лучше, если и страничку с формой будет отдавать плата.

    Когда вы сабмитите форму, на сервер, то есть на Ethernet Shield в конечном итоге, уходит HTTP запрос с методом POST, где поля записываются в теле запроса строкой в форме www-form-urlencoded, т.е. в виде field1=value1&field2=value2 и т.п.

    Поняв как устроен HTTP запрос, вы сможете его разбирать и делать с ним что душе угодно. В конце концов это обычный текст.
     
  3. nibb

    nibb Нуб

    Спасибо за разъяснение.
    Если я правильно понял, то сразу получить имя поля и значение не получится.
    Надо на ардуино делать обработку строки (field1=value1&field2=value2), т.е. искать разделитель переменных (&), искать имя и значение...
    Надеюсь этот метод не окажется очень затратным.
     
  4. nailxx

    nailxx Официальный Нерд Администратор

    Да, нужно разбирать. Вам может сильно упростить жизнь функция strtok. Она есть в Arduino (то бишь в AVR GCC), хотя в его контексте и не документирована.