![]() | ![]() |
|---|---|
| Este es un código de ejemplo para el sensor de entorno Wisblock (Kit Wisblock 4) con el sensor de entorno RAK1906 |
Este ejemplo es usar mi API Wisblock que ayuda a crear una aplicación de bajo consumo de energía y tomar la carga para manejar las comunicaciones desde su hombro.
Todos estos módulos se pueden comprar junto con un recinto a juego como Wisblock Kit 4
El transceptor MCU y Lora entran en modo de suspensión entre los ciclos de medición para ahorrar energía. Podría medir una corriente de sueño de 40UA de todo el sistema.
Todas las bibliotecas se enumeran en platformio.ini y se instalan automáticamente cuando se compila el proyecto.
La configuración de Lorawan se puede definir de tres maneras diferentes.
Usando la caja de herramientas de Wisblock, puede conectarse a Wisblock sobre BLE y configurar todos los parámetros de Lorawan como
Se pueden encontrar más detalles en la caja de herramientas de Wisblock
El dispositivo anuncia sobre BLE solo los primeros 30 segundos después de encender y luego nuevamente durante 15 segundos después de la activación para las medidas. El dispositivo se anuncia como RAK-ENVS-xx , donde XX es la dirección MAC BLE del dispositivo.
Usando la interfaz de comando AT, el WISBLOCK se puede configurar a través del puerto USB.
Un manual detallado para los comandos AT está en el comandante-manual
Aquí hay un ejemplo para los comandos AT típicos necesarios para preparar el dispositivo (EUI's y las teclas son ejemplos):
// Setup AppEUI
AT+APPEUI=70b3d57ed00201e1
// Setup DevEUI
AT+DEVEUI=ac1f09fffe03efdc
// Setup AppKey
AT+APPKEY=2b84e0b09b68e5cb42176fe753dcee79
// Set automatic send interval in seconds
AT+SENDINT=60
// Set data rate
AT+DR=3
// Set LoRaWAN region (here US915)
AT+BAND=5
// Reset node to save the new parameters
ATZ
// After reboot, start join request
AT+JOIN=1,0,8,10
El formato de comando AT utilizado aquí no es compatible con el RAK5205/RAK7205 AT comandos.
void api_read_credentials(void);
void api_set_credentials(void); Si las credenciales de Lorawan deben ser codificadas (por ejemplo, la región, el tiempo de repetición de repetición, ...) Esto se puede hacer en setup_app() . Primero, las credenciales guardadas deben leerse de Flash con api_read_credentials(); , entonces las credenciales se pueden cambiar. Después de cambiar las credenciales, se deben guardar con api_set_credentials() . Como la API de WISBLOCK verifica si es necesario guardar algún cambio, los valores cambiados solo se guardarán en el primer arranque después de flashear la aplicación.
Ejemplo:
// Read credentials from Flash
api_read_credentials ();
// Make changes to the credentials
g_lorawan_settings.send_repeat_time = 240000 ; // Default is 2 minutes
g_lorawan_settings.subband_channels = 2 ; // Default is subband 1
g_lorawan_settings.app_port = 4 ; // Default is 2
g_lorawan_settings.confirmed_msg_enabled = LMH_CONFIRMED_MSG; // Default is UNCONFIRMED
g_lorawan_settings.lora_region = LORAMAC_REGION_AS923_3; // LoRa region
// Save hard coded LoRaWAN settings
api_set_credentials (); Observación 1
¡Las credenciales codificadas deben establecerse en void setup_app(void) !
Observación 2
Tenga en cuenta que los parámetros que se cambian con este método se pueden cambiar en el comando o BLE, ¡pero se restablecerán después de un reinicio !
Observación 3
La codificación de datos se basa en ID del sensor Cayenne LPP. Esto hace que sea muy fácil visualizar los datos del sensor en MyDevices Cayenne.
Los archivos compilados se encuentran en la carpeta ./generated. Cada versión compilada exitosa se nombra como
WisBlock_ENV_Vx.y.z_YYYYMMddhhmmss
XYZ es el número de versión. El número de versión está configurado en el archivo ./platformio.ini.
A yyyymmddhhmmss es la marca de tiempo de la compilación.
El archivo .zip generado se puede usar también para actualizar el dispositivo sobre BLE utilizando Wisblock Toolbox o Nordic NRF Toolbox o NRF Connect
La salida de depuración se puede controlar por define en la platformio.ini
Lib_debug controla la salida de depuración de la biblioteca SX126X-Arduino Lorawan
My_debug controla la salida de depuración de la aplicación en sí
CFG_DEBUG controla la salida de depuración del NRF52 BSP. Se recomienda mantenerlo
[env:wiscore_rak4631]
platform = nordicnrf52
board = wiscore_rak4631
framework = arduino
build_flags =
; -DCFG_DEBUG=2
- DSW_VERSION_1 =1 ; major version increase on API change / not backwards compatible
- DSW_VERSION_2 =0 ; minor version increase on API change / backward compatible
- DSW_VERSION_3 =0 ; patch version increase on bugfix, no affect on API
- DLIB_DEBUG =0 ; 0 Disable LoRaWAN debug output
- DAPI_DEBUG =0 ; 0 Disable WisBlock API debug output
- DMY_DEBUG =0 ; 0 Disable application debug output
- DNO_BLE_LED =1 ; 1 Disable blue LED as BLE notificator
lib_deps =
beegee-tokyo/SX126x-Arduino
adafruit/Adafruit BME680 Library
beegee-tokyo/WisBlock-API
extra_scripts = pre:rename.pyLa carga útil está codificada en el mismo formato que los dispositivos Wisnode RAKWIRESS. Se puede encontrar un decodificador de carga útil para Chirpstack, TTN y DataCake en el repose RAKWIRENCH_STANDARDEDIED_PAYLOAD GITHUB.
Datos en tiempo real
