ESP32-WLAN-Logger – Protokollieren Sie Nachrichten über WLAN, entweder mit TCP, UDP oder Websockets
Beispiel-App:
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
Ändern Sie CMakeList.txt, um die unten angegebene Zeile hinzuzufügen:
set(EXTRA_COMPONENT_DIRS <relative_path_to_component_folder>)
Der Komponentenordner muss die Komponenten protocol_examples_common
und wifi_logger
enthalten
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
Kann Protokolle senden, die von ESP_LOGE, ESP_LOGW, ESP_LOGI, ESP_LOGD, ESP_LOGV
generiert wurden, sofern dies über menuconfig konfiguriert wurde
Verwendungsmuster wie ESP_LOGX()
Verwenden Sie die Funktion wifi_log()_x
um Protokolle über WLAN zu drucken
Beispiel: wifi_log(TAG, "%s", "logger test");
ESP_LOGE, ESP_LOGW, ESP_LOGI, ESP_LOGD, ESP_LOGV
-Protokolle werden auch über WLAN gesendet, sofern in der Menükonfiguration konfiguriert.
Rufen Sie start_wifi_logger()
in void app_main()
auf, um den Logger zu starten. Die Protokollierungsfunktion wifi_log_x() (x = e,w,i,d,v)
kann aufgerufen werden, um Nachrichten zu protokollieren, oder es können normale ESP-IDF-Protokollierungs-API-Funktionen wie ESP_LOGW
verwendet werden, wenn sie über menuconfig
konfiguriert werden.
Konfigurieren Sie menuconfig
Example Connection Configuration
Legen Sie die WLAN-SSID und das Passwort festComponent config
WiFi Logger configuration
Route logs generated by ESP_LOGX to the wifi logger
– Wählen Sie aus, ob die von der System-API geschriebenen Protokolle so weitergeleitet werden, dass sie an den Remote-Logger gesendet werdenNetwork Protocol (TCP/UDP/WEBSOCKET)
– Legen Sie das zu verwendende Netzwerkprotokoll festUDP/TCP Network Protocol
Server IP Address
– Legen Sie die IP-Adresse des Servers fest, der von ESP32 gesendete Protokollnachrichten empfängtPort
– Legen Sie den Port des Servers festWEBSOCKET Network Protocol
Websocket Server URI
– Legt den URI des Websocket-Servers fest, an den Protokolle gesendet werden sollen Die IP-Adresse des Servers kann durch Ausführen von ifconfig
auf einem Linux-Computer ermittelt werden
idf.py menuconfig
Example Connection Configuration
WiFi SSID
– Legen Sie die WLAN-SSID für die Verbindung festWiFi Password
– Legen Sie das WLAN-Passwort fest Component config
WiFi Logger configuration
Network Protocol (TCP/UDP/WEBSOCKET)
– Legen Sie das zu verwendende Netzwerkprotokoll festRoute logs generated by ESP_LOGX to the wifi logger
– Wählen Sie aus, ob die von der System-API geschriebenen Protokolle so weitergeleitet werden, dass sie an den Remote-Logger gesendet werdenUDP/TCP Network Protocol
Server IP Address
– Legen Sie die IP-Adresse des Servers fest, der von ESP32 gesendete Protokollnachrichten empfängtPort
– Legen Sie den Port des Servers festWEBSOCKET Network Protocol
Websocket Server URI
– Legt den URI des Websocket-Servers fest, an den Protokolle gesendet werden sollenQueue Size
– Erweiterte Konfiguration, Änderung auf eigenes Risiko. Legen Sie die freeRTOS-Warteschlangengröße fest, die zum Übergeben von Protokollnachrichten an die Logger-Aufgabe verwendet wird.logger buffer size
– Erweiterte Konfiguration, Änderung auf eigenes Risiko. Legen Sie die Puffergröße des char-Arrays fest, das zum Generieren von Protokollmeldungen im ESP-Format verwendet wird #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
}
}