![]() | ![]() |
|---|---|
| Este é um código de exemplo para o sensor de ambiente Wisblock (kit Wisblock 4) com sensor de ambiente RAK1906 |
Este exemplo está usando minha API do Wisblock, que ajuda a criar um aplicativo de baixo consumo de energia e levar a carga para lidar com as comunicações do seu ombro.
Todos esses módulos podem ser comprados em conjunto com um gabinete correspondente como kit de Wisblock 4
O transceptor MCU e Lora entra no modo de suspensão entre os ciclos de medição para economizar energia. Eu poderia medir uma corrente de sono de 40ua de todo o sistema.
As bibliotecas estão todas listadas no platformio.ini e são instaladas automaticamente quando o projeto é compilado.
As configurações de Lorawan podem ser definidas de três maneiras diferentes.
Usando a caixa de ferramentas Wisblock, você pode se conectar ao Wisblock sobre o BLE e configurar todos os parâmetros de Lorawan como
Mais detalhes podem ser encontrados na caixa de ferramentas Wisblock
O dispositivo está anunciando o BLE apenas os primeiros 30 segundos após a liga e depois por 15 segundos após o despertar para medições. O dispositivo está anunciando como RAK-ENVS-xx , onde xx é o endereço MAC ble do dispositivo.
Usando a interface de comando AT, o Wisblock pode ser configurado na porta USB.
Um manual detalhado para os comandos AT está no comando manual
Aqui está um exemplo para os comandos Típicos de AT necessários para preparar o dispositivo (UEI e chaves são exemplos):
// 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
O formato de comando AT usado aqui não é compatível com os comandos RAK5205/RAK7205.
void api_read_credentials(void);
void api_set_credentials(void); Se as credenciais de Lorawan precisarem ser codificadas (por exemplo, a região, o tempo de repetição de envio, ...), isso pode ser feito em setup_app() . Primeiro, as credenciais salvas devem ser lidas no flash com api_read_credentials(); , então as credenciais podem ser alteradas. Depois de alterar as credenciais, deve ser salvo com api_set_credentials() . À medida que a API do Wisblock verifica se alguma alteração precisar ser salva, os valores alterados serão salvos apenas na primeira inicialização após piscar o aplicativo.
Exemplo:
// 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 (); Observação 1
As credenciais codificadas duras devem ser definidas em void setup_app(void) !
Observação 2
Lembre -se de que os parâmetros que são alterados com esse método podem ser alterados no comando ou ble ble , mas serão redefinidos após uma reinicialização !
Observação 3
A codificação de dados é baseada nos IDs do sensor LPP Cayenne. Isso facilita a visualização dos dados do sensor na MyDevices Cayenne.
Os arquivos compilados estão localizados na pasta ./Generated. Cada versão compilada de sucesso é nomeada como
WisBlock_ENV_Vx.y.z_YYYYMMddhhmmss
XYZ é o número da versão. O número da versão é configurado no arquivo ./platformio.ini.
Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
O arquivo .zip gerado também pode ser usado para atualizar o dispositivo sobre o BLE usando WisBlock Toolbox ou Nordic NRF Toolbox ou NRF Connect
A saída de depuração pode ser controlada por define no platformio.ini
Lib_debug Controla a saída de depuração da biblioteca SX126X-ADUINO LORAWAN
My_debug controla a saída de depuração do próprio aplicativo
CFG_DEBUG Controla a saída de depuração do NRF52 BSP. É recomendado manter isso
[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.pyA carga útil é codificada no mesmo formato que os dispositivos WisNode sem Rakwire. Um decodificador de carga útil para Chirpstack, TTN e DataCake pode ser encontrado no repo Rakwireless_standardized_payload Github.
Dados em tempo real
