## 5 System Model and Experimental Setup  
This section presents the technical details of the test bed design, such as the hardware specifications, the environment, and the architecture of the test bed. The test bed comprises Thread nodes forming a wireless mesh network that can be remotely controlled and monitored over an Ethernet. The Thread sensor nodes are developed using custom-built hardware devices that consist of a Raspberry Pi (RPi) 4 model B as the main processing unit, and a Nordic semiconductor nRF52840 dongle as an IEEE 802.15.4 radio transceiver. The RPi functions as a router or a Thread device while the nRF52840 dongle is responsible for data transmission in the network. In addition to Thread, this dongle has support \begin{table}
\begin{tabular}{c c c c c} \hline \hline
**Specification** & **Wi-Fi** & **Zigbee** & **Bluetooth** & **Thread** \\ \hline IEEE standard & 802.11 & 802.15.4 & 802.15.1 & 802.15.4 \\ \hline Power consumption & High & Low & Low & Low \\ \hline Frequency band & 2.4 GHz/5 GHz & 2.4 GHz, 868 MHz, 915 MHz, & 2.4 GHz & 2.4 GHz \\ \hline Coverage & Normally 10–40 m & Normally 10–100 m & Normally 10–100 m & Normally 10–30 m \\ \hline Bandwidth & 1 Gbps & 250 kbps & 1 Mbps & 250 kbps \\ \hline IP support & Yes & No & No & yes \\ \hline Cloud integration & Router & Gateway & Gateway & Border router \\ \hline Network topology & Star & Mesh & Star/Mesh & Mesh \\ \hline Modulation & OFDM & O-QPSK & GPSK & O-QPSK \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Comparison between various communication protocols used for short range. for Bluetooth and Zigbee [32]. A Windows-based application named \"nRF Connect for Desktop\" can be used to configure the dongle by flashing a binary hex file. The Thread stack is fully implemented on our testbed. The dongle provides the PHY and MAC layers, while the host device is a RPi having Raspbian OS, providing the rest of the layers. The 6 LoWPAN runs over the RPi, and it handles IPv6 packet fragmentation between the layers. Power banks are used to power the Thread devices, as depicted in Figure 3. Google Nest's OpenThread is used for implementation. OpenThread is an open-source implementation of the Thread protocol that offers all Thread network functionalities and has Git repository access [33]. OpenThread provides a command line interface (CLI) to configure the individual nodes and the network. The RPi was installed with Raspbian Operating System while OpenThread repositories and OpenThread border router (OTBR) settings were installed from Github [34]. To make the Thread device functional, we need to flash the Nordic dongle, for which relevant OpenThread binaries are required to be generated through the OpenThread repositories. After installing OTBR and flashing the dongle, we verify the services and configure the RPi through CLI commands to build the Thread network. When the first node is configured, it will initialize itself as the leader and start creating the Thread network. The subsequent device will follow the same steps and join the existing Thread network. Once the network is formed, these nodes can communicate with each other using ping and UDP. The test bed was set up in an office environment with various physical obstacles such as concrete walls, furniture, and human occupancy. The office area also had other wireless communication sources, such as WLAN access points and other Bluetooth devices, in the background which makes the testbed more realistic. The Thread network had a maximum capacity of 32 active routers, and router-eligible end devices (REEDs) could be promoted to routers if the network had fewer than 32 routers. The role of REEDs can be adjusted in the network according to the requirements. They can become child nodes and delegate the routing tasks to their parent nodes. We evaluated the network performance by considering three different topologies.