我想使用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灯带变成粉红色和其他颜色。
正确的方法是使用POST
而不是GET (url)
,因为您正在'更新服务器上的数据'。
但是使用GET (via url)
时可以使用参数:
http://192.168.0.17/setcolor?r=10&g=20&b=30
然后将这些值读入变量。
如果您真的想深入研究使用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 。
我认为我已找到解决方案-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());}
谢谢您的帮助。