Registrador WiFi ESP32: registre mensajes a través de WiFi, utilizando TCP, UDP o Websockets
Aplicación de ejemplo:
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
Cambie CMakeList.txt para agregar la línea que figura a continuación:
set(EXTRA_COMPONENT_DIRS <relative_path_to_component_folder>)
La carpeta del componente debe contener el componente protocol_examples_common
y 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
Puede enviar registros generados por ESP_LOGE, ESP_LOGW, ESP_LOGI, ESP_LOGD, ESP_LOGV
, si está configurado así a través de menuconfig
Patrón de uso igual que ESP_LOGX()
Utilice la función wifi_log()_x
para imprimir registros a través de wifi
Ejemplo: wifi_log(TAG, "%s", "logger test");
Los registros ESP_LOGE, ESP_LOGW, ESP_LOGI, ESP_LOGD, ESP_LOGV
también se enviarán a través de wifi, si están configurados en menuconfig.
Llame start_wifi_logger()
en void app_main()
para iniciar el registrador. Se puede llamar a la función de registro wifi_log_x() (x = e,w,i,d,v)
para registrar mensajes o se pueden usar funciones API de registro ESP-IDF normales como ESP_LOGW
si se configuran a través de menuconfig
.
Configurar menuconfig
Example Connection Configuration
Establecer WiFi SSID y contraseñaComponent config
WiFi Logger configuration
Route logs generated by ESP_LOGX to the wifi logger
: seleccione si los registros escritos por la API del sistema se enrutan para enviarse al registrador remotoNetwork Protocol (TCP/UDP/WEBSOCKET)
: establece el protocolo de red que se utilizaráUDP/TCP Network Protocol
Server IP Address
: establezca la dirección IP del servidor que recibirá los mensajes de registro enviados por ESP32.Port
: establezca el puerto del servidorWEBSOCKET Network Protocol
Websocket Server URI
: establece el URI del servidor Websocket, donde se enviarán los registros. La dirección IP del servidor se puede encontrar ejecutando ifconfig
en una máquina Linux
idf.py menuconfig
Example Connection Configuration
WiFi SSID
: configure el WiFi SSID para conectarseWiFi Password
- Establecer contraseña de WiFi Component config
WiFi Logger configuration
Network Protocol (TCP/UDP/WEBSOCKET)
: establece el protocolo de red que se utilizaráRoute logs generated by ESP_LOGX to the wifi logger
: seleccione si los registros escritos por la API del sistema se enrutan para enviarse al registrador remotoUDP/TCP Network Protocol
Server IP Address
: establezca la dirección IP del servidor que recibirá los mensajes de registro enviados por ESP32.Port
: establezca el puerto del servidorWEBSOCKET Network Protocol
Websocket Server URI
: establece el URI del servidor Websocket, donde se enviarán los registros.Queue Size
: configuración avanzada, cámbielo bajo su propia responsabilidad. Configure el tamaño de la cola freeRTOS utilizado para pasar mensajes de registro a la tarea del registrador.logger buffer size
: configuración avanzada, cámbielo bajo su propia responsabilidad Establezca el tamaño del búfer de la matriz de caracteres utilizada para generar mensajes de registro en 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
}
}