Arduino считывает значения после ? в URL-адресе с ethernet-экраном

Извините, если об этом уже спрашивали, но я ничего не могу найти в Интернете. Я просто хочу разместить страницу в arduino ethernet Shield, и когда я захожу на нее из браузера с параметрами Get (например, http://xxx.xxx.xx.xx/led.html?red=255,green=0,blue=255), чтобы изменить, чтобы изменить цвет светодиода. Я не могу найти, как отправить данные из браузера в arduino.


person Christos Mitsis    schedule 27.02.2015    source источник
comment
arduino.cc/en/Reference/EthernetBegin вы пробовали это? установить соединение, т.е.   -  person Brett Caswell    schedule 27.02.2015
comment
Это нужно для инициализации щита. Как я могу использовать его для анализа значений?   -  person Christos Mitsis    schedule 27.02.2015
comment
Я просто определял, установили ли вы сначала соединение с DHCP-шлюзом. Что касается разрешения запросов к устройству, я уверен, что оно, как и любая другая сетевая карта или периферийное устройство, не выполняет функции веб-сервера.   -  person Brett Caswell    schedule 27.02.2015
comment
Да, я знаю основы, но как я могу анализировать значения из браузера в arduino (я предпочитаю получать параметры)   -  person Christos Mitsis    schedule 27.02.2015
comment
да... вроде можно, если встроить веб-сервер в ардунио. вам будет полезна эта информация: academia.edu/7510788/   -  person Brett Caswell    schedule 27.02.2015
comment
Можете ли вы привести пример того, как читать полученные значения? Потому что я не могу найти ничего относительного на странице, которую ты мне сказал.   -  person Christos Mitsis    schedule 27.02.2015


Ответы (1)


Ответ предполагает использование Библиотеки Ethernet (Ethernet.h) - который предоставляет интерфейс для Client и Server, степень концептуализации низкоуровневого ввода-вывода и буферизации ввода, а также контекст.

В следующем фрагменте кода (пример кода на http://arduino.cc/en/Tutorial/WebServer< /а> )

...
char c = client.read();
Serial.write(c);
...

строка char c = client.read() берет байт из потока запросов и присваивает его типу char, затем он сериализует этот charbyte в строку, где выполняет над ним условную логику.

Условная логика этого примера заботится только о чтении символа возврата \n в пустой строке, но байты, которые считываются (на каждой итерации) байт за байтом, фактически составляют запрос RAW.

Как минимум, запрос RAW HTTP GET выглядит так:

GET /?first=John&Last=Doe HTTP/1.1 
Host: localhost

Таким образом, чтобы прочитать строку запроса, необходимо буферизировать байты, считываемые из потока.

Затем вы, скорее всего, сериализуете весь буфер в строку и будете выполнять над ними строковые операции, а также свою условную логику....

person Brett Caswell    schedule 27.02.2015