The Intelligent Management System (IMS) is an innovative framework that seamlessly manages handovers in a hybrid system of Visible Light Communication (VLC) and WiFi. This repository provides comprehensive information to help you recreate our testbed.
A demo of our IMS in action can be found on YouTube: IMS Demo
Our testbed is built on the OpenVLC platform and uses the WiFi adapter TP-link TL-WN722N v2. The topology of the testbed is depicted below:
To create the VLC channel, please follow the instructions provided on the OpenVLC Repository.
For the WiFi channel, we have tested with different USB adapters. However, we encountered some issues with the TL-WN722N ver3 when integrating it into the testbed. If you have the same setup, you can use the following link to install the driver and test if the WLAN is working correctly in your system: TL-WN722N V2 Driver
Here are the main instructions:
- Install dependencies and change directory to /usr/src:
sudo apt-get install git dkms git make build-essential
cd /usr/src- Clone the repository:
sudo git clone https://github.com/abhijeet2096/TL-WN722N-V2- Add a symbolic link for dkms to know where the source is:
sudo dkms add ./TL-WN722N-V2- Build the source:
sudo dkms build -m 8188eu -v 1.2- Install the built drivers:
sudo dkms install -m 8188eu -v 1.2- Modprobe it:
sudo modprobe 8188eu- Reboot the system:
sudo rebootActivating the monitor mode can provide more control over the WiFi network.
The Intelligent Management System (IMS) serves as the central controller, providing instructions to each OpenVLC in the network. Built on the Fabric framework, IMS can oversee and manage all activities of all nodes within the network.
Before running the demo, certain adjustments are necessary to ensure the Central Control Unit can gather information about the VLC and WiFi channels. This allows the controller to make informed decisions based on the conditions of both networks.
-
File Transfer: After completing all the WiFi-related setup, transfer the necessary files to both BBB-Tx (transmitter) and BBB-Rx (receiver). This will enable the IMS to operate effectively across both networks. Ensure that the file organization matches that of this GitHub repository for proper functionality. Copy the
BBB_Tx_Full_RepoandBBB_Rx_Full_Repofolders toBBB_TxandBBB_Rxrespectively. -
Directory Setup: If you change the directory, you might need to adjust the setup directory in the
fabfile.pyfile as well to make the IMS work. -
Testbed Setup: Modify the setup in
fabfile.pyto fit your testbed setup. Instructions are provided within the file. -
Configuration File: Copy the
hostapd.conffile from theControlUnitfolder to the/etc/hostapd/directory in BBB-Tx.
Please refer to the detailed instructions provided in the repository to configure your IMS setup properly.
Navigate to the "ControlUnit" folder and open a terminal. Then, follow the instructions below to establish a WiFi and VLC network:
fab vlc1 setup_wifi_ap
fab vlc1 setup_vlc_txfab vlc2 setup_wifi_sta
fab vlc2 setup_vlc_rxThese commands will create a virtual interface in BBB, allowing for easier routing and traffic modifications, and enabling the devices to act as independent network connections.
sudo ip link add eth10 type dummy
sudo ifconfig eth10 hw ether 00:22:22:ff:ff:ff
sudo ip addr add 192.168.10.1/24 brd + dev eth10 label eth10:0sudo ip link add eth10 type dummy
sudo ifconfig eth10 hw ether 00:22:22:ff:ff:f0
sudo ip addr add 192.168.10.2/24 brd + dev eth10 label eth10:0Now you can create iperf traffic for testing with any experiment you're conducting by SSH through each BBB:
iperf -c 192.168.10.2 -u -b 1000M -l 800 -p 10001 -t 100000iperf -u -l 800 -s -i3 -B 192.168.10.2 -p 10001fab icontrol_demoNow you can test how the handover work in your hybrid system.
Use the following commands to force a handover from the controller to a different link (either VLC or WiFi channel):
fab vlc1 wifi_linkfab vlc1 vlc_linkTo retrieve the RSSI value, use the following command:
sudo ./prubgb > filename.raw # Get the sample outYou can then use the provided Python script to visualize the RSSI output results.
You can manually set up the system based on our code by referring to our fabfile controller or the manual_IMS.txt file located inside the ControlUnit folder.
To read information from the WiFi channel, use the following command:
fab vlc2 wchannelTo start the iperf server, use the following commands:
iperf -u -s -B 10.0.0.16 -p 10002
fab vlc1 iwifiTo delete all log files that are older than two days in BBB, use the following command:
find /var/log -mindepth 1 -mtime +2 -deleteReference for this work:
If you encounter any issues while using our system or have any suggestions for improvements, we encourage you to report them in the Issues section of this repository.
We appreciate your help in improving our project. Your feedback is invaluable to us!
We'd like to thank everyone who has contributed to the these work!
We gratefully acknowledge support from:





