ESP32 WiFi logger - Registra mensagens por WiFi, usando TCP, UDP ou Websockets
Aplicativo de exemplo:
protocol_examples_common (esp-idf/examples/common_components/)
cd <your_esp_idf_project>
mkdir components
cd components
cp $IDF_PATH/examples/common_components/protocol_examples_common . -r
git clone https://github.com/VedantParanjape/esp-wifi-logger.git wifi_logger
Altere CMakeList.txt para adicionar a linha abaixo:
set(EXTRA_COMPONENT_DIRS <relative_path_to_component_folder>)
a pasta do componente deve conter os componentes protocol_examples_common
e wifi_logger
sudo apt-get install netcat
nc -lu <PORT>
nc -l <PORT>
websocat -s <IP_ADDRESS_OF_YOUR_MACHINE>:<PORT>
websocat -s $(ip -o route get to 8.8.8.8 | sed -n 's/.*src ([0-9.]+).*/1/p'):1234
nc -l 1212
wifi_log_e() - Generate log with log level ERROR
wifi_log_w() - Generate log with log level WARN
wifi_log_i() - Generate log with log level INFO
wifi_log_d() - Generate log with log level DEBUG
wifi_log_v() - Generate log with log level VERBOSE
Pode enviar logs gerados por ESP_LOGE, ESP_LOGW, ESP_LOGI, ESP_LOGD, ESP_LOGV
, se configurado assim através do menuconfig
Padrão de uso igual ESP_LOGX()
Use a função wifi_log()_x
para imprimir logs via wifi
Exemplo: wifi_log(TAG, "%s", "logger test");
Os logs ESP_LOGE, ESP_LOGW, ESP_LOGI, ESP_LOGD, ESP_LOGV
também serão enviados por wifi, se configurados no menuconfig.
Chame start_wifi_logger()
em void app_main()
para iniciar o logger. A função de registro wifi_log_x() (x = e,w,i,d,v)
pode ser chamada para registrar mensagens ou funções normais da API de registro do ESP-IDF, como ESP_LOGW
podem ser usadas se configuradas por meio de menuconfig
.
Configurar menuconfig
Example Connection Configuration
Definir WiFi SSID e senhaComponent config
WiFi Logger configuration
Route logs generated by ESP_LOGX to the wifi logger
- Selecione se os logs gravados pela API do sistema são roteados para serem enviados ao registrador remotoNetwork Protocol (TCP/UDP/WEBSOCKET)
- Defina o protocolo de rede a ser usadoUDP/TCP Network Protocol
Server IP Address
- Defina o endereço IP do servidor que receberá as mensagens de log enviadas pelo ESP32Port
- Defina a porta do servidorWEBSOCKET Network Protocol
Websocket Server URI
- Define o URI do servidor Websocket, para onde os logs devem ser enviados O endereço IP do servidor pode ser descoberto executando ifconfig
em uma máquina Linux
idf.py menuconfig
Example Connection Configuration
WiFi SSID
- Defina o WiFi SSID para conectarWiFi Password
- Definir senha WiFi Component config
WiFi Logger configuration
Network Protocol (TCP/UDP/WEBSOCKET)
- Defina o protocolo de rede a ser usadoRoute logs generated by ESP_LOGX to the wifi logger
- Selecione se os logs gravados pela API do sistema são roteados para serem enviados ao registrador remotoUDP/TCP Network Protocol
Server IP Address
- Defina o endereço IP do servidor que receberá as mensagens de log enviadas pelo ESP32Port
- Defina a porta do servidorWEBSOCKET Network Protocol
Websocket Server URI
- Define o URI do servidor Websocket, para onde os logs devem ser enviadosQueue Size
- Configuração avançada, altere por sua conta e risco Defina o tamanho da fila do freeRTOS usado para passar mensagens de log para a tarefa do criador de logs.logger buffer size
- Configuração avançada, altere por sua conta e risco Defina o tamanho do buffer da matriz char usada para gerar mensagens de log no formato ESP #include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "wifi_logger.h"
void app_main ( void )
{
start_wifi_logger (); // Start wifi logger
while ( 1 )
{
wifi_log_e ( "test" , "%s %d %f" , "hello world wifi logger" , 43 , 45.341223242 ); // write log over wifi with log level -> ERROR
wifi_log_w ( "test" , "%s %d %f" , "hello world wifi logger" , 43 , 45.341223242 ); // write log over wifi with log level -> WARN
wifi_log_i ( "test" , "%s %d %f" , "hello world wifi logger" , 43 , 45.341223242 ); // write log over wifi with log level -> INFO
wifi_log_d ( "test" , "%s %d %f" , "hello world wifi logger" , 43 , 45.341223242 ); // write log over wifi with log level -> DEBUG
wifi_log_v ( "test" , "%s %d %f" , "hello world wifi logger" , 43 , 45.341223242 ); // write log over wifi with log level -> VERBOSE
vTaskDelay ( 100 ); // Wait for 100ms, prevent watchdog from triggering a reset
}
}