- 
                Notifications
    You must be signed in to change notification settings 
- Fork 2
Library reference in Spanish
Version: 1.0.1611.1
Para un uso sencillo y potente de los módulos RF Explorer IoT en Arduino, se ha creado una librería nativa organizada en clases y funciones. El uso en Arduino es muy intuitivo y fácil de utilizar.
Recomendamos el uso de los ejemplos para entender mejor el uso de la librería.
- Ejemplo RFE_IoT_GetPeak
- Ejemplo
La estructura de funcionamiento sigue el mismo sistema que todos los sketch para Arduino: el uso de las funciones estándar setup() y loop().
Tradicionalmente, en setup() se realiza la configuración del Arduino, por ejemplo, se dice que pines son de entrada y cuales son de salida. En nuestro caso particular se configura el módulo RF Explorer 3G+ IoT. Por otro lado, el loop es el código que se estará ejecutando continuamente, por ejemplo obtener el máximo de una señal.
Para el caso específico de la librería RF Explorer 3G+ IoT, usando como base el ejemplo RFE_IoT_GetPeak en un Arduino DUE, la estructura del sketch es la siguiente:
- 
setup():
- 
Inicializa el Hardware y las comunicaciones UART 
- 
El módulo MWSUB3G se conecta a 115200bps 
- 
El Monitor Serial (UART3 secundaria a través del Puerto USB) se configura a 57600bps 
- 
Se llama la función requestConfig()para recibir la configuración del módulo MWSUB3G
- 
loop():
- 
Escanea continuamente el espectro de frecuencia para detectar el pico de señal 
- 
Cada vez que se recibe un escaneo (sweep) el Serial Monitor mostrará el máximo de potencia de la señal así como la frecuencia a la que se encontró dicho máximo 
Probablemente el aspecto más importante es entender cómo se capturan los datos continuamente desde el módulo analizador RF Explorer 3G+ IoT. Las dos funciones que gestionan la captura de información entre el módulo RF y el sketch de Arduino son:
- 
updateBuffer(): Esta función obtiene los bytes capturados por la UART de Arduino y los almacena internamente en el buffer interno de la librería IoT.
- 
processReceivedString(): Esta función procesa todos los bytes almacenados internamente y los convierte en los datos y comandos de alto nivel que puede usar el sketch de Arduino.
Ambas funciones descritas arriba deben ser ejecutadas periódicamente en la función loop() del Sketch, para asegurarnos de que toda la información transmitida por el módulo RF es correctamente capturada y procesada. Si dichas funciones no son llamadas con la suficiente regularidad, la información transmitida por el módulo puede perderse total o parcialmente.
En cualquier sketch de Arduino se deben realizar llamadas continuas tanto a updateBuffer() (número 1 en la imagen siguiente) como a processReceivedString() (número 2 en la imagen), en ése orden.
El resultado devuelto por processReceivedString() se puede utilizar para procesar externamente la información, como se muestra en el bloque 3 de la imagen. El código utilizado en el bucle debe ser rápido y sencillo, para evitar que se produzcan demoras que puedan ocasionar la pérdida de información transmitida por el módulo RF.
La gestión de errores, presentación de información, etc debe ser rápida como se muestra en los bloques 3 y 4.
Para aclarar más el concepto de bucle de captura, podemos utilizar la sencilla modificación mostrada en la imagen a continuación. En dicho ejemplo, se ha introducido un delay(1000) de forma que el bucle de captura tardará un segundo completo en volver a gestionar los bytes capturados por la UART.
Con este tipo de retrasos, la UART normalmente se desborda y algunos bytes se perderán, produciéndose errores de comunicación con el módulo RF y perdiéndose datos. Un ejemplo de salida en un código como el de arriba podría ser como sigue:
Cambia la velocidad de comunicación con la UART principal.
| Parámetro | Tipo | Descripción | 
|---|---|---|
| Retorno | void | - | 
| nbaudrate | uint32_t | Nueva velocidad (bps) para la comunicación asíncrona con la UART. Las velocidades de transmisión disponibles para Arduinos de 8 bit (como Seeeduino) son: 2400, 4800, 9600, 19200, 38400, 57600. Para Arduino DUE (u otros modelos basados en ARM) es posible alcanzar una velocidad de 115200 | 
Ejemplo:
changeBaudrate(115200)

