【问题标题】:Arduino read get values after ? in url with ethernet shieldArduino读取后获取值?在带有以太网屏蔽的 url 中
【发布时间】:2015-02-27 20:04:00
【问题描述】:

对不起,如果之前有人问过,但我在互联网上找不到任何东西。我只想在 arduino ethernet shield 中托管一个页面,当我从带有 Get 参数(例如http://xxx.xxx.xx.xx/led.html?red=255,green=0,blue=255)的浏览器访问它以更改 LED 的颜色时。我找不到如何将数据从浏览器发送到 arduino。

【问题讨论】:

  • arduino.cc/en/Reference/EthernetBegin 你试过这个吗?建立连接。
  • 这是初始化屏蔽。我如何使用它来解析值?
  • 我只是在确定您是否首先建立了与网关 DHCP 的连接。就解决对设备的请求而言,我确信它 - 就像任何其他以太网卡或外围设备一样 - 不会执行 Web 服务器功能..
  • 是的,我知道基础知识,但是如何将值从浏览器解析到 arduino(我更喜欢通过获取参数)
  • 是的..如果您在 ardunio 中嵌入 Web 服务器,您似乎可以。您会发现此信息很有帮助:academia.edu/7510788/…

标签: get arduino rgb ethernet led


【解决方案1】:

答案涉及使用The Ethernet Library (Ethernet.h) - 它提供了ClientServer 的接口,在一定程度上概念化了低级I/O 和缓冲输入和上下文

在下面的代码sn-p中(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

因此,要读取查询字符串,您需要缓冲从流中读取的字节。

然后,您可能会将整个缓冲区序列化为一个字符串,并对它们执行字符串操作,以及您的条件逻辑......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多