EdgeSec-Benchmark: ESP32 AES-GCM Telemetry — Per-Message Execution Time, Firmware, Gateway and Analysis Pipeline
收藏资源简介:
Telemetry, client serial logs, node firmware, gateway subscriber and analysis pipeline from a three-day testbed campaign measuring per-message AES-128-GCM execution time on an edge IoT node: an ESP32-WROOM-32 (Xtensa LX6 @ 240 MHz) publishing DHT22 readings every 2 s over MQTT v3.1.1 (QoS 0) to a Raspberry Pi 5 gateway. Twelve sessions across four physical conditions: Baseline (line-of-sight), Congestion (channel saturation by bulk transfer; labeled Noise in the files), Distance (signal attenuation) and Stress (power cycling). 30,953 messages in the raw logs; 30,631 in the processed files, which drop the 322 sent before the node's clock had synchronised after a boot. EdgeSec_Experiments/ ├── 01_datasets/ 12 raw server CSVs, 3 Stress UART logs, 4 processed CSVs, README ├── 02_firmware/ ESP32 node firmware (Arduino C++ / mbedTLS) ├── 03_analysis/ edgesec_analysis.py: raw CSVs to statistics, tables and figures ├── 04_results/ pipeline output: macros.json, result tables, figures └── 05_gateway/ MQTT subscriber, broker configuration, replay check Reproduce. python 03_analysis/edgesec_analysis.py, run from EdgeSec_Experiments/, regenerates every derived value, result table and figure in 04_results/ from the raw CSVs. Python 3.10+ with pandas, numpy, scipy and matplotlib; nothing outside the folder is needed. The tests are seeded, so repeated runs give identical output. python 05_gateway/verify_gateway.py replays all 30,953 logged messages through the subscriber and regenerates the twelve raw CSV files byte for byte. Column definitions and the notes needed to use the data correctly, including timestamp time zones and scenario labels, are in 01_datasets/README.md.



