IRremoteESP8266 (управление бытовой техникой по ИК, через Web интерфейс)

Нет ответов
Misha87
Offline
Зарегистрирован: 10.06.2015

Всем привет. Нужна помощь. Сам в программировании не  очень силен. Проблема такая! Есть ESP8266, которая считывает ик сигнал пульта и отсылает его на сервер (как это все хранится на сервере не важно).... Суть в том,что отсылаются туда данные в RAW виде. Соответственно в RAW виде они должны приходить обратно на ESP. Но дело в том, что управление происходит посредством GET запроса, то есть например выглядит примерно так - http://192.168.1.50/ir=4000,550,300,1000... ESP получает эти данные и записывает в переменную STRING. Естественно irsend.sendRaw не работает....Вообщем нужно STRING как-то разобрать....Это код из примера:


#include <IRremoteESP8266.h>

IRsend irsend(0);

void setup()
{

}

void loop() {
  int khz = 38; // 38kHz carrier frequency for the NEC protocol
  unsigned int irSignal[] = {9000, 4500, 560, 560, 560, 560, 560, 1690, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 1690, 560, 1690, 560, 560, 560, 1690, 560, 1690, 560, 1690, 560, 1690, 560, 1690, 560, 560, 560, 560, 560, 560, 560, 1690, 560, 560, 560, 560, 560, 560, 560, 560, 560, 1690, 560, 1690, 560, 1690, 560, 560, 560, 1690, 560, 1690, 560, 1690, 560, 1690, 560, 39416, 9000, 2210, 560}; //AnalysIR Batch Export (IRremote) - RAW
  
  irsend.sendRaw(irSignal, sizeof(irSignal) / sizeof(irSignal[0]), khz); //Note the approach used to automatically calculate the size of the array.

  delay(5000); //In this example, the signal will be repeated every 5 seconds, approximately.
}

 

А нужно что-то типо такого (но чтобы работало :-) ):


#include <IRremoteESP8266.h>

IRsend irsend(0);

String a = "4000,5000,6000,7000";

irSignal = здесь те денные, которые лежат в STRINGe;

void setup()
{

}

void loop() {
  int khz = 38; // 38kHz carrier frequency for the NEC protocol
  
  irsend.sendRaw(irSignal, sizeof(irSignal) / sizeof(irSignal[0]), khz); //Note the approach used to automatically calculate the size of the array.

  delay(5000); //In this example, the signal will be repeated every 5 seconds, approximately.
}

То есть то что пришло в виде STRING передать в sendRaw..... 

Надеюсь нормально объяснил. Заранее благодарен всем....