0

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

http://192.168.0.17/off

LED 关闭。

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

我想更新我的代码,我正在尝试获取 RGB 值。例如,是否可以像这样从索引中获取 RED、GREEN、BLUE 值?

    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 灯条变成粉红色和其他颜色。

4

3 回答 3

0

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

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());}

谢谢你的帮助。

于 2020-04-02T18:02:43.290 回答
0

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

但是当使用 aGET (via url)你可以使用参数:

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

然后只需将这些值读入变量即可。

于 2020-04-01T12:34:02.170 回答
0

如果您真的想深入了解如何使用 WS2812 和 ESP8266,请从使用 FastLed 库的示例之一开始。
WS2812 和 ESP8266 - 这个 repo 是一个很好的起点
了解如何设置网络服务器 GET、POST、PUT、DELETE 之间有什么区别……
最终你会在尝试改进的同时深入研究 HTML、CSS 和 vanilla javascript你的 Arduino/ESP 世界的 C/C++ 技能。

于 2020-04-01T19:39:06.250 回答