Este capítulo cubre la instalación de los croquis de RadioShuttle. Puede encontrar información sobre la tarjeta LongRa aquí. Para obtener información sobre la puesta en servicio, lea este capítulo.
Condiciones previas
Activar la memoria permanente D21 para los ajustes
“bossac” es una pequeña utilidad para programar la memoria flash del D21. Debe instalarse en la plataforma que utilice.
Importante:
«bossac» debe instalarse antes de la primera puesta en servicio de la tarjeta LongRa. De lo contrario, todas las propiedades preestablecidas se perderán!
Descargue el archivo “BOSSAC.zip” aquí. Después de descomprimir el archivo, encontrará el programa para tres plataformas diferentes:
Nombre | Plataforma | Directorio |
---|---|---|
bossac-linux64 | Linux | .arduino15/packages/arduino/tools/bossac/1.7.0/ |
bossac-macos | macOS | Library/Arduino15/packages/Arduino/tools/bossac/1.7.0/ |
bossac.exe | Windows | AppData\Local\Arduino15\packages\arduino\tools\bossac\1.7.0\ |
Copie el binario apropiado para la plataforma que está utilizando en el directorio anterior y renómbrelo a “bossac” (“bossac.exe” para la plataforma Windows no se renombra). Por razones de seguridad, se recomienda realizar previamente una copia de seguridad del programa “bossac” existente, por ejemplo, en “bossac.save”.
Instalar la biblioteca RadioShuttle
El software completo de RadioShuttle se proporciona como archivo Zip y se puede descargar aquí, con una declaración de código de 8 dígitos. El código se encuentra en la parte posterior de la tarjeta, por ejemplo: “0x67bedf1”.
Descargue el archivo Zip que contiene el software actual, por ejemplo, “RadioShuttle-Arduino-2018-05-10.zip”.
Descomprima el archivo Zip y copie el contenido de la carpeta “libraries” en la carpeta “Documents/Arduino/libraries”.
Nota:
En el caso de una biblioteca de RadioShuttle ya existente, el contenido debe estar completamente sobrescrito (no fusionado)!
Después de copiar, debería ver los siguientes elementos en la carpeta “libraries”:
- “HELIOS_Si7021” (biblioteca para el sensor de temperatura/humedad)
- “Arduino-mbed-APIs” (controladores adicionales y nuevas funciones de temporizador para los chips ESP32 y D21)
- “Arduino-TR-064-SOAP-Library” (biblioteca para el protocolo TR-064 para el uso con los FRITZ!Box)
- “ds3231” (biblioteca para el reloj RTC de la tarjeta ECO Power)
- “OLED” (biblioteca para las pantallas SSD1306, véase la información técnica Funcionamiento de la Tarjeta ECO Power con una Pantalla OLED)
- “pubsubclient” (biblioteca que proporciona un cliente para mensajes simples de publicación/suscripción con un servidor habilitado para MQTT)
- “RadioShuttle” (software de protocolo de radio y ejemplos)
- “RTCZero” (biblioteca RTC para el chip Atmel D21)
- “SX1276GenericLib” (controlador para el chip de radio LoRa)
Personalizar “xPinMap.h”
“xPinMap.h” define la asignación de pines del SAMD21 MCU con el chip de radio y los otros periféricos. Debe comprobarse para cada nuevo programa que se instale y se adapte si es necesario. Se puede encontrar en el IDE de Arduino, como una pestaña adicional.
Tarjeta LongRa (rev. 7.2)
Para que el código del programa y la revisión de la tarjeta coincidan, busque la línea #define D21_LONGRA_REV_720
y asegúrese de que está activada. Si usted tiene una versión diferente de la tarjeta LongRa, active la línea respectiva y desactive las otras revisiones:
// #define D21_LONGRA_REV_630 1 // board with LiPo power supply …
#define D21_LONGRA_REV_720 1 // Maker Faire Hannover revision, micro USB
Tarjeta LongRa (rev. 7.5 y posterior)
Para que el código del programa y la revisión de la tarjeta coincidan, busque la línea #define D21_LONGRA_REV_750
y asegúrese de que está activada. Si usted tiene una versión diferente de la tarjeta LongRa, active la línea respectiva y desactive las otras revisiones:
// #define D21_LONGRA_REV_630 1 // board with LiPo power supply …
// #define D21_LONGRA_REV_720 1 // Maker Faire Hannover revision …
#define D21_LONGRA_REV_750 1 // LongRa revision with more pins, micro USB
Aplicación de prueba “PropertyEditor”
Existe una memoria en la que se pueden guardar de forma permanente los ajustes que deben conservarse en la tarjeta después de la instalación de un nuevo croquis. Por ejemplo, es útil para guardar ajustes como datos de acceso WiFi o similares. Para ello se pueden utilizar las aplicaciones de prueba “PropertyEditor” y “PropertyTest” (véase la tabla más abajo). La página Memoria Permanente para Propiedades explica en detalle las diferencias entre los diferentes tipos de memoria.
Después de reiniciar el IDE de Arduino, se debe seleccionar “Arduino/Genuino Zero (Native USB-Port)” para la tarjeta LongRa desde el menú “Herramientas > Placa” porque el IDE de Arduino muestra sólo aquellas bibliotecas que pueden ejecutarse en la tarjeta seleccionada.
A continuación, la muestra “PropertyEditor” se puede cargar en el IDE desde el menú “Archivo > Ejemplos > Arduino-mbed-APIs > PropertyEditor”.
Abra la ventana “Monitor Serie” (véase Abrir la ventana “Monitor Serie” de Arduino más abajo) y cargue el croquis “PropertyEditor” en la tarjeta LongRa usando la función de carga. Si esto tuvo éxito, debería aparecer el siguiente texto:
Para listar todas las propiedades disponibles, introduzca “l” (para list) en el campo de entrada, como puede verse en la figura de arriba, y haga clic en el botón “Enviar”:
Para fijar un valor de propiedad introduzca “s” (para set), seguido del número de la propiedad y el valor deseado. En este ejemplo, a la propiedad “LORA_DEVICE_ID” (número 10) se le asigna el valor “15”:
Al volver a listar las propiedades, a la propiedad “LORA_DEVICE_ID” se le ha asignado el valor “15”:
Las propiedades individuales se pueden borrar de la memoria introduciendo el comando “d” (para delete).
Definir propiedades para “RadioTest”
La sencilla aplicación de prueba de RadioShuttle (“RadioTest”) está pensada para principiantes. Hay dos dispositivos que se comunican entre sí y comparten un mensaje simple. Un dispositivo se llama Nodo, el otro es una Estación. Con sólo pulsar un pulsador (pulsador “A”) se transmite un mensaje desde el nodo a la estación. Esto también funciona al revés, la estación también puede transmitir un mensaje al nodo, asumiendo que el nodo ha sido configurado como nodo en línea (por defecto es nodo fuera de línea).
La aplicación de mustra “RadioTest” requiere al menos las siguientes propiedades. Pueden configurarse con la aplicación PropertyEditor:
Propiedad | Tipo | Descripción |
---|---|---|
LORA_DEVICE_ID | T_32BIT | ID de dispositivo de la tarjeta (predefinido, de lo contrario debe ser ajustado) |
LORA_CODE_ID | T_32BIT | Código de la tarjeta (predefinido, de lo contrario debe ser ajustado) |
LORA_RADIO_TYPE | T_32BIT | Tipo de uso (no establecido): 1 = Nodo fuera de línea (uso como sensor de radio en modo “deepsleep”) 3 = Nodo en línea (uso como sensor de radio, siempre listo para recibir) 4 = Estación básica (funcionamiento como servidor para redes pequeñas) 5 = Estación servidor (funcionamiento como servidor para redes más grandes) |
LORA_REMOTE_ID | T_32BIT | ID de comunicaciones de la estación remota (no establecido) |
LORA_APP_PWD (optional) | T_STR | Establece la contraseña de cifrado AES-128 por aplicación |
Si no está predefinido, introduzca el valor de la propiedad “LORA_DEVICE_ID” en la memoria. Lo encontrará en la parte posterior de la tarjeta (“ID:”).
Proceda de la misma manera con las propiedades “LORA_CODE_ID”, este valor también se puede encontrar en la parte posterior de su tarjeta (“Código:”), “LORA_REMOTE_ID” y “LORA_RADIO_TYPE”.
Si “LORA_REMOTE_ID» y “LORA_RADIO_TYPE” no están configurados y #define USE_DEMOBOARD_PAIR
está activado en el archivo “RadioTest.ino”, se utiliza un modo de prueba de demostración entre ambas tarjetas (consulte Personalizar RadioTest.ino más adelante).
Activar la aplicación de prueba “RadioTest”
Después de reiniciar el IDE de Arduino, se debe seleccionar “Arduino/Genuino Zero (Native USB-Port)” para la tarjeta LongRa desde el menú “Herramientas > Placa” porque el IDE de Arduino muestra sólo aquellas bibliotecas que pueden ejecutarse en la tarjeta seleccionada.
A continuación, la muestra “RadioTest” se puede cargar en el IDE desde el punto de menú “Archivo > Ejemplos > RadioShuttle > RadioTest”. La muestra permite enviar mensajes desde un nodo a una estación, o viceversa. Se compone de los archivos “xPinMap.h”, “RTCUtil.cpp” y “RadioTest.ino”.
Es necesario hacer los siguientes ajustes antes de la utilización:
Personalizar RadioTest.ino
La línea #define USE_DEMOBOARD_PAIR
puede desactivarse de la siguiente manera:
// #define USE_DEMOBOARD_PAIR
Esta línea se ha utilizado para hacer coincidir automáticamente los pares de tarjetas suministradas.
Verificar la aplicación de prueba “RadioTest”
Simplemente presione el pulsador “A” izquierdo de la tarjeta nodo. Esto activará un mensaje de red desde el nodo al servidor. Entonces el servidor debería recibir un mensaje. Durante la transmisión del mensaje, los ledes RX y TX deben parpadear por un momento. Por supuesto, esto también funciona al revés, pulsando el pulsador “A” en el servidor.
Además, los mensajes se visualizan en la consola “Monitor Serie”.
Abrir la ventana “Monitor Serie” en Arduino
Dentro de los tres segundos siguientes a la carga del software o al reinicio de la tarjeta, debe abrirse la ventana “Monitor Serie” para que todos los mensajes sean visibles. La ventana debe abrirse de nuevo después de cargar o reiniciar.
Si esta ventana no se abre en cinco segundos, la tarjeta apagará la interfaz USB (“Monitor Serie”), y el led 13 parpadeará brevemente, confirmando que el conector USB ha sido apagado. El apagado de la conexión USB es un proceso automático para ahorrar energía.
Ejemplo A: Inicio exitoso del software RadioShuttle
Si el “Monitor Serie” se abre dentro de los cinco segundos siguientes al inicio o reinicio, debería aparecer un mensaje similar al anterior.
Se muestran parámetros importantes como la frecuencia, el ancho de banda y el factor de dispersión. El mensaje “TimeOnAir” indica el tiempo que los datos están en movimiento con los parámetros ajustados. Si está disponible, el tiempo se toma del tiempo de RTC, de lo contrario se utiliza el tiempo de compilación. También es importante la información del número de nodo (aquí “ID=14”) y la configuración de si el sistema funciona como un nodo (“Node”) o como una estación.
Ejemplo B: Mensaje enviado con éxito
Después de pulsar el pulsador “A”, se envió un mensaje de prueba a un segundo nodo. Este último ha confirmado la recepción.
Ejemplo C: Timeout al enviar de un mensaje
Después de pulsar el pulsador “A”, se envió un mensaje de prueba. Sin embargo, la recepción no ha sido confirmada. Después de tres intentos, este proceso se cancela y aparece un mensaje de error de timeout (“MSG_SentTimeout”).
Memoria permanente para propiedades
Existe una memoria en la que se pueden guardar de forma permanente los ajustes que deben conservarse en la tarjeta después de la instalación de un nuevo croquis. Por ejemplo, es útil para guardar ajustes como datos de acceso WiFi o similares. Para ello se pueden utilizar las aplicaciones de prueba “PropertyEditor” y “PropertyTest” (véase la tabla siguiente). La página Memoria Permanente para Propiedades explica en detalle las diferencias entre los diferentes tipos de memoria.
Resumen completo de ejemplos
Nombre | Biblioteca | Descripción |
---|---|---|
Blinky | Arduino-mbed-APIs | Led parpadeando periodicamente |
BlinkyEnhanced | Arduino-mbed-APIs | Led parpadeando a través del temporizador |
BlinkyEnhanced_C_Plus_Plus | Arduino-mbed-APIs | Led parpadeando a través del temporizador (en C++) |
CPUBench | Arduino-mbed-APIs | Medición del rendimiento de coma flotante y entero de la CPU |
DisplayI2CSample | Arduino-mbed-APIs | Uso de una pantalla OLED (128×64 píxeles, I2C). Consulte Funcionamiento de la Tarjeta ECO Power con una Pantalla OLED |
HelloWorld | Arduino-mbed-APIs | Ejemplo simple de impresión de salida; explica varias opciones de “printf” |
LongRaPowerSwitchTest | Arduino-mbed-APIs | Muestra cómo habilitar 5 voltios o 3,3 voltios usando la tarjeta LongRa |
PMSensorRadio | Arduino-mbed-APIs | Sensor de partículas; mide periódicamente el polvo (en µg/m3), según las normas PM10 y PM2.5) |
PropertyEditor | Arduino-mbed-APIs | Programa para la configuración de las propiedades que se guardan en la tarjeta permanentemente. Permanece después de reiniciar o hasta después de instalar un nuevo programa. Véase también Memoria Permanente para Propiedades |
PropertyTest | Arduino-mbed-APIs | Muestra cómo guardar propiedades, por ejemplo, cadenas y números en la memoria flash persistente para el uso en un croquis. Véase también Memoria Permanente para Propiedades |
RadioContinuousTX | Arduino-mbed-APIs | Programa de diagnóstico que transmite continuamente, por ejemplo, para mediciones de antenas de RF |
RadioShuttlePanicButton | Arduino-mbed-APIs | Es muy similar al ejemplo “RadioShuttleSimpleNode”, pero tiene un soporte adicional de sonido de zumbador básico para confirmar a la persona que busca ayuda que se ha activado la alarma de pánico |
RadioShuttleRadioTest2 | Arduino-mbed-APIs | Este ejemplo debería ser más fácil de usar para los nuevos usuarios que “RadioTest” (véase abajo); todo el código de configuración específico de LoRa se ha movido a “LoRa.cpp” |
RadioShuttleSimpleNode | Arduino-mbed-APIs | Envía los datos del sensor a una estación remota. Esto incluye temperatura, humedad y estado de la batería. Los datos se envían automáticamente cada 30 minutos o al pulsar el pulsador “User” |
RadioTest | RadioShuttle | Véase la explicación detallada más arriba |
TimerTest | Arduino-mbed-APIs | Ejemplo de uso de múltiples temporizadores asincrónicos llamando a las funciones de finalización cuando el timeout vence. Funciona con precisión y eficiencia energética |
Vídeo de formación: Non-volatile settings (NV Property)