quinta-feira, 18 de março de 2021

Mongoose no u-blox NINA W106

 Mongoose no u-blox NINA W106


O objetivo deste BLOG é demonstrar como é possível utilizar o Mongoose para programação do u-blox NINA W106. Foi utilizado o EVK-NINA-W1 para o teste e no WINDOWS.
O que é o mongoose OS

Mongoose OS é um pequeno RTOS desenvolvido por Cesanta, Irlanda. Seu suporte a muitos pequenos e poderosos MCU como ESP32 (U-BLOX NINA W106). Mongoose OS é um sistema operacional integrado de código aberto para microcontroladores conectados de baixa potência.

Código em C ou JavaScript;
Recursos de segurança como suporte a chip de criptografia, criptografia de sistema de arquivos, etc;
AWS IoT integrado, integração do Google IoT;
Motor JavaScript incorporado - mJS;

Benefícios do Mongoose OS:
Provas rápidas de conceitos / protótipos;
Menor tempo de comercialização a um custo ideal;
Seguro, confiável e verificado por empresas líderes;
Infraestrutura confiável para produto comercial


https://mongoose-os.com/


u-blox NINA W106 e Moogoose

Como o módulo u-blox NINA W106 é baseado no chip ESP32 (cpu), será possível rodar o Mongoose sem problemas. O usuário deve dar atenção ao mapeamento de GPIOS da U-BLOX apenas conforme datasheet.

No link abaixo, há um roteiro muito interessante para que você possa preparar o ambiente para programar o u-blox NINA W106 


Basicamente

Crie uma pasta, MOS, copie o EXE para ela, crie um PATH no WINDOWS, crie pasta Projeto, baixe APP, compile na nuvem, faça o FLASH para o  u-blox NINA W106, configure SSID/PASSWORD, cadastre na Nuvem!


TESTANDO NO u-BLOX NINA W106

Seleção do ESP32

Criando Projeto

mkdir demo-js

mos clone https://github.com/mongoose-os-apps/demo-js app1

$ mos clone https://github.com/mongoose-os-apps/demo-js app1 app1: Does not exist, cloning from "https://github.com/mongoose-os-apps/demo-js"... app1: Checking out 2.19.1... app1: Done, hash e4ecb176b4e95f53e5938724b6cb6723b4b95fad

mos build --platform esp32

mos build --platform esp32 Connecting to https://build.mongoose-os.com, user test Uploading sources (2668 bytes) Firmware saved to C:\mos\app1\build\fw.zip Command completed.

mos flash

$ mos flash Loaded app1/esp32 version 1.0 (20210318-180524) Opening COM35 @ 115200... Connecting to ESP32 ROM, attempt 1 of 10... Connecting to ESP32 ROM, attempt 2 of 10... Connected, chip: ESP32D0WDQ6 R1 Running flasher @ 921600... Flasher is running Flash size: 4194304, params: 0x022f (dio,32m,80m) Flash encryption: disabled, scheme: None Secure boot: disabled Deduping... Writing... 28672 @ 0x1000 4096 @ 0x8000 16384 @ 0x9000 8192 @ 0xd000 1572864 @ 0x10000 262144 @ 0x190000 Wrote 1885280 bytes in 16.93 seconds (869.93 KBit/sec) Verifying... 25456 @ 0x1000 3072 @ 0x8000 16384 @ 0x9000 8192 @ 0xd000 1570032 @ 0x10000 262144 @ 0x190000 Booting firmware... All done!

Execução

[Mar 18 15:08:40.981] ������������� [Mar 18 15:08:40.981] I (117) boot: 5 fs_1 FS 01 82 00350000 00040000 00000000 [Mar 18 15:08:40.981] I (125) boot: End of partition table [Mar 18 15:08:40.981] I (130) boot: OTA data 0: seq 0x00000001, st 0x10, CRC 0x157a2b85, valid? 1 [Mar 18 15:08:40.981] I (137) boot: OTA data 1: seq 0x00000000, st 0x00, CRC 0x00000000, valid? 0 [Mar 18 15:08:40.981] I (145) boot_comm: chip revision: 1, min. application chip revision: 0 [Mar 18 15:08:40.981] I (152) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x44298 (279192) map [Mar 18 15:08:41.088] I (242) esp_image: segment 1: paddr=0x000542c0 vaddr=0x3ffbdb60 size=0x0394c ( 14668) load [Mar 18 15:08:41.088] I (247) esp_image: segment 2: paddr=0x00057c14 vaddr=0x40080000 size=0x00400 ( 1024) load [Mar 18 15:08:41.088] I (249) esp_image: segment 3: paddr=0x0005801c vaddr=0x40080400 size=0x07ffc ( 32764) load [Mar 18 15:08:41.088] I (270) esp_image: segment 4: paddr=0x00060020 vaddr=0x400d0020 size=0x119374 (1151860) map [Mar 18 15:08:41.557] I (605) esp_image: segment 5: paddr=0x0017939c vaddr=0x400883fc size=0x160f4 ( 90356) load [Mar 18 15:08:41.557] I (637) esp_image: segment 6: paddr=0x0018f498 vaddr=0x400c0000 size=0x00034 ( 52) load [Mar 18 15:08:41.557] I (653) boot: Loaded app from partition at offset 0x10000 [Mar 18 15:08:41.557] I (653) boot: Disabling RNG early entropy source... [Mar 18 15:08:41.557] I (654) cpu_start: Pro cpu up. [Mar 18 15:08:41.557] I (657) cpu_start: Application information: [Mar 18 15:08:41.557] I (662) cpu_start: Project name: app1 [Mar 18 15:08:41.557] I (667) cpu_start: App version: 2.19.1 [Mar 18 15:08:41.557] I (672) cpu_start: Compile time: Mar 18 2021 18:04:52 [Mar 18 15:08:41.557] I (678) cpu_start: ELF file SHA256: 8a6b25f01d7c479b... [Mar 18 15:08:41.557] I (684) cpu_start: ESP-IDF: 4.2-r1 [Mar 18 15:08:41.557] I (689) cpu_start: Single core mode [Mar 18 15:08:41.557] I (693) heap_init: Initializing. RAM available for dynamic allocation: [Mar 18 15:08:41.557] I (700) heap_init: At 3FF80034 len 00001FCC (7 KiB): RTCRAM [Mar 18 15:08:41.557] I (706) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM [Mar 18 15:08:41.557] I (713) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM [Mar 18 15:08:41.557] I (719) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM [Mar 18 15:08:41.557] I (725) heap_init: At 3FFC9078 len 00016F88 (91 KiB): DRAM [Mar 18 15:08:41.557] I (731) heap_init: At 3FFE0440 len 0001FBC0 (126 KiB): D/IRAM [Mar 18 15:08:41.557] I (737) heap_init: At 40078000 len 00008000 (32 KiB): IRAM [Mar 18 15:08:41.557] I (743) heap_init: At 4009E4F0 len 00001B10 (6 KiB): IRAM [Mar 18 15:08:41.557] I (750) cpu_start: Pro cpu start user code [Mar 18 15:08:41.557] I (766) spi_flash: detected chip: generic [Mar 18 15:08:41.661] I (767) spi_flash: flash io: qio [Mar 18 15:08:41.661] I (767) cpu_start: Starting scheduler on PRO CPU. [Mar 18 15:08:41.661] [Mar 18 15:08:41.661] [Mar 18 15:08:41.661] mgos_freertos.c:155 app1 1.0 (20210318-180524) [Mar 18 15:08:41.661] mgos_freertos.c:157 Mongoose OS 2.19.1 (20210318-180523/2.19.1-gd52032f) [Mar 18 15:08:41.661] mgos_freertos.c:161 CPU: 160 MHz, FreeRTOS 8.2.0, heap: 255848 total, 224772 free [Mar 18 15:08:41.661] mgos_freertos.c:163 Newlib 3.0.0 [Mar 18 15:08:41.661] esp32_main.c:65 ESP-IDF 4.2-r1 [Mar 18 15:08:41.661] esp32_main.c:68 Boot partition: app_0; flash: 4M [Mar 18 15:08:41.661] mongoose.c:15677 Mongoose 6.18, LwIP 2.1.3 [Mar 18 15:08:41.661] mongoose.c:4938 mbed TLS 2.16.6-cesanta1 [Mar 18 15:08:41.661] mgos_vfs_dev.c:73 fs_0: esp32part ({"label": "fs_0"}), size 262144 [Mar 18 15:08:41.661] mgos_vfs_dev.c:73 fs_1: esp32part ({"label": "fs_1"}), size 262144 [Mar 18 15:08:41.661] mgos_vfs.c:174 /: SPIFFS @ fs_0, opts {"bs":4096,"ps":256,"es":4096} [Mar 18 15:08:41.752] mgos_vfs.c:347 /: size 233681, used: 127759, free: 105922 [Mar 18 15:08:41.873] mgos_sys_config.c:368 MAC: f0:08:d1:c8:cf:98 [Mar 18 15:08:41.873] mgos_sys_config.c:376 WDT: 30 seconds [Mar 18 15:08:41.873] esp32_i2c_master.c:393 I2C0 init ok (SDA: 32, SCL: 33, freq: 100000) [Mar 18 15:08:41.873] I (1311) BTDM_INIT: BT controller compile version [3723d5b] [Mar 18 15:08:41.873] W (1311) phy_init: failed to load RF calibration data (0x1102), falling back to full calibration [Mar 18 15:08:42.009] I (1451) phy: phy_version: 4500, 0cd6843, Sep 17 2020, 15:37:07, 0, 2 [Mar 18 15:08:42.009] Coex register schm btdm cb faild [Mar 18 15:08:42.487] esp32_bt.c:177 Bluetooth init ok, MTU 500, pairing enabled, 0 paired devices [Mar 18 15:08:42.487] mgos_ota_shadow_lib:116 OTA over shadow initialised [Mar 18 15:08:42.487] mgos_wifi.c:458 WiFi mode: AP [Mar 18 15:08:42.487] I (1831) wifi:wifi driver task: 3ffb7190, prio:23, stack:6656, core=0 [Mar 18 15:08:42.487] I (1851) wifi:wifi firmware version: 1865b55 [Mar 18 15:08:42.487] I (1851) wifi:wifi certification version: v7.0 [Mar 18 15:08:42.487] I (1861) wifi:config NVS flash: enabled [Mar 18 15:08:42.487] I (1861) wifi:config nano formating: disabled [Mar 18 15:08:42.487] I (1861) wifi:Init data frame dynamic rx buffer num: 16 [Mar 18 15:08:42.487] I (1871) wifi:Init management frame dynamic rx buffer num: 16 [Mar 18 15:08:42.487] I (1881) wifi:Init management short buffer num: 32 [Mar 18 15:08:42.487] I (1881) wifi:Init dynamic tx buffer num: 16 [Mar 18 15:08:42.487] I (1881) wifi:Init static rx buffer size: 1600 [Mar 18 15:08:42.487] I (1891) wifi:Init static rx buffer num: 4 [Mar 18 15:08:42.487] I (1891) wifi:Init dynamic rx buffer num: 16 [Mar 18 15:08:42.487] I (1901) wifi_init: rx ba win: 4 [Mar 18 15:08:42.487] I (1901) wifi_init: tcpip mbox: 32 [Mar 18 15:08:42.487] I (1911) wifi_init: udp mbox: 6 [Mar 18 15:08:42.487] I (1911) wifi_init: tcp mbox: 6 [Mar 18 15:08:42.487] I (1911) wifi_init: tcp tx win: 5744 [Mar 18 15:08:42.487] I (1921) wifi_init: tcp rx win: 5744 [Mar 18 15:08:42.487] I (1921) wifi_init: tcp mss: 1440 [Mar 18 15:08:42.487] I (1931) wifi_init: WiFi IRAM OP enabled [Mar 18 15:08:42.487] I (1931) wifi_init: WiFi RX IRAM OP enabled [Mar 18 15:08:42.487] esp32_wifi.c:469 WiFi AP: SSID Mongoose_C8CF98, channel 6 [Mar 18 15:08:43.091] esp32_wifi.c:670 WiFi AP: protocol BGN (0x7) [Mar 18 15:08:43.091] I (2461) wifi:mode : softAP (f0:08:d1:c8:cf:99) [Mar 18 15:08:43.091] I (2471) wifi:Total power save buffer number: 8 [Mar 18 15:08:43.091] I (2471) wifi:Init max length of beacon: 752/752 [Mar 18 15:08:43.091] I (2481) wifi:Init max length of beacon: 752/752 [Mar 18 15:08:43.091] I (2481) wifi:Set ps type: 0 [Mar 18 15:08:43.091] [Mar 18 15:08:43.091] esp32_wifi.c:529 WiFi AP IP: 192.168.4.1/255.255.255.0 gw 192.168.4.1, DHCP range 192.168.4.2 - 192.168.4.100 [Mar 18 15:08:43.091] mgos_http_server.c:368 HTTP server started on [80] [Mar 18 15:08:43.091] mgos_provision_btn.c:90 Factory reset button: pin 0, pull up, hold_ms 0 (hold on boot) [Mar 18 15:08:43.091] mgos_provision_stat:120 Max state: 0 [Mar 18 15:08:43.091] mgos_rpc_channel_mq:203 0x3ffdb82c esp32_C8CF98/rpc [Mar 18 15:08:43.091] mgos_rpc_channel_ua:313 0x3ffdbf50 UART0 [Mar 18 15:08:43.091] mgos_init.c:36 Init done, RAM: 269304 total, 144956 free, 144956 min free [Mar 18 15:08:43.456] LED on -> false [Mar 18 15:08:43.527] mgos_mongoose.c:66 New heap free LWM: 118352 [Mar 18 15:08:43.527] mgos_ota_core.c:1330 UID: 0fef52e4924af156, license: none [Mar 18 15:08:43.527] esp32_bt_gap.c:100 BT device name esp32_C8CF98, addr f0:08:d1:c8:cf:9a,1 [Mar 18 15:08:43.527] esp32_bt_gatts.c:394 Starting BT service 5f6d4f53-5f44-4247-5f53-56435f49445f [Mar 18 15:08:43.527] esp32_bt_gatts.c:394 Starting BT service 5f6d4f53-5f52-5043-5f53-56435f49445f [Mar 18 15:08:44.467] online: false {"ram_free":123084,"uptime":2.870466,"btnCount":0,"on":false} [Mar 18 15:08:45.460] online: false {"ram_free":123064,"uptime":3.870175,"btnCount":0,"on":false} [Mar 18 15:08:46.470] online: false {"ram_free":123064,"uptime":4.870221,"btnCount":0,"on":false}

Configurando SSID e WIFI

mos wifi "Andreia Oi Miguel 2.4G" 12345678

$ mos wifi "Andreia Oi Miguel 2.4G" 12345678 Getting configuration... Setting new configuration... Command completed.

[Mar 18 15:17:10.966] I (4488) wifi:state: assoc -> run (10) [Mar 18 15:17:10.966] mgos_mongoose.c:66 New heap free LWM: 116612 [Mar 18 15:17:11.028] I (4528) wifi:connected with Andreia Oi Miguel 2.4G, aid = 1, channel 6, BW20, bssid = 9c:52:f8:43:7a:e0 [Mar 18 15:17:11.028] I (4538) wifi:security: WPA2-PSK, phy: bgn, rssi: -41 [Mar 18 15:17:11.028] I (4548) wifi:pm start, type: 0 [Mar 18 15:17:11.028] [Mar 18 15:17:11.028] mgos_wifi.c:136 WiFi STA: Connected, BSSID 9c:52:f8:43:7a:e0 ch 6 RSSI -42 [Mar 18 15:17:11.028] mgos_net.c:90 WiFi STA: connected [Mar 18 15:17:11.028] I (4568) wifi:AP's beacon interval = 102400 us, DTIM period = 1 [Mar 18 15:17:11.785] online: false {"ram_free":125128,"uptime":4.266742,"btnCount":0,"on":false} [Mar 18 15:17:12.787] online: false {"ram_free":125112,"uptime":5.267389,"btnCount":0,"on":false} [Mar 18 15:17:13.226] I (6728) esp_netif_handlers: sta ip: 192.168.100.116, mask: 255.255.255.0, gw: 192.168.100.1 [Mar 18 15:17:13.226] mgos_net.c:102 WiFi STA: ready, IP 192.168.100.116, GW 192.168.100.1, DNS 192.168.100.1 [Mar 18 15:17:13.226] mgos_provision_state:44 Current state: 1 -> 2 [Mar 18 15:17:13.226] mgos_provision_state:73 Setting provisioning timeout for 300 seconds [Mar 18 15:17:13.226] esp32_bt.c:82 Network is up, disabling Bluetooth [Mar 18 15:17:13.333] mgos_sys_config.c:174 Saved to conf9.json [Mar 18 15:17:13.790] online: false {"ram_free":162624,"uptime":6.266802,"btnCount":0,"on":false} [Mar 18 15:17:14.375] mgos_sntp.c:96 SNTP query to time.google.com [Mar 18 15:17:14.482] mgos_sntp.c:59 SNTP reply from 216.239.35.0: time 1616091435.341095, local 386.448222, delta 1616091048.892873 [Mar 18 15:17:14.777] online: false {"ram_free":162096,"uptime":7.266806,"btnCount":0,"on":false}


Pegue o TOKEN

Offline

mos config-set dash.enable=true dash.token=TOKEN
mos config-set dash.enable=true dash.token=xxxxxxxxxxxxxxxxxxxxxxx Getting configuration... Setting new configuration... Command completed.

Online!

Alterando init.js 
load('api_timer.js');

Timer.set(1000, Timer.REPEAT, function() {
    print('Hello From Smartcore!!!');
}, null);





$ mos build --platform esp32
Connecting to https://build.mongoose-os.com, user test
Uploading sources (1476 bytes)
Firmware saved to C:\mos\app1\build\fw.zip
Command completed.
$ mos flash 
DÚVIDAS
suporte@smartcore.com.br

REFERÊNCIAS

 

Sobre a SMARTCORE

A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portfó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