朋友你好,
我是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
答案 0 :(得分:0)
我不是专家,但你发了
Serial.println(&#34; AT&#34);
而不是Serial.println("AT\r\n");
。
要初始化ESP8266,通常从重置开始,所以也许你应该添加
Serial.println("AT+RST\r\n");
delay(500);
。
此外,您在setup()中开始通信,然后在循环()中重复它。循环()中的行不是必要的!
很高兴看到您收到的随机值!也许我可以找到问题(可能是错误的,取决于ASCII表)
答案 1 :(得分:0)
尝试在发送到ESP的每个串行数据后添加Serial.Flush()