是否可以从页面索引获取值?

问题描述 投票:0回答:3

我想使用ESP8266和led strip ws2812做一个简单的项目,我想从网页控制它。是否可以从页面索引获取变量?现在,我只有简单的代码可以打开/关闭它。输入后:

http://192.168.0.17/off

指示灯关闭。

else if (readString.indexOf("off") != -1) {
//turn off leds

我想更新代码,并尝试获取RGB值。例如,是否可以从这样的索引中获得红色,绿色,蓝色值?

    http://192.168.0.17/150RED_0GREEN_150BLUE

// here i want to get variables like: 
    int RED_val = 150;
    int GREEN_val = 0;
    int BLUE_val = 150;

使我的led灯带变成粉红色和其他颜色。

arduino arduino-esp8266 esp8266wifi
3个回答
0
投票

正确的方法是使用POST而不是GET (url),因为您正在'更新服务器上的数据'。

但是使用GET (via url)时可以使用参数:

http://192.168.0.17/setcolor?r=10&g=20&b=30

然后将这些值读入变量。


0
投票

如果您真的想深入研究使用WS2812和ESP8266的方法,请使用使用FastLed库的示例之一。WS2812 and ESP8266 - A good starting point is this repo了解有关设置Web服务器的信息,GET,POST,PUT,DELETE之间有什么区别... ...最终,您将在尝试提高Arduino / ESP世界的C / C ++技能的同时深入研究HTML,CSS和香草javascript 。


0
投票

我认为我已找到解决方案-ESP8266WebServer。例如,现在在调用“ setcolor”之后(请在下面检查)我可以使用url输入参数。它看起来像:192.168.0.17/setcolor?pixel_num=1&red=255&blue=0&green=0用于1号LED上的红色(灯条上的第二个)

server.on("/setcolor", setPix);


void setPix(){
  String n = server.arg("pixel_num");  
  String r = server.arg("red");
  String g = server.arg("green");
  String b = server.arg("blue");
  strip.setPixelColor(n.toInt(),r.toInt(),g.toInt(),b.toInt());}

谢谢您的帮助。

© www.soinside.com 2019 - 2024. All rights reserved.