• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
RoboRemo i ESP8266
#1
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.

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]
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
 
Odpowiedź
  


Wiadomości w tym wątku
RoboRemo i ESP8266 - przez korczyniak - 10-11-2016, 23:07
RE: RoboRemo i ESP8266 - przez korczyniak - 10-11-2016, 23:17
RE: RoboRemo i ESP8266 - przez adix - 10-11-2016, 23:20
RE: RoboRemo i ESP8266 - przez korczyniak - 10-11-2016, 23:21
RE: RoboRemo i ESP8266 - przez adix - 10-11-2016, 23:23
RE: RoboRemo i ESP8266 - przez korczyniak - 10-11-2016, 23:29
RE: RoboRemo i ESP8266 - przez adix - 10-11-2016, 23:35
RE: RoboRemo i ESP8266 - przez korczyniak - 10-11-2016, 23:52

Skocz do:


Przeglądający: 1 gości