quinta-feira, 28 de abril de 2022

Wisol LOM204A02 com comandos AT - STM32 ICUBE IDE - LORAWAN - VISUINO + Wokwi

 Wisol LOM204A02 com comandos AT  - STM32 ICUBE IDE - LORAWAN - VISUINO + Wokwi



O objetivo deste BLOG é demonstrar como pode-se programar o LOM204 com comandos AT,  baseado na library en.i-cube_lrwan_v2.1.0. Foi utilizado o VISUINO para enviar comandos AT e simulado no Wokwi através de uma COMM virtual conectado ao LOM204 pela USB.

Foi utilizado o STM32 CUBE IDE para compilar a APP dos comandos AT, o mesmo pode também ser compilado com o KEIL C.



Por  Uri Shaked

Best  Open Source Simulator

Wokwi é um simulador de eletrônica online. Você pode usá-lo para simular Arduino, U-BLOX NINA W106 (ESP32) e muitas outras placas, componentes e sensores populares.
Simula várias partes (elementos Wokwi) como LEDs, shift registers, Buzzer, sensores (ultrassônico, temperatura, umidade etc. ) Display SSD, teclados e muito mais.

Você pode aprender programação Arduino onde quer que esteja. Nenhum hardware é necessário. Além de tudo isso, o simulador Arduino é totalmente gratuito!

TTN
The Thing Network

A Rede de Coisas (TTN) é uma iniciativa iniciada pela sociedade civil holandesa. O objetivo é ter redes LoRaWAN instaladas em todas as cidades do mundo. Ao interconectar essas redes locais, a TTN quer construir uma infra-estrutura mundial para facilitar uma Internet das Coisas (IoT) pública.

A The Things Network (TTN) é o servidor IoT na nuvem utilizado nesse projeto. É um dos servidores gratuitos para LoRaWAN mais utilizados, com mais de 90 mil desenvolvedores, mais de 9 mil gateways de usuários conectados à rede ao redor do mundo e mais de 50 mil aplicações em funcionamento.

A TTN comercializa nós e gateways LoRa e provê treinamento individual e coletivo para empresas e desenvolvedores que desejam utilizar o LoRa. Possui uma comunidade bem ativa nos fóruns, sempre colaborando e ajudando a resolver problemas, além de prover diversos meios de integrar a TTN com a aplicação que se deseja usar. Possui integração nativa com diversas aplicações como: Cayenne (utilizado nesse trabalho), Hypertext Transfer Protocol (HTTP), permitindo ao usuário realizar uplink para um gateway e receber downlink por HTTP, OpenSensors e EVRYTHNG . Caso o usuário queira criar sua própria aplicação, a TTN disponibiliza Application Programming Interface (API) para uso com Message Queuing Telemetry Transport (MQTT) e diversos Software Developer Kits (SDK) para uso com as linguagens Python, Java , Node.Js , NODE-RED e Go

A rede TTN utiliza o protocolo LoRaWAN objetivando uma cobertura em longo alcance para os dispositivos da rede, caracterizando-a assim com uma Wide Area Network (WAN). Devido ao baixo consumo de energia e ao uso da tecnologia LoRa, é chamada de LPWAN (Low Power Wide Area Network). O grande diferencial da TTN é seu estabelecimento como uma rede aberta (open-source) e colaborativa (crowd-sourced), onde qualquer usuário pode contribuir instalando um gateway em sua residência.

Os elementos da TTN são classificados como: 

• Endpoints (nós): Os dispositivos responsáveis pela camada de sensoriamento da rede, o endpoint LoRaWAN. Podem coletar informações através de sensores e também acionar dispositivos/máquinas via atuadores. São configurados através de uma das três classes distintas do protocolo LaRaWAN; 

• Gateways: Elementos responsáveis por concentrar e processar as informações enviadas pelos endpoints. Os gateways em geral estão conectados a internet, seja por WiFi/Ethernet ou 3G/4G em locais remotos. Mesmo que uma mesma rede LoRaWAN tenha diferentes objetivos, baseados em aplicações distintas, os gateways possuem o objetivo comum de fornecer a maior área de cobertura possível; 

• Aplicações: Conectar e interligar os diferentes dispositivos da rede TTN para o fornecimento de informações gerais sobre a coleta de dados dos dispositivos.

VISUINO
O Visuino é o mais recente software inovador da Mitov Software. Um ambiente de programação visual que permite programar suas placas Arduino.
Os componentes encontrados no software Visuino representam seus componentes de hardware e você poderá criar e projetar facilmente seus programas usando arrastar e soltar. Nenhum equipamento ou hardware é necessário para executar o software no modo de design. Depois de ter concluído o design, você pode conectar o upload da placa Arduino e executá-lo.

Para aquelas pessoas que não são fortes em escrever código, em seguida, projetar, compilar e criar programas Arduino nunca foi tão fácil! Por que perder tempo criando código quando já se faz todo o trabalho duro para você? Você tem sua placa Arduino e um ótimo design de hardware, veja-a rodando em minutos, não em horas!

Testado no STARTER KIT LOM204


Bem como em uma placa de testes

Sobre o I-CUBE-LRWAN:

• Integração de aplicativos pronta;
• Complemento fácil da solução lora® de baixa potência;
• Carga de CPU extremamente baixa; 
• Sem requisitos de latência; 
• Pouco uso de memória;
• Serviços de tempo de baixa potência.

O mesmo foi portado para se compatível com o LOM204.

IMPORTANTE: Opção NÃO OFICIAL da WISOL, indicamos uso do KEIL C

Baseado no link abaixo

Baixe e instale o STM32 CUBE IDE



Baixe e descompacte o github 


(coloque (por exemplo) em C:\STM32CubeExpansion_LRWAN_V2.1.0_LOM204-master)



No STM32 CUBE IDE, faça a importação do Projeto


C:\STM32CubeExpansion_LRWAN_V2.1.0_LOM204-master\Projects\B-L072Z-LRWAN1\Applications\LoRaWAN\LoRaWAN_AT_Slave\STM32CubeIDE\cmwx1zzabz_0xx

Algumas alterações Básicas foram realizadas
  • Em lora_app.h
/* LoraWAN application configuration (Mw is configured by lorawan_conf.h) */
#define ACTIVE_REGION                        LORAMAC_REGION_AU915
  • Em lorawan_conf.h para
/* Region ------------------------------------*/
/* the region listed here will be linked in the MW code */
/* the application (on sys_conf.h) shall just configure one region at the time */
/*#define REGION_AS923*/
#define REGION_AU915
/*#define REGION_CN470*/
/*#define REGION_CN779*/
/*#define REGION_EU433*/
/*#define REGION_EU868*/
/*#define REGION_KR920*/
/*#define REGION_IN865*/
/*#define REGION_US915*/
/*#define REGION_RU864*/
  • Em se-identity.h 
****************************************************************************** ****************************************************************************** ****************************************************************************** */ /*! * When set to 1 DevEui is LORAWAN_DEVICE_EUI * When set to 0 DevEui is automatically set with a value provided by MCU platform */ #define STATIC_DEVICE_EUI 1 /*! * end-device IEEE EUI (big endian) */ #define LORAWAN_DEVICE_EUI { 0x8X, 0x5X, 0x1X, 0xFX, 0xFX, 0xEX, 0x8X, 0x9X } /*! * App/Join server IEEE EUI (big endian) */ #define LORAWAN_JOIN_EUI { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } /*! * When set to 1 DevAddr is LORAWAN_DEVICE_ADDRESS * When set to 0 DevAddr is automatically set with a value provided by a pseudo * random generator seeded with a value provided by the MCU platform */ #define STATIC_DEVICE_ADDRESS 1 /*! * Device address on the network (big endian) */ #define LORAWAN_DEVICE_ADDRESS ( uint32_t )0x01E0002A /*! * Application root key */ #define LORAWAN_APP_KEY 97,4A,BB,55,8A,25,01,94,A6,CB,C2,16,E2,AB,2E,5B /*! * Network root key */ #define LORAWAN_NWK_KEY 97,4A,BB,55,8A,25,01,94,A6,CB,C2,16,E2,AB,2E,5B /*! * Forwarding Network session key */ #define LORAWAN_NWK_S_KEY 2B,7E,15,16,28,AE,D2,A6,AB,F7,15,88,09,CF,4F,3C /*! * Application session key */ #define LORAWAN_APP_S_KEY 2B,7E,15,16,28,AE,D2,A6,AB,F7,15,88,09,CF,4F,3C













































  • Em cmwx1zzabz_0xx_conf.h (pinos do LOM204 (Radio SX1276))
/** ****************************************************************************** * @file : cmwx1zzabz_0xx_conf.h * @brief : This file provides code for the configuration * of the shield instances (pin mapping). ****************************************************************************** * @attention * * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics. * All rights reserved.</center></h2> * * This software component is licensed by ST under Ultimate Liberty license * SLA0044, the "License"; You may not use this file except in compliance with * the License. You may obtain a copy of the License at: * www.st.com/SLA0044 * ****************************************************************************** */ #ifndef __CMWX1ZZABZ_0XX_CONF_H__ #define __CMWX1ZZABZ_0XX_CONF_H__ #ifdef __cplusplus extern "C" { #endif #include "platform.h" #include "radio_conf.h" /* Defines ---------------------------------------------------------------*/ #define RADIO_DIO_0_IT_PRIO 0 #define RADIO_DIO_1_IT_PRIO 0 #define RADIO_DIO_2_IT_PRIO 0 #define RADIO_DIO_3_IT_PRIO 0 /* Daughter board Pin mapping --------------------------------------------*/ /* SPI functions redefinition */ #define RADIO_SPI_Init BSP_SPI1_Init #define RADIO_SPI_DeInit BSP_SPI1_DeInit #define RADIO_SPI_SendRecv BSP_SPI1_SendRecv #define RADIO_SPI_SCK_GPIO_PIN BUS_SPI1_SCK_GPIO_PIN #define RADIO_SPI_MISO_GPIO_PIN BUS_SPI1_MISO_GPIO_PIN #define RADIO_SPI_MOSI_GPIO_PIN BUS_SPI1_MOSI_GPIO_PIN #define RADIO_SPI_SCK_GPIO_PORT BUS_SPI1_SCK_GPIO_PORT #define RADIO_SPI_MISO_GPIO_PORT BUS_SPI1_MISO_GPIO_PORT #define RADIO_SPI_MOSI_GPIO_PORT BUS_SPI1_MOSI_GPIO_PORT #define RADIO_SPI_SCK_GPIO_AF BUS_SPI1_SCK_GPIO_AF #define RADIO_SPI_MOSI_GPIO_AF BUS_SPI1_MOSI_GPIO_AF #define RADIO_SPI_MISO_GPIO_AF BUS_SPI1_MISO_GPIO_AF #define RADIO_SPI_SCK_GPIO_CLK_ENABLE() BUS_SPI1_SCK_GPIO_CLK_ENABLE() #define RADIO_SPI_MOSI_GPIO_CLK_ENABLE() BUS_SPI1_MOSI_GPIO_CLK_ENABLE() #define RADIO_SPI_MISO_GPIO_CLK_ENABLE() BUS_SPI1_MISO_GPIO_CLK_ENABLE() /* SPIx Bus Pin mapping */ #define RADIO_NSS_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() #define RADIO_NSS_PORT GPIOA #define RADIO_NSS_PIN GPIO_PIN_4 /* LORA I/O pin mapping */ #define RADIO_RESET_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() #define RADIO_RESET_PORT GPIOA #define RADIO_RESET_PIN GPIO_PIN_8 #define RADIO_DIOn 4U #define RADIO_DIO_0_PORT GPIOA #define RADIO_DIO_0_PIN GPIO_PIN_12 #define RADIO_DIO_0_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() #define RADIO_DIO_0_EXTI_LINE EXTI_LINE_12 #define RADIO_DIO_0_IRQn EXTI4_15_IRQn #define H_EXTI_12 hRADIO_DIO_exti[0] #define RADIO_DIO_1_PORT GPIOB #define RADIO_DIO_1_PIN GPIO_PIN_2 #define RADIO_DIO_1_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() #define RADIO_DIO_1_EXTI_LINE EXTI_LINE_2 #define RADIO_DIO_1_IRQn EXTI2_3_IRQn #define H_EXTI_2 hRADIO_DIO_exti[1] #define RADIO_DIO_2_PORT GPIOB #define RADIO_DIO_2_PIN GPIO_PIN_5 #define RADIO_DIO_2_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() #define RADIO_DIO_2_EXTI_LINE EXTI_LINE_5 #define RADIO_DIO_2_IRQn EXTI4_15_IRQn #define H_EXTI_5 hRADIO_DIO_exti[2] #define RADIO_DIO_3_PORT GPIOB #define RADIO_DIO_3_PIN GPIO_PIN_0 #define RADIO_DIO_3_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() #define RADIO_DIO_3_EXTI_LINE EXTI_LINE_0 #define RADIO_DIO_3_IRQn EXTI0_1_IRQn #define H_EXTI_0 hRADIO_DIO_exti[3] #define RADIO_TCXO_VCC_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() #define RADIO_TCXO_VCC_PORT GPIOB #define RADIO_TCXO_VCC_PIN GPIO_PIN_1 #define RADIO_ANT_SWITCH_CLK_ENABLE_RX() __HAL_RCC_GPIOA_CLK_ENABLE() #define RADIO_ANT_SWITCH_PORT_RX GPIOA #define RADIO_ANT_SWITCH_PIN_RX GPIO_PIN_15 #define RADIO_ANT_SWITCH_CLK_ENABLE_TX_BOOST() __HAL_RCC_GPIOC_CLK_ENABLE() #define RADIO_ANT_SWITCH_PORT_TX_BOOST GPIOC #define RADIO_ANT_SWITCH_PIN_TX_BOOST GPIO_PIN_1 #define RADIO_ANT_SWITCH_CLK_ENABLE_TX_RFO() __HAL_RCC_GPIOC_CLK_ENABLE() #define RADIO_ANT_SWITCH_PORT_TX_RFO GPIOC #define RADIO_ANT_SWITCH_PIN_TX_RFO GPIO_PIN_2 #ifdef __cplusplus } #endif #endif /* __CMWX1ZZABZ_0XX_CONF_H__ */ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
























































































  • Em RegionAU915.c, a máscara utilizada para compatibilizar com configuração utilizada no Gateway LoRaWAN

// Initialize channels default mask /* ST_WORKAROUND_BEGIN: Hybrid mode */ #if ( HYBRID_ENABLED == 1 ) RegionNvmGroup2->ChannelsDefaultMask[0] = 0x00FF; RegionNvmGroup2->ChannelsDefaultMask[1] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[2] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[3] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[4] = 0x0001; RegionNvmGroup2->ChannelsDefaultMask[5] = 0x0000; #else RegionNvmGroup2->ChannelsDefaultMask[0] = 0xFF00; RegionNvmGroup2->ChannelsDefaultMask[1] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[2] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[3] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[4] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[5] = 0x0000;













Carta de Apresentação

  • em stm32l0xx_it.c
/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file stm32l0xx_it.c * @brief Interrupt Service Routines. ****************************************************************************** * @attention * * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics. * All rights reserved.</center></h2> * * This software component is licensed by ST under Ultimate Liberty license * SLA0044, the "License"; You may not use this file except in compliance with * the License. You may obtain a copy of the License at: * www.st.com/SLA0044 * ****************************************************************************** */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "main.h" #include "stm32l0xx_it.h" #include "radio_board_if.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN TD */ /* USER CODE END TD */ /* Private define ------------------------------------------------------------*/ /* USER CODE BEGIN PD */ /* USER CODE END PD */ /* Private macro -------------------------------------------------------------*/ /* USER CODE BEGIN PM */ /* USER CODE END PM */ /* Private variables ---------------------------------------------------------*/ /* USER CODE BEGIN PV */ /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ /* USER CODE BEGIN PFP */ /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ /* USER CODE END 0 */ /* External variables --------------------------------------------------------*/ extern DMA_HandleTypeDef hdma_lpuart1_tx; extern UART_HandleTypeDef hlpuart1; extern RTC_HandleTypeDef hrtc; /* USER CODE BEGIN EV */ /* USER CODE END EV */ /******************************************************************************/ /* Cortex Processor Interruption and Exception Handlers */ /******************************************************************************/ /** * @brief This function handles Non maskable interrupt. */ void NMI_Handler(void) { /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ /* USER CODE END NonMaskableInt_IRQn 0 */ /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ while (1) { } /* USER CODE END NonMaskableInt_IRQn 1 */ } /** * @brief This function handles Hard fault interrupt. */ void HardFault_Handler(void) { /* USER CODE BEGIN HardFault_IRQn 0 */ /* USER CODE END HardFault_IRQn 0 */ while (1) { /* USER CODE BEGIN W1_HardFault_IRQn 0 */ /* USER CODE END W1_HardFault_IRQn 0 */ } } /** * @brief This function handles Memory management fault. */ void MemManage_Handler(void) { /* USER CODE BEGIN MemoryManagement_IRQn 0 */ /* USER CODE END MemoryManagement_IRQn 0 */ while (1) { /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */ /* USER CODE END W1_MemoryManagement_IRQn 0 */ } } /** * @brief This function handles Prefetch fault, memory access fault. */ void BusFault_Handler(void) { /* USER CODE BEGIN BusFault_IRQn 0 */ /* USER CODE END BusFault_IRQn 0 */ while (1) { /* USER CODE BEGIN W1_BusFault_IRQn 0 */ /* USER CODE END W1_BusFault_IRQn 0 */ } } /** * @brief This function handles Undefined instruction or illegal state. */ void UsageFault_Handler(void) { /* USER CODE BEGIN UsageFault_IRQn 0 */ /* USER CODE END UsageFault_IRQn 0 */ while (1) { /* USER CODE BEGIN W1_UsageFault_IRQn 0 */ /* USER CODE END W1_UsageFault_IRQn 0 */ } } /** * @brief This function handles System service call via SWI instruction. */ void SVC_Handler(void) { /* USER CODE BEGIN SVCall_IRQn 0 */ /* USER CODE END SVCall_IRQn 0 */ /* USER CODE BEGIN SVCall_IRQn 1 */ /* USER CODE END SVCall_IRQn 1 */ } /** * @brief This function handles Debug monitor. */ void DebugMon_Handler(void) { /* USER CODE BEGIN DebugMonitor_IRQn 0 */ /* USER CODE END DebugMonitor_IRQn 0 */ /* USER CODE BEGIN DebugMonitor_IRQn 1 */ /* USER CODE END DebugMonitor_IRQn 1 */ } /** * @brief This function handles Pendable request for system service. */ void PendSV_Handler(void) { /* USER CODE BEGIN PendSV_IRQn 0 */ /* USER CODE END PendSV_IRQn 0 */ /* USER CODE BEGIN PendSV_IRQn 1 */ /* USER CODE END PendSV_IRQn 1 */ } /** * @brief This function handles System tick timer. */ void SysTick_Handler(void) { /* USER CODE BEGIN SysTick_IRQn 0 */ /* USER CODE END SysTick_IRQn 0 */ HAL_IncTick(); /* USER CODE BEGIN SysTick_IRQn 1 */ /* USER CODE END SysTick_IRQn 1 */ } /******************************************************************************/ /* STM32L0xx Peripheral Interrupt Handlers */ /* Add here the Interrupt Handlers for the used peripherals. */ /* For the available peripheral interrupt handler names, */ /* please refer to the startup file (startup_stm32l0xx.s). */ /******************************************************************************/ /** * @brief This function handles PPP interrupt request. * @param None * @retval None */ /*void PPP_IRQHandler(void) { }*/ void EXTI0_1_IRQHandler(void) { #if (defined(CMWX1ZZABZ0XX)) HAL_EXTI_IRQHandler(&H_EXTI_0); #endif } void EXTI2_3_IRQHandler(void) { HAL_EXTI_IRQHandler(&H_EXTI_2); #if (defined(CMWX1ZZABZ0XX)) HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2); #endif #if (defined(SX1276MB1MAS) | defined(SX1276MB1LAS) | defined(SX1272MB2DAS)) HAL_EXTI_IRQHandler(&H_EXTI_3); #endif } void EXTI4_15_IRQHandler(void) { HAL_EXTI_IRQHandler(&H_EXTI_12); HAL_EXTI_IRQHandler(&H_EXTI_5); #if (defined(SX1276MB1MAS) | defined(SX1276MB1LAS) | defined(SX1272MB2DAS)) HAL_EXTI_IRQHandler(&H_EXTI_5); #endif #if (defined(SX1276MB1MAS) | defined(SX1276MB1LAS) | defined(SX1272MB2DAS)) HAL_EXTI_IRQHandler(&H_EXTI_10); #endif #if (defined(CMWX1ZZABZ0XX)) //HAL_EXTI_IRQHandler(&H_EXTI_13); #else HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13); #endif } void DMA1_Channel4_5_6_7_IRQHandler(void) { /* USER CODE BEGIN DMA1_Channel4_5_6_7_IRQn 0 */ /* USER CODE END DMA1_Channel4_5_6_7_IRQn 0 */ HAL_DMA_IRQHandler(&hdma_lpuart1_tx); /* USER CODE BEGIN DMA1_Channel4_5_6_7_IRQn 1 */ /* USER CODE END DMA1_Channel4_5_6_7_IRQn 1 */ } /** * @brief This function handles LPUART1 Interrupt. */ void LPUART1_IRQHandler(void) { /* USER CODE BEGIN LPUART1_IRQn 0 */ /* USER CODE END LPUART1_IRQn 0 */ HAL_UART_IRQHandler(&hlpuart1); /* USER CODE BEGIN LPUART1_IRQn 1 */ /* USER CODE END LPUART1_IRQn 1 */ } void RTC_IRQHandler(void) { /* USER CODE BEGIN RTC_Alarm_IRQn 0 */ /* USER CODE END RTC_Alarm_IRQn 0 */ HAL_RTC_AlarmIRQHandler(&hrtc); /* USER CODE BEGIN RTC_Alarm_IRQn 1 */ /* USER CODE END RTC_Alarm_IRQn 1 */ } /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
























































































































































































































Compilando


Na pasta 
C:\Users\Usuario\Desktop\STM32CubeExpansion_LRWAN_V2.1.0\Projects\B-L072Z-LRWAN1\Applications\LoRaWAN\LoRaWAN_AT_Slave\STM32CubeIDE\cmwx1zzabz_0xx\Debug
será gerado um arquivo cmwx1zzabz_0xx.elf

Abra o STM32 CUBE Programmer e faça a gravação!


Veja a execução (Putty)

TXD do PC no RX do LOM204 (PA3) e RXD do PC no TX do LOM204 (PA2)
Baud 9600,N,8,1



Projeto no VISUINO

"Aguarda ocorrer o JOIN e entao envia AABBCCDDEEFF a cada 10 segundos"


Agora compile



Clique no ICONE para pegar o caminho completo do BIN gerado pelo VISUINO, o qual será colado no Wokwi.


No Wokwi, crie e desenhe o projeto abaixo



Redirecionado para COMM

{ "version": 1, "author": "Miguel Wisintainer", "editor": "Inkscape", "parts": [ { "type": "wokwi-custom-board", "id": "esp", "top": 1.57, "left": -48.5, "attrs": {} }, { "type": "wokwi-serial-port", "id": "serial", "top": 0, "left": 0, "attrs": { "baud": "9600" } }, { "type": "wokwi-lcd2004", "id": "lcd1", "top": -0.46, "left": 121.09, "attrs": { "pins": "i2c" } } ], "connections": [ [ "esp:TX0", "serial:RX", "", [] ], [ "esp:RX0", "serial:TX", "", [] ], [ "esp:D21", "lcd1:SDA", "green", [ "h35.19", "v-12.23" ] ], [ "esp:D22", "lcd1:SCL", "green", [ "h51.75", "v26.28" ] ] ] }



Execução

Clicando no Sketch (pode deixar vazio), pressione F1 e escolha

LOAD HEX FILE AND SIMULATE

e então COLE o BIN gerado pelo VISUINO

Execução no Wokwi





Lista de comandos AT

Você pode consultar em 

Mandar apenas CR depois do comando


Questões: suporte@smartcore.com.br


Notas para ARDUINO MEGA

{
  "version": 1,
  "author": "Anonymous maker",
  "editor": "wokwi",
  "parts": [ { "id": "mega", "type": "wokwi-arduino-mega" },
  {
      "type": "wokwi-serial-port",
      "id": "serial",
      "top": 0,
      "left": 0,
      "attrs": { "baud": "19200" }
    } ],
  "connections": [
    [ "mega:17", "serial:TX", "", [] ],
    [ "mega:16", "serial:RX", "", [] ]]
}




void setup() {
  // put your setup code here, to run once:
  Serial2.begin(19200);
  Serial.begin(19200);
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial2.println("AT");
  Serial.println(Serial2.read());
  delay(10);
}







FONTES: 





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