O objetivo deste BLOG é demonstrar como é possível adicionar os comandos AT ao módulo U-BLOX NINA para implementar o SPP (Serial Port Profile) via GATT. Foram utilizados 2 EVK-NINA-W para o teste. Em outro blog vimos como colocar comandos AT no W102, consulte como!
Roteiro
Primeiro, inicialize dois módulos para serem cliente e servidor, respectivamente:
cliente:
AT+BLEINIT = 1
servidor:
AT+BLEINIT = 2
AT+BLEGATTSSRVCRE
AT+BLEGATTSSRVSTART
AT+BLEADVSTART
Em seguida, estabeleça uma conexão, insira o comando de conexão no lado do cliente, se não estiver claro sobre o endereço do servidor, você pode procurar no lado do cliente (AT+BLESCAN = 1,3), também pode consultar no lado do servidor (AT+BLEADDR?).
cliente:
AT+BLECONN=0,"XX: XX: XX: XX: XX: XX"
O servidor solicitará o estabelecimento da conexão.
servidor:
+ BLECONN:0,"XX: XX: XX: XX: XX: XX"
O cliente consulta os serviços do servidor e define os parâmetros do SPP.
O objetivo deste BLOG é demonstrar como é possível adicionar os comandos AT ao módulo U-BLOX NINA. Foi utilizado o EVK-NINA-W para o teste.
Deve ser teu conhecimento que a ESPRESSIF tem um firmware que permite "programar" o ESP32 (NINA W102) via comandos AT e ter acesso ao WIFI 802.11 e BT 4.2, bastando seu HOST (PC ou uC tem uma UART)
Baixei e transferi para o NINA-W102 (ESP32), porém o NINA-W102 nao deu vida para nenhum deles.
Pesquisando mais a fundo, verifiquei que o NINA-W102 tem apenas 1Mb para aplicação do usuário (app) e as imagens bin da espressif ultrapassaram 1Mb (WIFI 802.11 + BT 4.2)
Como o modulo NINA-W102 tem 1Mb para aplicação do usuário (app), este firmware da espressif não caberá.
Para resolver este problema, recompilei o firmware com comandos AT fazendo algumas pequenas mudanças (optmização de código) e principalmente ALTERAÇÃO DO TAMANHO DA PARTIÇÃO DO FILE SYSTEM, ou seja, sobrando mais espaço para o firmware, que pode ultrapassar os 1Mb (WIFI 802.11 + BT 4.2). Para compilar, o roteiro que segui foihttps://github.com/espressif/esp32-at (LINUX, via make menuconfig)
Além disto foi necessário configurar o GPIO do ESP32 correspondente à do módulo U-BLOX NINA W102( UART port 0, RX pin 3, TX pin 1, RTS pin -1 CTS pin -1) bem como o tamanho da flash para 2MB. OTA foi desabilitado! Alterado para para 240Mhz!
RECOMENDO APRENDER A COMPILAR!
Os arquivos binário que gerei estao aqui... VERSAO 2.0
Execute e carregue os bins conforme enderecos acima...
Antes de transferir de qualquer operação (ERASE e START), certifique-se de RESETAR o NINA W102 com o BOOT pressionado, para ele entrar em bootloader, ok ?
Primeiro, deves apagar toda flash, deixando apenas o MARCADO 16Mbit_Null.bin e execute ERASE.
Feito isto, demarque o 16Mbit_Null.bin e marque todos os outros BINS e dê o START.
Aguarde alguns segundos para gravação do seu APP. (Certifique que esteja na serial correta, o baud eu utilizei 1152000, atenção, não é 115200).
Agora abra um emulador de terminal (exemplo TERATERM e configure para 115200, N,8,1)
Resete o NINA W102.
Você verá o BOOT acima.
AT+GMRAT version:2.0.0.0-dev(94aeecd - Oct 10 2019 03:34:25) SDK version:v3.3compile time:Oct 10 2019 11:33:52 OK
Nao esquecer que cada comando AT dever ser seguido do CR/LF, no caso do TERATERM se consegue isto pressionado a sequencia CRTL-J
Para varrer os ACCESS POINTS proximos, o NINA W102 deve estar no modo station
================================================ Novas atualizações da Espressif já não cabem mais em 2Mb, ou seja, não há como por as funções AT WIFI e AT BLE ao mesmo tempo, logo a versão acima é a última os dois juntos.