Можно ли получить значения из индекса страницы? - PullRequest
0 голосов
/ 01 апреля 2020

Я хочу сделать простой проект с использованием ESP8266 и светодиодной ленты 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;

Чтобы сделать светодиодную полосу розовой, и другие цвета.

Ответы [ 3 ]

0 голосов
/ 01 апреля 2020

Если вы действительно хотите углубиться в работу с WS2812 и ESP8266, начните с одного из примеров, в которых используется библиотека FastLed.
WS2812 и ESP8266 - Хорошей отправной точкой является этот репо
Узнайте о настройке веб-серверов, в чем разница между GET, POST, PUT, DELETE, ...
, и в конечном итоге вы в итоге будете копаться в HTML, CSS и vanilla javascript, пытаясь улучшить свой Навыки C / C ++ для мира Arduino / ESP.

0 голосов
/ 02 апреля 2020

Я думаю, что нашел решение - ESP8266WebServer. Например, прямо сейчас после вызова 'setcolor' (проверьте это ниже) я могу вводить параметры, используя url. И это выглядит так: 192.168.0.17/setcolor?pixel_num=1&red=255&blue=0&green=0 для красного цвета на светодиоде № 1 (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());}

Спасибо за помощь.

0 голосов
/ 01 апреля 2020

Правильный способ - использовать POST вместо GET (url), поскольку вы «обновляете данные на сервере».

Но при использовании GET (via url) вы можете использовать параметры:

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

А затем просто прочитайте эти значения в переменные.

...