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 reboot
Activating 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_Repo
andBBB_Rx_Full_Repo
folders toBBB_Tx
andBBB_Rx
respectively. -
Directory Setup: If you change the directory, you might need to adjust the setup directory in the
fabfile.py
file as well to make the IMS work. -
Testbed Setup: Modify the setup in
fabfile.py
to fit your testbed setup. Instructions are provided within the file. -
Configuration File: Copy the
hostapd.conf
file from theControlUnit
folder 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_tx
fab vlc2 setup_wifi_sta
fab vlc2 setup_vlc_rx
These 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:0
sudo 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:0
Now 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 100000
iperf -u -l 800 -s -i3 -B 192.168.10.2 -p 10001
fab icontrol_demo
Now 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_link
fab vlc1 vlc_link
To retrieve the RSSI value, use the following command:
sudo ./prubgb > filename.raw # Get the sample out
You 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 wchannel
To start the iperf server, use the following commands:
iperf -u -s -B 10.0.0.16 -p 10002
fab vlc1 iwifi
To delete all log files that are older than two days in BBB, use the following command:
find /var/log -mindepth 1 -mtime +2 -delete
Reference 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: