ARDUINO CODING. Depuración y monitoreo de puerto serial para comandar un ESP8266.

El ESP8266 produce un eco serial cada que se envía un comando, esto refleja el estado de la petición, inclusive si existe error éste es notificado. La función depuración se crea por las siguientes razones: hacer un código eficiente para el control de la información, aprovechar la existencia de más de 1 puerto UART en el Arduino Mega 2560 o modelos similares, monitorear responsivas del ESP8266 y solucionar errores de red automáticamente.

La función sendData creada en Código C, consiste en una función string o cadena, que puede ser llamada desde cualquier parte del código para enviar comandos y para reflejar en el monitor serial las responsivas del ESP8266. La función sendData para depuración en puerto serial está codificada de la siguiente forma:

String sendData(String command, const int timeout, boolean debug)
{
String response = “”;
Serial3.print (command);
long int time = millis();
while ( (time + timeout) > millis())
{
while (Serial3.available())
{
char c = Serial3.read();
response += c;
}
}
if (debug)
{
Serial.print(response);
}
return response;
}

sendData presenta la siguiente sintaxis: sendata (cadena de comando, tiempo de espera de respuesta, depuración verdadera o falsa). La cadena de comando, son variables string en el código que ya están definidas para enviar los comandos AT. El tiempo de respuesta, es el tiempo que se le asigna al envío de cada comando para esperar su correspondiente responsiva. La depuración, es una variable booleana que se encarga de habilitar o deshabilitar la depuración, en la mayoría de los casos se prefiere tener la depuración activada para escuchar las responsivas.

Para usar otro modelo con sólo un puerto de comunicación UART (Arduino UNO, Nano…), sólo es cuestión de modificar el código añadiendo la librería SoftwareSerial (https://www.arduino.cc/en/Tutorial/SoftwareSerialExample) en el sketch para habilitar simuladores UART en los pines digitales. Una vez declarado los pines digitales a usar se tiene que modificar simplemente la nueva dirección serial dónde en el código tiene los Serial3.  La dirección Serial, que corresponde siempre al único o al primer Hardware serial de una placa Arduino se utiliza siempre para monitorear ya que este puerto se comunica directamente con el Monitor Serial del Arduino  IDE.

Advertisements

1 Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s