2016-07-12 3 views
-1

Здравствуйте, друзья,Прием данных автоматически в WiFi (ESP8266) Даже если подключен мой мобильный телефон с ESP8266

Я новичок в Arduino. Поэтому, пожалуйста, помогите мне решить эту проблему.

Я занимаюсь управлением Android Android и WIFI (ESP8266). Я подключил Wi-Fi мобильного телефона к ESP8266, и я отправляю данные в ESP8266 для управления телевизором.

Но он получает случайные значения и не получает значения независимо от того, что я отправляю через мобильный телефон wifi (но оба Wi-Fi имеют в связи). Но до того, как я контролировал. Теперь я не мог контролировать, я не знаю, почему. А также, как остановить этот случайный прием.

Я прилагаю мой код здесь

#include<IRremote.h> 
IRsend ir; 

char serialA; 

void setup() 
{ 
    pinMode(3, OUTPUT); 
    // Serial communication 
    Serial.begin(115200); 

    // Wifi commands 

    Serial.println("AT"); 
    delay(1000); 
    Serial.println("AT+CIPMUX=1\r\n"); 
    delay(1000); 
    Serial.println("AT+CIPSERVER=1,80\r\n"); 
    delay(1000); 
    Serial.end(); 
} 

void loop() 
{ 
    delay(800); 
    Serial.begin(115200); 

    if (Serial.available() > 0) 
    { 
    serialA = Serial.read(); 
    Serial.println(serialA); 
    IRREMOTE(); 
    } 
} 
void IRREMOTE() 
{ 
    switch (serialA) 
    { 

    case 'A':   //Power 
     ir.sendNEC(0x2FD48B7, 32); 
     delay(500); 
     break; 

    case 'B':   // AV/TV 
     ir.sendNEC(0x2FD28D7, 32); 
     delay(500); 
     break; 

    case 'C':   // Mute 
     ir.sendNEC(0x2FD08F7, 32); 
     delay(500); 
     break; 

    case 'D':  // CH+ 
     ir.sendNEC(0x2FDD827, 32); 
     delay(500); 
     break; 


    case 'E': // CH- 

     ir.sendNEC(0x2FDF807, 32); 
     delay(500); 
     break; 

    case 'F': // Vol+ 

     ir.sendNEC(0x2FD58A7, 32); 
     delay(500); 
     break; 

    case 'G': // Vol- 

     ir.sendNEC(0x2FD7887, 32); 
     delay(500); 
     break; 

    case 'H': 
     // Menu 
     ir.sendNEC(0x2FD30CF, 32); 
     delay(500); 
     break; 

    case 'I': 
     // Alt 
     ir.sendNEC(0x2FD708F, 32); 
     delay(500); 
     break; 

    case 'J': 
     // Scan 
     ir.sendNEC(0x2FDDA25, 32); 
     delay(500); 
     break; 
    } 
} 

Thank you 

ответ

0

Я не эксперт, но вы послали

Serial.println ("AT");

вместо Serial.println("AT\r\n");.

Для инициализации ESP8266 обычно начинают со сбросом так, может быть, вы должны добавить Serial.println("AT+RST\r\n"); delay(500);

над вашей командой AT.

Кроме того, вы начинаете свое общение в setup(), и вы повторяете его в цикле(). Строка в цикле() не обязательна!

Было бы здорово видеть случайные значения, которые вы получили! Возможно, я могу найти проблему (может быть что-то не так, в зависимости от таблицы ASCII)

0

попробуйте добавить Serial.Flush() после каждого последовательного отправления данных в ESP

Смежные вопросы