Aviso: Ao conectar um painel solar ou uma bateria, a polaridade dos pinos deve ser a seguinte:

Aviso: se o controlador de carga para uma bateria de íon de lítio for necessário, o saltador de bateria deverá ser conectado:

O Arduino IDE pode ser usado para fazer upload de software através da porta Micro USB. Antes de poder ser usado, o IDE deve ser configurado. A primeira coisa é instalar a placa via gerente de placa.
Vá para o arquivo -> Preferências. Adicione o seguinte link aos URLs de gerenciador de placas adicionais: https://github.com/skylabiot/loragege_basictracking/raw/master/package_skylab_index.json.
O pacote da placa pode ser baixado via ferramentas -> placa -> Boards Manager ... pesquisando Skylab.
Selecione a placa via ferramentas -> placa -> placas de skylab -> skylab lora borda.
O esboço de exemplo pode ser carregado via arquivo -> Exemplos -> Skylab Lora Edge -> Basicloraa.
As dependências do esboço básico são:
Arduino SAMD21 Library de baixa energia: https://www.arduino.cc/en/reference/arduinolowpower
Biblioteca Arduino RTC: https://www.arduino.cc/en/reference/rtc
Biblioteca Adafruit BME280: https://github.com/adafruit/adafruit_bme280_library
Adafruit LMS303 Biblioteca do Acelerômetro: https://github.com/adafruit/adafruit_lsm303_accel
FlashStorage Library by cmaglie: https://github.com/cmaglie/flashstorage
Depois de fazer upload do modo, um exemplo de esboço, o monitor serial pode ser aberto a uma taxa de transmissão de 9600. O sistema começa com a exibição do dev_eui configurado, junção_eui e app_key (msb primeiro). O dev_eui é solicitado no chip LR1110 e é exclusivo desse chip específico. Essa chave deve ser usada no console da rede usada. O JONB_EUI e o APP_KEY estão configurados no código e devem ser alterados para as teclas corretas, fornecidas pelo console de rede usado. Se configurado corretamente, o dispositivo se junta automaticamente.
Envie um 0x01 para solicitar uma carga útil de varredura Wi-Fi e GNSS (a resposta está na porta 2 e 3).
Envie um 0x02 para solicitar a configuração atual (a resposta está na porta 44).
Envie um 0x03 para solicitar a tensão atual da bateria (a resposta está na porta 10).
O formato de downlink de configuração deve ser o seguinte:
| 0 | 1-2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|
| LIDERADO | Intervalo | Baliza | Wi-fi | GNSS | Ativação de movimento / tempo | Duração do intervalo de movimento | Registro de limiar do sensor de movimento | Registro de duração do sensor de movimento |
BYTE 0: LED ESTE BYTE configura o LED de status.
BYTE 1 e 2: intervalar esses 2 bytes configuram o tempo de intervalo padrão entre as mensagens, o tempo é em minutos. O intervalo definido como 0 manterá a configuração atual e não definirá um novo tempo de intervalo. O tempo máximo é de 65535 minutos.
BYTE 3: Beacon Este byte configura o tempo em que De Beacon está ligado. O tempo é em minutos. O tempo máximo é de 255 minutos. Quando definido como 0, o farol não será ativado.
BYTE 4: Wi-Fi Este byte ativa ou desative a carga útil do Wi-Fi.
BYTE 5: GNSS Este byte lança a carga útil do GNSS ligada ou desativada.
BYTE 6: Ativação de movimento / tempo Este byte define o intervalo de envio se o movimento for detectado. O tempo é em minutos com um máximo de 255. Quando definido como 0, a interrupção da detecção de movimento está desativada.
BYTE 7: Duração do intervalo de movimento Este byte define a duração que o sistema usa o intervalo de movimento após a detecção do último movimento. O tempo é em minutos com um máximo de 255. Quando definido como 0 Este byte será ignorado (as configurações atuais serão usadas).
BYTE 8: Limite do sensor de movimento Registrar este byte define o registro do limite do sensor de movimento. Se o byte 7 estiver definido como 0 Este byte será ignorado (as configurações atuais serão usadas).
BYTE 9: Registro de duração do sensor de movimento Este byte define o registro de duração do sensor de movimento. Se o byte 7 estiver definido como 0 Este byte será ignorado (as configurações atuais serão usadas)
O sistema confirma o downlink enviando a configuração definida em um uplink na porta 44 no mesmo formato que o downlink.
LED LIGADO, intervalo em 5 minutos, sem farol, wi-fi e carga útil GNSS, detecção de movimento desativada:
01 00 05 00 01 01 00 00 00 00
LED OFF, intervalo 600 minutos, sem farol, carga útil de Wi-Fi ligada, carga útil do GNSS, detecção de movimento fora:
00 15 36 00 01 00 00 00 00 00
Mantenha a configuração atual do LED e do intervalo, sem farol, carga útil de Wi-Fi, carga útil do GNSS, detecção de movimento desativada:
02 00 00 00 00 01 00 00 00 00
Ligue o Beacon por 5 minutos, detecção de movimento, mantenha todas as outras configurações atuais:
02 00 00 05 02 02 00 00 00 00
Mantenha a configuração atual do LED e do intervalo, sem farol, carga útil de Wi-Fi ligada, carga útil do GNSS, detecção de movimento com 1 minuto de envio de intervalo, intervalo de movimento usado por 4 minutos após o último movimento, registro de movimento do movimento definido para 7, registro de duração do movimento definido como 3:
02 00 00 00 01 00 01 04 07 03
O Modo Um exemplo de esboço pode enviar 4 tipos de carga útil. Esses tipos de cargas úteis são identificáveis pelo número da porta usado. Um exemplo de script de decodificador TTN pode ser encontrado nesta página do GitHub (ExamplEdecoderttn.js).
Esta é a carga útil Wi-Fi e Sensor. Essa carga tem as informações de 3 pontos Wi-Fi e os dados do sensor. O formato é o seguinte:
| 0 | 1-6 | 7 | 8-13 | 14 | 15-20 | 21 | 22-23 | 24-25 | 26 | 27 |
|---|---|---|---|---|---|---|---|---|---|---|
| Rssi 1 | Mac 1 | Rssi 2 | Mac 2 | RSSI 3 | Mac 3 | Tensão da bateria | Temperatura | Pressão | Umidade | Ativação de movimento |
Byte 0, 7 e 14: Wi-Fi RSSI
Esses bytes têm a força RSSI / sinal dos pontos Wi-Fi digitalizados. Esses valores devem ser interpretados como números inteiros assinados.
Byte 1 a 6, 8 a 13 e 15 a 20: Wi-Fi Mac
Esses bytes têm os endereços MAC dos pontos Wi-Fi digitalizados.
Byte 21: tensão da bateria
Este byte tem o valor de tensão da bateria bruta. A tensão exata pode ser calculada com: tensão = (float) ((3.3 / 255) * ((4.7 + 10) / 10) * (tensão da bateria);
Byte 22 a 23: temperatura
Esses bytes têm o valor da temperatura. A temperatura exata no grau Celsius (◦C) pode ser calculada com: temperatura = (float) (temperatura / 100);
Byte 24 a 25: pressão
Esses bytes têm o valor da pressão do ar. A pressão exata no grau Hector Pascal (HPA) pode ser calculada com: pressão do ar = (flutuação) (pressão / 10);
Byte 26: umidade
Este byte tem o valor de umidade em %.
Byte 27: Ativação de movimento
Este byte mostra 0 quando no intervalo normal. Quando no intervalo de movimento, esse byte fornece a quantidade de minutos restantes no intervalo de movimento.
Esta é a carga útil do GNSS. Essa carga útil possui apenas os dados do GNSS bruto e é de tamanho variável.
Essa carga é usada como uma mensagem "estou acordada". Por padrão, ele é definido a cada 24 horas. Isso pode ser alterado alterando o valor "Time de controle". O formato é o seguinte:
Byte 0: tensão da bateria
Este byte tem o valor de tensão da bateria bruta. A tensão exata pode ser calculada com: tensão = (float) ((3.3 / 255) * ((4.7 + 10) / 10) * (tensão da bateria);
O LR1110 envia uma mensagem automatizada ao ingressar e a cada 24 horas depois disso. Esta mensagem pode ser ignorada.
Quando a configuração do farol estiver definida como 1, o farol será ativado. O dispositivo deixará a rede e enviará uma carga útil aleatória a cada segundo na frequência 869800000 Hz (fora da frequência oficial da LORA). O LED verde ligará se a ativação do LED for definida como 1. O farol parará quando o tempo de configuração for atingido. O sistema se juntará à rede e operará como antes.
| pino uc | Pino da placa | Nome em Arduino IDE |
|---|---|---|
| PA02 | A0 | A0, DAC0 |
| PA05 | Ain5 (bateria) | Ain5 |
| PA06 | D0 | D0 |
| PA07 | D8 | D8 |
| PA08 | D3 | D3 |
| PA09 | D4 | D4 |
| PA10 | Ocupado (LR1110) | OCUPADO |
| PA11 | Evento (LR1110) | EVENTO |
| PA14 | NRESET (LR1110) | Nseset |
| PA15 | LED vermelho | LEDR |
| PA16 | Mosi | Mosi |
| PA17 | Sck | Sck |
| PA18 | NSS (LR1110) | NSS |
| PA19 | Miso | Miso |
| PA20 | INT2 (LSM303AGR) | Int2 |
| PA21 | INT1 (LSM303AGR) | Int1 |
| PA22 | SDA | SDA |
| PA23 | SCL | SCL |
| PA24 | D- (USB) | Pin_usb_dm |
| PA25 | D+ (USB) | Pin_usb_dp |
| PA27 | PA27 (bloco) | PA27 |
| PA28 | PA28 (bloco) | PA28 |
| PA30 | SWDCLK/TCK (pinos de depuração) | - |
| PA31 | SWDIO/TMS (pinos de depuração) | - |
| PB02 | PB02 (bloco) | PB02 |
| PB03 | PB03 (PAD) | PB03 |
| PB08 | LNA (GNSS) | LNA |
| PB09 | INT3 (LSM303AGR) | Int3 |
| PB10 | Green LED | Ledg |
| PB11 | LED azul | LEDB |
| PB22 | Tx | Pin_serial_tx |
| PB23 | Rx | Pin_serial_rx |
| Versão | Mudanças |
|---|---|
| 1.0 | Primeiro lançamento. |
| 1.2 | Suporte para mais configuração via downlink, integração do sensor na carga útil do Wi-Fi e Beacon de rádio. |
| 1.3 | Alterações no esboço básico: trocou downlink para obter menos bytes. Corrija um problema de união de drenagem da bateria quando não houver cobertura de Lora. Adicionado suporte para detecção de movimento, habilitando a configuração de movimento para 1. |
| 1.3.1 | Corrigido o problema de união após uma falha no Basicloraa Sketch. |
| 1.4 | Porta Atualizada 2 Uplink (byte 27). Formato de downlink atualizado, incluindo exemplos. Adicionado downlink Confirme uplink. Capacidade de salvar as configurações na EEPROM para que elas não sejam redefinidas na reinicialização. |
| 1.4.1 | Limpeza de arquivos. |
| 1.5 | O LED roxo se liga ao tentar participar. Corrija o bug da carga útil do Wi-Fi ausente. Suporte à Sync Sync para uso futuro. Tornou o código mais legível adicionando comentários. |
| 1.5.1 | EUI / teclas acolchoadas com zeros no monitor serial para facilitar a cópia. As versões de Lorawan, firmware e carregador de inicialização agora são impressas em hexadecimal no monitor serial. |
| 1.5.2 | Corrigido não enviando a primeira carga útil após a inicialização e após a detecção do primeiro movimento. |
| 1.5.3 | Função de downlink adicionada para solicitar configurações. Corrigido Bug in Motion Interval Timer. |
| 1.5.4 | Valor de intervalo fixo nem sempre carregando corretamente após a reinicialização. |