10-11-2016, 23:07
Witam. Projekt zakłada uruchamianie urządzenia za pomocą aplikacji RoboRemo. Mam problem z wysłaniem komendy z arduino do aplikacji, chodzi o sprawdzenie statusu pinu czyli zapeleniu diody w aplikacji.
Serial wyświetla tak:
0,CONNECT
led 3
ERROR
+IPD,0,2:1
OK
led 2
ERROR
+IPD,0,2:0
OK
led 3
ERROR
Proszę o podpowiedzi ponieważ jestem bardzo początkujący w C
Kod:
[code]
#define DEBUG true
//int red =11;
int zielona =12;
int czerwona =13;
char cmd[100];
byte cmdIndex;
boolean stan, stan_old = true;
void exeCmd()
{
Serial.println(cmd);
if(strcmp(cmd, "+IPD,0,2:0")==0) digitalWrite(czerwona, LOW);
if(strcmp(cmd, "+IPD,0,2:1")==0) digitalWrite(czerwona, HIGH);
}
void setup()
{
delay(500);
Serial.begin(9600);
Serial1.begin(115200);
// pinMode(red,OUTPUT);
// digitalWrite(red,LOW);
pinMode(zielona,OUTPUT);
digitalWrite(zielona,LOW);
pinMode(czerwona,OUTPUT);
digitalWrite(czerwona,LOW);
delay(2000);
digitalWrite(czerwona,HIGH);
sendData("AT+RST\r\n",2000,DEBUG);
sendData("AT+CWMODE=2\r\n",1000,DEBUG);
sendData("AT+CIFSR\r\n",1000,DEBUG);
sendData("AT+CIPMUX=1\r\n",1000,DEBUG);
sendData("AT+CIPSERVER=1,80\r\n",1000,DEBUG);
digitalWrite(czerwona,LOW);
digitalWrite(zielona,HIGH);
delay(2000);
digitalWrite(zielona,LOW);
}
void loop(){
if (Serial1.available() > 0)
{
char c = (char)Serial1.read();
if (c == '\n') {
cmd[cmdIndex] = 0;
exeCmd();
cmdIndex = 0;
} else {
cmd[cmdIndex] = c;
if (cmdIndex < 99) cmdIndex++;
}
stan = digitalRead(czerwona);
if (stan != stan_old)
{
stan_old = stan;
if (stan)
Serial1.println("led 2\n");
else Serial1.println("led 3\n");
}
}
}
String sendData(String command, const int timeout, boolean debug)
{
String response = "";
Serial1.println(command);
long int time = millis();
while( (time+timeout) > millis())
{
while(Serial1.available())
{
char c = Serial1.read();
response+=c;
}
}
if(debug)
{
Serial.println("Arduino : " + response);
}
return response;
}
[/code]
0,CONNECT
led 3
ERROR
+IPD,0,2:1
OK
led 2
ERROR
+IPD,0,2:0
OK
led 3
ERROR
Proszę o podpowiedzi ponieważ jestem bardzo początkujący w C