在wifi中自动接收数据(ESP8266)即使我的手机与ESP8266连接

时间:2016-07-12 11:02:21

标签: arduino-uno esp8266

朋友你好,

我是arduino的新手。所以请帮我解决这个问题。

我正在做基于Android手机(IR)的控制arduino UNO和WIFI(ESP8266)的电视控制。我将手机wifi连接到ESP8266,我将数据发送到ESP8266来控制电视。

但它接收随机值并且没有收到我通过手机wifi发送的值(但两个wifi都连接在一起)。但在我控制之前。现在我无法控制,我不知道为什么。以及如何阻止这种随机值接收。

我在这里附上我的代码

#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

2 个答案:

答案 0 :(得分:0)

我不是专家,但你发了

  

Serial.println(&#34; AT&#34);

而不是Serial.println("AT\r\n");

要初始化ESP8266,通常从重置开始,所以也许你应该添加 Serial.println("AT+RST\r\n"); delay(500);

在你的AT命令之上

此外,您在setup()中开始通信,然后在循环()中重复它。循环()中的行不是必要的!

很高兴看到您收到的随机值!也许我可以找到问题(可能是错误的,取决于ASCII表)

答案 1 :(得分:0)

尝试在发送到ESP的每个串行数据后添加Serial.Flush()