![]() | ![]() | ![]() |
|---|
Esta é uma nova abordagem para o Wisblock. Ele digitaliza o barramento e a série i2C para detectar quais módulos Wisblock estão conectados à base do Wisblock e cria uma carga útil de Lorawan em Cayenne LPP com os dados dos módulos encontrados.
Este firmware está usando a API Wisblock V2
Este código pode ser usado sem alterações para
| Kit/solução | Guia de configuração |
|---|---|
| Kit Wisblock 1 | Kit de configuração 1 |
| Kit Wisblock 2 | Kit de configuração 2 |
| Kit Wisblock 3 | Kit de configuração 3 |
| Kit Wisblock 4 | Kit de configuração 4 |
| RAK Developer Kit | Configuração do kit de dev 2 Configurar o kit de dev 3 kit de dev 4 |
| Kit de mapeador de hélio | Configurar mapeador de hélio |
| Wisblock GNSS Tracker para Lorawan | Configure o rastreador GNSS |
| Módulo | Função | Usado no kit |
|---|---|---|
| RAK4631 | Módulo Core Wisblock | - |
| RAK5005-O | Placa base do Wisblock | - |
| RAK19007 | Placa base do Wisblock | - |
| RAK19003 | Placa Base Mini Wisblock | - |
| RAK19001 | Placa Base Full -Size de Wisblock | - |
| RAK1901 | Temperatura do Wisblock e sensor de umididade | Kit Wisblock 1, RAK Developer Kit 2 |
| RAK1902 | Sensor de pressão do barômetro Wisblock | Kit Wisblock 1, RAK Developer Kit 2 |
| RAK1903 | Sensor de luz ambiente Wisblock | Kit Wisblock 1, RAK Developer Kit 2 |
| RAK1904 | Sensor de aceleração do Wisblock (usado para soluções GNSS) | Kit Wisblock 2 e 3, Wisblock Tracker para Lorawan, Rak Developer Kit 3 |
| RAK1905 | Sensor Wisblock 9 DOF | - |
| RAK1906 | Sensor de ambiente Wisblock | Kit Wisblock 4, RAK Developer Kit 4 |
| RAK1910 | Sensor GNSS de Wisblock | Kit Wisblock 2 e 3, Rak Developer Kit 3 |
| RAK1921 | Tela OLED Wisblock | (Exibição de status) |
| RAK5814 | Módulo de criptografia WisBlock ACC608 | - |
| RAK12002 | Módulo RTC Wisblock | - |
| RAK12003 | Wisblock FIR Sensor | - |
| RAK12004 | Sensor a gás MQ2 Wisblock | - |
| RAK12008 | Sensor a gás de CO2 SCT31 WISBLOCK SCT31 | - |
| RAK12009 | Sensor de gás alcoólico MQ3 Wisblock MQ3 | - |
| RAK12010 | Sensor de luz ambiente Wisblock | - |
| RAK12014 | Sensor de laser wisblock | - |
| RAK12019 | Sensor de luz UV de Wisblock | - |
| RAK12025 | Sensor de giroscópio Wisblock | - |
| RAK12023/RAK12035 | Sensor de umidade do solo e temperatura do solo Wisblock | Solução do sensor de solo Wisblock |
| RAK12027 | Sensor de terremoto de Wisblock | - |
| RAK12032 | Sensor de aceleração do Wisblock | - |
| RAK12034 | Sensor Wisblock 9 DOF | - |
| RAK12037 | Sensor de CO2 do Wisblock | - |
| RAK12039 | Sensor de matéria de partículas de Wisblock | - |
| RAK12040 | Sensor de matriz de temperatura AMG8833 Wisblock AMG8833 | - |
| RAK12047 | Sensor VOC Wisblock | - |
| RAK12052 | WisBlock MLX90640 Sensor de matriz de temperatura 32x24 | - |
| RAK12500 | Sensor GNSS de Wisblock | Tracker de Wisblock para Lorawan |
| RAK14002 | Wisblock 3 botões Touch Pad | - |
| RAK14003 | Exibição de barra de led de wisblock | - |
| RAK14008 | Sensor de gesto de Wisblock | - |
| RAK15000 | Módulo EEPROM WISBLOCK | - |
| RAK15001 | Módulo Flash Wisblock | - |
| RAK14008 | Sensor de gesto de Wisblock | - |
| RAK16000 | Sensor atual de Wisblock DC | - |
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 para uma solução que permite o sono. Algumas soluções, como os rastreadores GNSS ou o sensor VOC RAK12047, que requerem tempos de vigília mais longos ou despertadores mais frequentes, têm um maior consumo de energia.
Além disso, sensores como os sensores de gás MQ que estão usando um elemento de aquecimento também consumirão mais energia.
... Para ser atualizado, verifique a plataforma.ini para uma lista de todas as bibliotecas usadas
O projeto foi desenvolvido usando a plataforma IO. Mas para os usuários que ainda se apegam ao Arduino IDE, uma cópia compatível com o Arduino IDE das fontes está na pasta Arduinoide. O código não está compilando no Arduino IDE ATM.
O projeto completo para PIO está na pasta Platformio.
Ao usar o Platformio, todas as bibliotecas estão listadas no platformio.ini e são instaladas automaticamente quando o projeto é compilado. Ao usar o Arduino IDE, todas as bibliotecas precisam ser instaladas manualmente usando o Arduino Library Manager.
Compile o firmware e pisque -o em um Wisblock com todos os módulos necessários instalados.
Conecte -se ao USB para configurar as credenciais LPWAN. Use o Deveui impresso no RAK4631, use o Appeui e o AppKey do seu servidor LPWAN. Não ative a junção automática ainda. Como os níveis do sensor climático não estão mudando muito rápido, pode ser suficiente definir a frequência de envio a cada 10 minutos. A frequência de envio é definida em segundos, portanto o valor seria 10 * 60 ==> 600
Exemplo de comandos:
AT+NWM=1
AT+NJM=1
AT+BAND=10
AT+DEVEUI=1000000000000001
AT+APPEUI=AB00AB00AB00AB00
AT+APPKEY=AB00AB00AB00AB00AB00AB00AB00AB00
AT+SENDINT=600
| Comando | Explicação |
|---|---|
| AT+NWM = 1 | Defina o nó no modo de Lorawan |
| AT+NJM = 1 | Defina o método de junção de rede para otaa |
| AT+banda = 10 | Definir a região de LPWAN (aqui AS923-3), consulte o manual de comando |
| AT+DEVEUI = 1000000000000001 | Defina o dispositivo EUI, melhor para usar o Deveui que é impresso no rótulo do seu módulo Wisblock Core |
| AT+APPEUI = AB00AB00AB00 | Defina o aplicativo EUI, exigido no servidor Lorawan |
| AT+AppKey = AB00AB00AB00AB00AB00AB00AB00 | Defina a chave do aplicativo, usada para criptografar o pacote de dados durante a junção da rede |
| Em+sendint = 600 | Defina o intervalo O nó do sensor enviará pacotes de dados. 600 == 10 x 60 segundos == 10 minutos |
O manual para todos os comandos AT pode ser encontrado aqui: at-commands.mdAT?
Use a caixa de ferramentas Wisblock
Os dados do pacote são compatíveis com a codificação de LPP de Cayenne estendida de ElectronicCats/Cayennelpp
O conteúdo do pacote depende dos módulos instalados na placa base do Wisblock:
| Dados | Canal # | ID do canal | Comprimento | Comentário | Módulo necessário | Nome do campo decodificado |
|---|---|---|---|---|---|---|
| Valor da bateria | 1 | 116 | 2 bytes | 0,01 V MSB não assinado | RAK4631 | VOLTAGE_1 |
| Umidade | 2 | 104 | 1 byte | em %rh | RAK1901 | umidade_2 |
| Temperatura | 3 | 103 | 2 bytes | Em ° C. | RAK1901 | temperatura_3 |
| Pressão barométrica | 4 | 115 | 2 bytes | em HPA (MBAR) | RAK1902 | barômetro_4 |
| Iluminância | 5 | 101 | 2 bytes | 1 lux não assinado | RAK1903 | iluminância_5 |
| Umidade 2 | 6 | 104 | 1 byte | em %rh | RAK1906 | umidade_6 |
| Temperatura 2 | 7 | 103 | 2 bytes | Em ° C. | RAK1906 | temperatura_7 |
| Pressão barométrica 2 | 8 | 115 | 2 bytes | em HPA (MBAR) | RAK1906 | barômetro_8 |
| Resistência a gás 2 | 9 | 2 | 2 bytes | 0,01 assinado (kohm) | RAK1906 | analógico_9 |
| GNSS Stand. resolução | 10 | 136 | 9 bytes | 3 byte LON/LAT 0,0001 °, 3 bytes alt 0,01 metro | RAK1910, RAK12500 | GPS_10 |
| GNSS Resolução aprimorada | 10 | 137 | 11 bytes | 4 byte LON/LAT 0,000001 °, 3 bytes alt 0,01 metro | RAK1910, RAK12500 | GPS_10 |
| Temperatura do solo | 11 | 103 | 2 bytes | Em ° C. | RAK12023/RAK12035 | Temperatura_11 |
| Umidade do solo | 12 | 104 | 1 byte | em %rh | RAK12023/RAK12035 | umidade_12 |
| Umidade do solo crua | 13 | 2 | 2 bytes | 0,01 assinado | RAK12023/RAK12035 | analog_in_13 |
| Dados do solo válidos | 14 | 102 | 1 byte | bool | RAK12023/RAK12035 | presença_14 |
| Iluminância 2 | 15 | 101 | 2 bytes | 1 lux não assinado | RAK12010 | iluminância_15 |
| Voc | 16 | 138 | 2 bytes | Índice de VOC | RAK12047 | VOC_16 |
| MQ2 Gas | 17 | 2 | 2 bytes | 0,01 assinado | RAK12004 | analog_in_17 |
| Porcentagem de gás MQ2 | 18 | 120 | 1 byte | 1-100% não assinado | RAK12004 | Porcentagem_18 |
| MG812 GAS | 19 | 2 | 2 bytes | 0,01 assinado | RAK12008 | analog_in_19 |
| MG812 Porcentagem de gás | 20 | 120 | 1 byte | 1-100% não assinado | RAK12008 | Porcentagem_20 |
| MQ3 Gas de álcool | 21 | 2 | 2 bytes | 0,01 assinado | RAK12009 | analog_in_21 |
| MQ3 Álcool Gas Perc. | 22 | 120 | 1 byte | 1-100% não assinado | RAK12009 | Porcentagem_22 |
| TOF distância | 23 | 2 | 2 bytes | 0,01 assinado | RAK12014 | analog_in_23 |
| TOF dados válidos | 24 | 102 | 1 byte | bool | RAK12014 | presença_24 |
| O giroscópio desencadeado | 25 | 134 | 6 bytes | 2 bytes por eixo, 0,01 °/s | RAK12025 | girômetro_25 |
| Gesto detectado | 26 | 0 | 1 byte | 1 byte com identificação de gesto | RAK14008 | digital_in_26 |
| Valor UVI LTR390 | 27 | 2 | 2 bytes | 0,01 assinado | RAK12019 | analog_in_27 |
| Valor UVS LTR390 | 28 | 101 | 2 bytes | 1 lux não assinado | RAK12019 | iluminância_28 |
| INA219 Corrente | 29 | 2 | 2 bytes | 0,01 assinado | RAK16000 | analógico_29 |
| Tensão Ina219 | 30 | 2 | 2 bytes | 0,01 assinado | RAK16000 | analog_30 |
| INA219 Poder | 31 | 2 | 2 bytes | 0,01 assinado | RAK16000 | analógico_31 |
| Touchpad saiu | 32 | 102 | 1 byte | bool | RAK14002 | presença_32 |
| Touchpad Middle | 33 | 102 | 1 byte | bool | RAK14002 | presença_33 |
| Touchpad certo | 34 | 102 | 1 byte | bool | RAK14002 | presença_34 |
| SCD30 Co2 Concentração | 35 | 125 | 2 bytes | 1 ppm não assinado | RAK12037 | Concentração_35 |
| Temperatura SCD30 | 36 | 103 | 2 bytes | Em ° C. | RAK12037 | Temperatura_36 |
| Scd30 umidade | 37 | 104 | 1 byte | em %rh | RAK12037 | Lunidade_37 |
| MLX90632 Temp | 38 | 103 | 2 bytes | Em ° C. | RAK12003 | Temperatura_38 |
| MLX90632 Temperatura do objeto | 39 | 103 | 2 bytes | Em ° C. | RAK12003 | Temperatura_39 |
| PM 1.0 Valor | 40 | 103 | 2 bytes | em ug/m3 | RAK12003 | VOC_40 |
| PM 2.5 Valor | 41 | 103 | 2 bytes | em ug/m3 | RAK12003 | VOC_41 |
| PM 10 Valor | 42 | 103 | 2 bytes | em ug/m3 | RAK12003 | VOC_42 |
| Evento de terremoto | 43 | 102 | 1 byte | bool | RAK12027 | presença_43 |
| Terremoto SI Valor | 44 | 2 | 2 bytes | analógico 10 * m/s | RAK12027 | analógico_44 |
| Terremoto PGA Valor | 45 | 2 | 2 bytes | analógico 10 * m/s2 | RAK12027 | analógico_45 |
| Alerta de desligamento do terremoto | 46 | 102 | 1 byte | bool | RAK12027 | presença_46 |
| Lpp_channel_eq_collapse | 47 | 102 | 1 byte | bool | RAK12027 | presença_47 |
| Status da mudança | 48 | 102 | 1 byte | bool | RAK13011 | presença_48 |
| SensorHub Velocidade do vento | 49 | 190 | 2 byte | 0,01 m/s | SensorHub RK900-09 | wind_speed_49 |
| Sensorhub Wind Direction | 50 | 191 | 2 byte | 1º | SensorHub RK900-09 | wind_direction_50 |
| Nível de áudio | 49 |
Os IDs de canal em cursivos são formatos estendidos e não são suportados pelos decodificadores de dados da CAYENNE LPP.
Exemplo de decodificadores para TTN, Chirpstack, Helium e DataCake podem ser encontrados na pasta rakwireless_standardized_payload repo
Os arquivos compilados estão localizados na pasta ./Generated. Cada versão compilada de sucesso é nomeada como
WisBlock_SENS_Vx.y.z_YYYY.MM.dd.hh.mm.ss
XYZ é o número da versão. O número da versão é configurado no arquivo ./platformio.ini.
AaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaM.M.HH.MM.SS é o registro de data e hora da compilação.
O arquivo .zip gerado também pode ser usado para atualizar o dispositivo sobre o ble usando uma caixa de ferramentas Wisblock
Ao usar o Platformio, além disso, um arquivo UF2 para o RAK4631 é gerado. Você pode forçar o RAK4631 no modo de carregador de inicialização pressionando o botão de redefinição. Uma nova unidade USB será instalada. Puxe o arquivo UF2 para a nova unidade para piscar o dispositivo.
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
API_DEBUG Controla a saída de depuração da biblioteca Wisblock-API
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
beegee-tokyo/WisBlock-API-V2
sparkfun/SparkFun SHTC3 Humidity and Temperature Sensor Library
adafruit/Adafruit LPS2X
closedcube/ClosedCube OPT3001
sabas1080/CayenneLPP
extra_scripts = pre:rename.pyEste guia pode ser usado para o kit Wisblock 1 e o RAK Developer Kit 2
Instale os módulos em qualquer slot correspondente, seguindo os guias de início rápido no Centro de Documentação Rakwirless
Configure o dispositivo usando a interface de comando AT ou o aplicativo BLE
Este guia pode ser usado para o kit Wisblock 2 , Kit Wisblock 3 , Wisblock GNSS Tracker para Lorawan e Rak Developer Kit 3
O módulo RAK1904 deve ser instalado em
Slot c de rak5005-o, rak19007, rak19003 ou rak19001
Se estiver usando o RAK1910, ele deve ser instalado em
Slot a de rak5005-o
Qualquer slot correspondente de rak19007 ou rak19001
Se estiver usando o RAK12500, ele pode ser instalado em qualquer slot correspondente das placas base.
O RAK1906 pode ser instalado em qualquer slot correspondente da placa base.
Para os guias de instalação, seguindo os guias de início rápido no Centro de Documentação Rakwirless
Configure o dispositivo usando a interface de comando AT ou o aplicativo BLE
RAK11700 GNSS Tracker para Lorawan é o modo de início padrão para esta configuração.
Se construir o kit de mapeador de hélio, o modo deve ser alterado com o comando abaixo no comando:
A solução pode ser definida como 3 modos de trabalho diferentes usando o comando AT AT+GNSS :
| Comando | Parâmetro de entrada | Valor de retorno | Código de retorno |
|---|---|---|---|
| AT+GNSS? | - | Get/Set the GNSS precision and format 0 = 4 digit, 1 = 6 digit, 2 = Helium Mapper | OK |
| AT+GNSS =? | - | 0 , 1 ou 2 | OK |
AT+GNSS = <Input Parameter> | 1 ou 2 ou 3 | - | OK ou AT_PARAM_ERROR |
O formato padrão CAYENNE LPP usa apenas 4 dígitos para a precisão da localização. Esse formato de localização padrão é suportado automaticamente pela maioria dos servidores e plataformas de visualização de Lorawan, como MyDevices .
É o padrão e está definido com o comando AT AT+GNSS=0 .
Definindo essa opção, os dados ainda são enviados no formato Cayenne LPP, mas usa um identificador de dados personalizado e 6 dígitos para uma resolução de latitude e longitude mais alta. Para decodificar este formato, é necessário um codificador de dados personalizado. Os codificadores de dados para TTN, Chirpstack e DataCake podem ser encontrados na pasta de decodificador de dados personalizada.
A resolução de localização aprimorada é definida com o comando AT AT+GNSS=1 .
Esta opção envia os dados no formato Mapper de hélio, conforme explicado em Make um helium mapeador com o Wisblock.
Os decodificadores de pacotes para este formato são fornecidos no artigo acima.
A funcionalidade do mapeador de hélio é definida com o comando AT AT+GNSS=2 .
Este guia pode ser usado para o Wisblock Kit 4 e RAK Developer Kit 4
Instale os módulos em qualquer slot correspondente, seguindo os guias de início rápido no Centro de Documentação Rakwirless
Configure o dispositivo usando a interface de comando AT ou o aplicativo BLE