terça-feira, 29 de setembro de 2020

W102 sendo programado Micropython - Platformio

 U-BLOX NINA W102 PROGRAMADO EM  MICROPYTHON COM PlatformIO  - Caso de Uso: Acessando TTN LoRaWAN


O objetivo deste BLOG é demonstrar como é possível utilizar programar o módulo U-BLOX NINA W102 com a linguagem de Scripts MicroPython e programá-lo com a IDE PlatformIO.

UBLOX NINA W102

Wi-Fi 802.11b / g / n
Dual-Mode Bluetooth v4.2
Poderoso suporte de CPU aberta para aplicativos personalizados
Tamanho pequeno e várias opções de antena
Pino compatível com outros módulos NINA
Certificação global
Módulo baseado no ESP32

SMARTCORE

A SmartCore fornece módulos para comunição wireless, biometria, conectividade, rastreamento e automação.
Nosso portifólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.
Mais detalhes em www.smartcore.com.br

MICROPYTHON

O MicroPython é uma implementação enxuta e eficiente da linguagem de programação Python 3 que inclui um pequeno subconjunto da biblioteca padrão do Python e é otimizada para ser executada em microcontroladores e em ambientes restritos.

O microPython pyboard é uma placa de circuito eletrônico compacta que executa o MicroPython no estado original, oferecendo a você um sistema operacional Python de baixo nível que pode ser usado para controlar todos os tipos de projetos eletrônicos.

O MicroPython é repleto de recursos avançados, como um prompt interativo, números inteiros de precisão arbitrária, fechamentos, compreensão de listas, geradores, tratamento de exceções e muito mais. No entanto, é compacto o suficiente para caber e executar com apenas 256k de espaço de código e 16k de RAM.

O MicroPython pretende ser o mais compatível possível com o Python normal, para permitir a transferência de código com facilidade da área de trabalho para um microcontrolador ou sistema incorporado.
PlatformIO

PlatformIO é uma ferramenta profissional de plataforma cruzada, arquitetura cruzada e estrutura múltipla para engenheiros de sistemas incorporados e para desenvolvedores de software que escrevem aplicativos para produtos incorporados.

LoRaWAN

A especificação LoRaWAN® é um protocolo de rede de baixa potência, área ampla (LPWA) projetado para conectar 'coisas' operadas por bateria sem fio à internet em redes regionais, nacionais ou globais, e tem como alvo os principais requisitos da Internet das coisas (IoT), como bi serviços de comunicação direcional, segurança ponta a ponta, mobilidade e localização.

Módulo LoRa/LoRaWAN


Descrição
Módulo Lora1278 433 mhz Lora 2.0 - IOT CHIP SX1276

Características:
Faixa De freqüência: 433 MHz
sensibilidade-139 dBm até
potência máxima de saída: 20dBm
10.3mA @ modo receptor
Consumo modo Sleep atual < 200nA
taxa de transferência de dados: @ FSK, 1.2-300 kbps
@ Lora TM, 0.018-37.5 kbps
Modulação FSK, GFSK e OOK
Lora TM
Alimentação 1.8-3.7Vdc
127 dB Dynamic Range RSSI
pacote de dados até 256 bytes com CRC
Faixa de Temperatura de operação:-40 ~ + 85 ° C
sensor de temperatura embutido e indicador de bateria fraca

COMPILAÇÃO MicroPython para NINA W102

Aqui está a VM (VIRTUAL BOX)


Para compilar foi seguido passo a passo o mix de roteiros abaixo:

e


Algumas dicas

-Use python3 (exige pyparsing)
-Altere partitions_2MiB.csv

# Name,     Type, SubType, Offset,   Size, Flags
#nvs,        data, nvs,     0x9000,   0x6000,
#phy_init,   data, phy,     0xf000,   0x1000,
#factory,    app,  factory, 0x10000,  0x110000,
#vfs,        data, fat,     0x120000, 0xA0000,
nvs,        data, nvs,     0x9000,   0x6000,
phy_init,   data, phy,     0xf000,   0x1000,
factory,    app,  factory, 0x10000,  0x170000,
vfs,        data, fat,     0x180000, 0x40000,

Ampliei APP e diminui FAT, ambos em 256K para o NINA W102

OBS: antes de executar o "make", altere board para GENERIC_D2WD.

export BOARD=GENERIC_D2WD

ou altere em Makefile

BOARD ?= GENERIC_D2WD
e
FLASH_SIZE ?= 2M

1.13

INTERFACE MicroPython para NINA W102 - PlatformIO

1) Baixe e instale o Visual Studio Code


2) Execute o Visual Studio Code


3) Na opção EXTENSIONS (canto esquerdo), procure por PlatformIO e Instale. Aguarde!

4) Instale também PyMakr, acionado com (CRTL-SHIFT-P)
Na minha opinião, o melhor PLUG-IN para MicroPython!!!!
Alterou arquivo, ele vai atualizar!

5) Baixe com GIT
https://github.com/lemariva/uPyLoRaWAN

6) Abra o folder criado pelo GIT

Registrando no TTN 

Antes que o NINA W102 possa se comunicar com a The Things Network, você precisará criar um aplicativo.


Primeiro, vamos registrar uma conta no TTN. Navegue até a página de registro da conta para configurar uma conta.


Uma vez conectado, navegue até o console do The Things Network. Esta página é onde você pode registrar aplicativos e adicionar novos dispositivos ou gateways. Clique em Aplicativos.

feather_console-application.png

Clique em Adicionar aplicativo.


Preencha um ID de aplicativo para identificar o aplicativo e uma descrição do que é o aplicativo. Definimos nosso registro de manipulador para corresponder à nossa região, us-west. Se você não estiver nos EUA, o TTN fornece várias regiões para o registro do manipulador.

feather_The_Things_Network_Console.png

Depois de criado, você será direcionado para a Visão geral do aplicativo. A partir daqui, você pode adicionar dispositivos, visualizar os dados que entram (e saem) do aplicativo, adicionar integrações para serviços externos e muito mais. 

Click Register Device

feather_The_Things_Network_Console_2.png

Na página de registro do dispositivo, o ID do dispositivo deve ser uma string exclusiva para identificar o dispositivo.

A chave do aplicativo será gerada aleatoriamente para você pelo TTN. Selecione o EUI do aplicativo (usado para identificar o aplicativo) na lista.

feather_The_Things_Network_Console_4.png

Em seguida, vamos mudar as configurações do dispositivo de Ativação Over-the-Air para Ativação por Personalização. Na Visão geral do dispositivo, clique em Configurações.

feather_The_Things_Network_Console_5.png
  • feather_The_Things_Network_Console.png
  • feather_The_Things_Network_Console.png
  • feather_The_Things_Network_Console_6.png

Na tela de configurações, altere o Método de ativação de OTAA para ABP.

 Em seguida, mude a Largura do contador de quadros de 32b para 16b e desative as verificações do contador de quadros. TTN exibirá um aviso, ignore-o e clique em Salvar.

Coloque os dados TTN no código CircuitPython, atualize e execute!

Não esqueça de renomear config.sample.py para config.py e salvar no W102.



ttn_config = {
    'devaddr'bytearray([0x000x000x000x00]),
    'nwkey'bytearray([0xEB0x060x020x7A0x000xD90x940xA7,
                   0xC50x8E0xF40x000x1C0x0B0xF60x80]),
    'app'bytearray([0x79,0xC00x000x4F0xA80x7B0x9E0x75,
                    0x4C0xFF0x770x000xFB0xE10x7E0x42]),
    'country''AU',
}




Executando e consultando dados no TTN 






MONTAGEM


Questões: suporte@smartcore.com.br

 

Sobre a SMARTCORE

A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portifólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.
Mais detalhes em www.smartcore.com.br

 

Nenhum comentário:

Postar um comentário