esp wifi logger
1.0.0
ESP32 WiFi 記錄器 - 使用 TCP、UDP 或 Websockets 透過 WiFi 記錄訊息
範例應用程式:
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
更改 CMakeList.txt 以新增以下行:
set(EXTRA_COMPONENT_DIRS <relative_path_to_component_folder>)
元件資料夾必須包含protocol_examples_common
和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
可以傳送ESP_LOGE, ESP_LOGW, ESP_LOGI, ESP_LOGD, ESP_LOGV
產生的日誌(如果透過 menuconfig 配置)
使用模式與ESP_LOGX()
相同
使用wifi_log()_x
函數透過 wifi 列印日誌
範例: wifi_log(TAG, "%s", "logger test");
如果在 menuconfig 中配置ESP_LOGE, ESP_LOGW, ESP_LOGI, ESP_LOGD, ESP_LOGV
日誌也會透過 wifi 傳送。
在void app_main()
中呼叫start_wifi_logger()
來啟動記錄器。可以呼叫日誌函數wifi_log_x() (x = e,w,i,d,v)
來記錄訊息,如果透過menuconfig
配置,則可以使用普通 ESP-IDF 日誌 API 函數(如ESP_LOGW
。
配置menuconfig
配置
Example Connection Configuration
設定 WiFi SSID 和密碼Component config
WiFi Logger configuration
Route logs generated by ESP_LOGX to the wifi logger
- 選擇是否將系統 API 寫入的日誌路由傳送到遠端記錄器Network Protocol (TCP/UDP/WEBSOCKET)
- 設定要使用的網路協定UDP/TCP Network Protocol
Server IP Address
- 設定將接收 ESP32 發送的日誌訊息的伺服器的 IP 位址Port
- 設定伺服器的連接埠WEBSOCKET Network Protocol
Websocket Server URI
- 設定要傳送日誌的 Websocket 伺服器的 URI在Linux機器上執行ifconfig
可以找到伺服器的IP位址
idf.py menuconfig
Example Connection Configuration
WiFi SSID
- 設定要連接的 WiFi SSIDWiFi Password
- 設定 WiFi 密碼Component config
WiFi Logger configuration
Network Protocol (TCP/UDP/WEBSOCKET)
- 設定要使用的網路協定Route logs generated by ESP_LOGX to the wifi logger
- 選擇是否將系統 API 寫入的日誌路由傳送到遠端記錄器UDP/TCP Network Protocol
Server IP Address
- 設定將接收 ESP32 發送的日誌訊息的伺服器的 IP 位址Port
- 設定伺服器的連接埠WEBSOCKET Network Protocol
Websocket Server URI
- 設定要傳送日誌的 Websocket 伺服器的 URIQueue Size
-進階配置,變更需要您自擔風險設定用於將日誌訊息傳遞到記錄器任務的 freeRTOS 佇列大小。logger buffer size
-進階配置,變更需要您自擔風險設定用於產生 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
}
}