## 2 System Architecture  
The system under consideration is a system designed to automatically collect, transfer, and visualize data over a 5G network. The purpose of the measurements is to monitor the atmospheric conditions of a secluded area. It is implemented in the following layers: the measurement layer, the data collection layer, and the data storage and visualization layer (Figure 1). The solution for implementing our experiment was guided by three factors: cost efficiency, development flexibility, and modularity. ESP32 is a very powerful microcontroller with native BLE support and ultra-low power consumption, making it ideal for our experiment. On the other hand, Raspberry Pi is a Linux environment ideal for easy code development, debugging, integration, and updates with cloud services. All the above are factors that provide easy system maintenance and scalability, although these components are not ideal for power-critical environments, which is the novelty of our experiment. The measurement and data collection layers are deployed to a remote location. This part of the whole system consists of two primary components: an ESP32 microcontroller with a connected sensor, and a Raspberry Pi acting as a Bluetooth Low Energy (BLE) server. These components communicate using Bluetooth Low Energy (BLE), which is a power-efficient wireless communication protocol widely used for IoT (Internet of Things) devices. Figure 1: The system architecture block diagram. The measurement layer is the device acting on the field to conduct the measurements, organize the measured values, and transmit them. The main device of this layer is an ESP32 connected with the needed sensors (Figure 2). It is a versatile microcontroller with built-in BLE capabilities, making it ideal for use in IoT applications where low-power wireless communication is essential. In the system, the ESP32 is connected to a sensor that gathers data (for example, temperature, humidity, or motion) (Figure 3). The ESP32 is configured to act as a BLE client, which means that it initiates communication with the BLE server (Raspberry Pi) to send the sensor data. Data collected from sensors during a specified interval are structured into a single string for transmission to the next processing layer. Each sensor reading is prefixed with a distinctive letter or phrase to indicate the type of measurement. For instance, if the system captures temperature and humidity values, the resulting string could be organized as T34H46, where T represents temperature and H represents humidity, followed by their respective values. The data collection layer is subsequently responsible for decoding this string format, ensuring accurate interpretation of the sensor readings. The Raspberry Pi (Figure 4) serves as a server in the data collection layer, decoding the data string after receiving it from the ESP32. As a BLE server, the Raspberry Pi broadcasts its location and awaits connections from BLE clients, like the ESP32. In this configuration, the ESP32 communicates with one or more Generic Attribute Profile (GATT) [33] services hosted by the Raspberry Pi. The structure of the data being transferred is specified by these GATT services. After waiting for the ESP32 to establish a connection, the Raspberry Pi takes in incoming data. After connecting, the ESP32 can transmit sensor data as BLE characteristics, which can then be processed further for real-time applications, such as data storage, or stored locally on the Raspberry Pi. Figure 3: DHT11 temperature and humidity sensor. Figure 2: ESP32 development board. Communication between the measurement layer and the data collection layer is facilitated via the BLE protocol. The BLE protocol used for communication is specifically designed for low-power, short-range applications. It is ideal for devices like the ESP32 that are often battery-powered and need to transmit small amounts of data intermittently. The BLE connection is initiated by the ESP32 (the client), which scans for the Raspberry Pi's BLE advertisement (the server).