ตัวบันทึก WiFi ESP32 - บันทึกข้อความผ่าน WiFi โดยใช้ TCP, UDP หรือ Websockets
แอพตัวอย่าง:
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");
ESP_LOGE, ESP_LOGW, ESP_LOGI, ESP_LOGD, ESP_LOGV
จะถูกส่งผ่าน wifi หากกำหนดค่าใน menuconfig
โทร start_wifi_logger()
ใน void app_main()
เพื่อเริ่มตัวบันทึก สามารถเรียกใช้ฟังก์ชันการบันทึก wifi_log_x() (x = e,w,i,d,v)
เพื่อบันทึกข้อความ หรือฟังก์ชัน API การบันทึก ESP-IDF ปกติ เช่น ESP_LOGW
สามารถใช้ได้หากกำหนดค่าผ่าน menuconfig
กำหนดค่า 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
- ตั้งค่าที่อยู่ IP ของเซิร์ฟเวอร์ซึ่งจะได้รับข้อความบันทึกที่ส่งโดย ESP32Port
- ตั้งค่าพอร์ตของเซิร์ฟเวอร์WEBSOCKET Network Protocol
Websocket Server URI
- ตั้งค่า URI ของเซิร์ฟเวอร์ Websocket ที่จะส่งบันทึก สามารถตรวจสอบที่อยู่ IP ของเซิร์ฟเวอร์ได้ด้วยการรัน ifconfig
บนเครื่อง linux
idf.py menuconfig
Example Connection Configuration
WiFi SSID
- ตั้งค่า WiFi SSID เพื่อเชื่อมต่อWiFi 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
- ตั้งค่าที่อยู่ IP ของเซิร์ฟเวอร์ซึ่งจะได้รับข้อความบันทึกที่ส่งโดย ESP32Port
- ตั้งค่าพอร์ตของเซิร์ฟเวอร์WEBSOCKET Network Protocol
Websocket Server URI
- ตั้งค่า URI ของเซิร์ฟเวอร์ Websocket ที่จะส่งบันทึกQueue Size
- การกำหนดค่าขั้นสูง คุณต้องยอมรับความเสี่ยงในการเปลี่ยนแปลง ตั้งค่าขนาดคิว RTOS ฟรีที่ใช้ในการส่งข้อความบันทึกไปยังงานบันทึก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
}
}