DATA TRANSMISSION IN THE FORM OF LIGHT (LIFI COMMUNICATION) USING ARDUINO.

1 INTRODUCTION

1.1Current Situation

We now live in a world that is infinitely connected through a multitude of invisible, networked pathways. They stretch and travel across houses, towns, countries and Continents.

Almost exponentially the world has developed and embraced technology that now allows us to carry super-advanced, micro-computers in our pockets. The majority of these devices are connected wirelessly to internet service providers, who in turn connect to the World Wide Web. With a swipe of our finger we can find out the weather at that exact moment in Norway, Finland, London and Tokyo.

This ‘wireless’ communication is carried out across the Radio Frequency (RF) band

(ACMA, 2013) and limited by blocks of frequencies, each of a finite bandwidth. There will be a point in time when all of the available bands are all allocated, meaning the consumer blocks are clogged and causing ineffective and disrupted communication. Although a ‘First World Problem’ this will have a negative impact on society, with deeper exclusivity creeping into signal allocation and wireless communications.

A supplementary method of communication needs to be developed to combat the unavoidable RF band saturation. There is such a method and it utilizes a relatively untapped source of waves, with an extremely large bandwidth. This method uses the visible light spectrum band, which is shown(not to scale) in Figure 1 below.

Figure 1 – Radio Frequency vs. Visible Light Frequency.

It can be seen that the available electromagnetic spectrum of RF and Visible Light are disproportionately assigned in current communication methods. Not only is there larger space to grow into, it is ‘greener’, the band cannot be regulated, leased or saturated, it does not create electromagnetic interference with other devices and modulation of data can occur at frequencies that the human eye cannot detect (Stefan& Haas 2014). There is even research underway by Rajagpol et al. (2012) where data streaming is being conducted at light levels such that the light appears to be off according to the human eye. This could account for daytime or purposefully dark environments where people may use their devices.

With such a relatively new, green technology, the bounds are at the outer limits of current electrical equipment, much like Wi-Fi was when it was emerging. The applications appear endless, ranging from vehicle to vehicle communication, line of sight secure data networks, underwater communication (Rani et al. 2012) and all at communication speeds (>3GB/s) currently not accessible to everyday society(Stefan & Haas 2014).

1.2 Project Aim

The aim of this project is to produce VLC (Visible light communication) technology to send data to a related device across free space.

1.3 Project Scope

The scope of the project is to build and test system that would modulate Light Emitting Diodes (LED) such that the quality of information was preserved across free space and in turn received, then displayed on a suitable device.

The scope of this project did not include;

 Bi-directional Li-Fi communication between the devices.

 Integration with Wi-Fi and internet services.

 Configuration of the video to interface with a mobile or portable device.

1.4 Project Features

The aim of this project is to produce VLC (Visible light communication) technology to send information to a related device across free space.

The features of the Project include:

  • Transmission of Audio data.
  • Controlling LED by c programming.
  • Transmission of voice to related devices.

Some features can be include in future:

  • Bi-directional LiFi communication system.
  • Transferring Image using LiFi system.
  • Vehicle to Vehicle communication system.

1.5 Objectives  

In order to arrive at the final aim, there were a number of key objectives to satisfy during the project.

 These included:

  1. Undertake a literature review on visible light communication, modulation  And signal conditioning.
  2. Undertake a basic requirements analysis
  3. Identify suitable components for the system implementation.
  4. Investigate improved modulation techniques for audio transmission. Transmit basic audio.
  5. Identify future research direction.

1.5 System Requirement – Hardware and Software Platforms

1.51 Hardware Requirements

  • Raspberry pi or any other microcontroller 3 Model B
  • Resistor.
  • LED.
  • Breadboard.
  • Jumper wires.
  • Photodiode or Solar panel.
  • Speaker.
  • Audio Jack.

1.52 Software Requirements

  • Sketch.
  • Visual Studio.

2 LITERATURE REVIEW

2.1 Visible Light Communication

This literature review covers the published research relating to audio or data transfer via VLC (Light Fidelity), in particular utilizing Raspberry pi or any other microcontroller or similar low-cost, Consumer accessible microprocessor modules. VLC is a field of research that has recently taken on greater importance within our lives. Take for example, the industrial pursuit for releasing to the public, society’s first truly operational ‘driverless vehicle’. The foundation of this technological product is built on the foundation of VLC (coupled with radar and machine vision). The concept of transmitting data via light waves is evolving into a subject that can yield solutions across our lives, including RF band congestion and quenching the global thirst for faster and more complex data transmission.

While Dr Harald Hass (professor of LIFI) demonstrated video data transmission during his TEDGlobal talk Wireless Data from Every Light Bulb (2011), the technological complexities involved in that demonstration were out of reach of anyone other than PhD level academics.

Dr Haas is by far the leading worldwide exponent in the field and outside of his academic research at the University of Edinburgh, he has started his own company called pureLiFi . This company takes the scientific advances they test in the laboratory and turn them into consumer orientated modules. At present they have a 10Mbps half-duplex system (Li-Flame) that works at a distance of up to 3m . Although this system focuses on bi-directional internet access, any development of this platform is limited to commercial partnerships with the parent company or through PhD pathways at the university. The Li-Flame system also requires additional roof modules to be mounted next to the LED lights and preclude it from being integrated into many publicly accessible applications.

This is largely due to the vandalism exponent and the ‘irregular’ intrusion into a ‘headspace’ envelope. For these reasons a recessed or concealed system is mandatory for commercial acceptance. Domestic applications may also gravitate to a more streamlined aesthetic such that there isn’t a multitude of ‘modules’ hanging down from the ceiling throughout the house.

2.2 Arduino 

Arduino is an open source platform based on easy-to-use Hardware and Software. Arduino Boards are able to reads inputs. In 2012, Uhan & Akbas discussed ‘HD video transfer to a projection device’ using Beagle bone boards and Panda Board modules. Their method of transmission was wireless rather than using VLC, but they concluded that Raspberry pi or any other microcontroller could be a future research area. The 2015 conference paper submitted by Nikhade on sensor networks again utilized Raspberry pi or any other microcontroller but without VLC technology. Probably the closest work that has come to light is the 2015 BSc Thesis by Ambady, Bredes & Nquyen, which attempted to build on previous student research by transmitting audio using VLC and low-cost processor modules. They assessed a number of processors and decided to use an STM32 module over the Raspberry pi or any other microcontroller. They encountered problems with the Analogue to Digital Converter’s (ADC) and although they managed audio signal transfer, it wasn’t HD video. 

                                        Figure 2 – Arduino Nano.

Thanks to its simple and accessible user experience, Arduino has been used in thousands of different project and applications. The Arduino Software is easy-to-use for beginners, yet flexible enough for advance users. its runs on Mac, Windows and Linux. Teachers and student use it to build low cost scientific instrument, to prove Chemistry and Physics principles, or to get started with programming and robotics.

           Table     1     –     Comparison     of     Present     Market     Micro-Controller.

Brand    CPU CPU Speed  MemoryGPIO  Year
Arduino Uno R3AT mega 16U216MHz32KB flash14 pin 7-12V2016
Arduino M0 ProARM Cortex M048MHz256KB flash48 pin 3.3V/615V2015
Raspberry pi or any other microcontroller 3BARM Quad Cortex A531.2GHz1GB RAM40 pin 3.3V/5V2016
Raspberry pi or any other microcontroller 2BARM Quad Cortex A7  900MHz1GB RAM   40 pin 3.3V/5V2015
Raspberry pi or any other microcontroller ZeroARM11 Core1GHz   512MB SDRAM  40 pin 3.3V/5V  2015
Beagle Bone Black CSitara Cortex A81GHz   512MB DRAM  46+46 3.3V2014

Arduino Nano Pinout contains 14 digital pins, 8 analog Pins, 2 Reset Pins & 6 Power Pins. Each of these Digital & Analog Pins are assigned with multiple functions but their main function is to be configured as input or output. They are acted as input pins when they are interfaced with sensors, but if you are driving some load then use them as output. Functions like pinMode() and digitalWrite()  are used to control the operations of digital pins while analogRead() is used to control analog pins. The analog pins come with a total resolution of 10bits which measure the value from zero to 5V.

                                            Figure 3 – Arduino Nano pins.

2.3 Transmitter

Aside from media handling and modulation, a fundamentally important aspect of Light Fidelity is the performance of the Light Emitting Diode (LED) transmitter. One aspect of LED development that has emerged in recent years is the micro, addressable LED. These are typically 3-4 separate elements, each of a similar material that has the color output determined by a varied digital signal sent to it.

Many of these are coming in LED strips in 10’s of meters long. They can be provided with a single clock signal and the data is passed from one LED to the next. Each LED can be separately addressed and provided with a color signal, with typically low voltage and current requirements. Longer chains can experience degradation of signal logic, but they can be split with multiple, synched controllers. What makes these attractive to consumers is the ease of use and the multitude of lightweight and impressive applications.

Many LED’s in this format are denoted by the size of the luminous element. These include the WS2812 which has a 5050 element and integrated controller chip and also the 3528 LED. The numbers represent the dimension of the LED, such as 3.5mm x 2.8mm for the 3528. The 3528 is commonly surface mounted to a strip at a rate of 60 per meter and have a low power demand ~5W at 12V. The 5050 LED strips are again typically at a rate of 60 per meter but have a higher demand (~15W at 24V) and a much higher lumens output.

                                 Figure 4 – AdaFruit DotStar LED.

2.3 Receiver

From an optical receiver perspective, there are typically two generic choices for the sensor; an Avalanche Photodiode or a PIN Photodiode. Kalevala et al. (2015) describe that the Avalanche has the better gain, but at a cost of shot noise in the photocurrent. PIN Photodiodes are better in high temperature, high saturation environments and are the general preference in VLC. Chung et al. (2015) proposed a filtered photodiode cluster arrangement to produce 3 separate channels (RGB) for a bidirectional system. While this may have a use for larger applications, unless bandwidth becomes a limiting factor, the complexity will preclude it from being explored further here. The receiver is probably the most complex aspect of the system and the most critical to get right.

Photodiodes can typically be connected in two different configurations; photovoltaic or photoconductive modes. Photovoltaic mode is where the diode is unbiased (without reference voltage) and the voltage produced is non-linear when compared to the amount of light on the sensor window. This method can be likened to the operation of solar cells when light produces a voltage but it also reduces the dynamic range of the diode. Photovoltaic mode is preferred when sensitive measurements are required, as there is a smaller signal offset and less noise induced in that area of the circuit and passed to the amplifier stage.

Given that the Raspberry pi or any other microcontroller power GPIO’s are either +3.3V or +5V (no negative swing), this will largely dictate the photodiode set-up and component selection.

 That is, a low power, low current diode that can operate suitably in photovoltaic mode. The amplifier stage will also need to perform within these bounds, in particular with a single supply.

Fujimoto and Mochizuki (2013) employed a photodiode and TIA configuration (OPA847) with another amplifier stage for very high speed bit streams. The same approach was utilized by Dimitrov and Haas for their high end bidirectional Li-Fi systems (2015). In Orozco’s 2014 Technical Article about optimizing precision photodiode circuit design, he outlines that when selecting an amplifier, the order of important considerations are input offset voltage (to be as low as practical), input leakage current (again as low as practical), circuit layout (to minimize external leakage) and noise management. He goes into reasonable detail on how to compromise and reduce many of the common problems with this type of receiver.

3 PROJECT METHODOLOGY

3.1 Overview

This project was purely one of research and experimental work. The steps generally followed a typical Project lifecycle model from the book “Introduction to IT project Management.”(Frank Parth).

 Project Initialization.

 Project Start Up.

 Project Production Phase.

 Project Execution.

3.2 Initialization

The Project Initialization Phase was a combination of producing a report, research into prototype specifics and formalization of the project scope and outcomes.

3.3 Start-Up

   The Project Start-Up phase took the outputs from the Initialization Phase and built on them to begin the physical work phase of the Project.

Outputs of the Start-Up Phase were;  

 understood how to drive the LED’s from a 3.3V Arduino output signal.                         All necessary software downloaded and installed.

 Purchased all test equipment, power supplies, components, devices, cables and

Frame work.

3.4 Production

The Production Phase marked the start of the actual building of the prototype.

The outputs of the Production Phase were;

  • Build and develop the LED driver circuit to deliver the required voltage to modulate the LED’s.
  • To completely construct all power supplies, equipment and components.

3.5 Execution

This phase contained the largest amount of work, frustration, technical demand, support and investigation.

The outputs of the Execution Phase were;

 A working Prototype that could send files across free space using Visible Light Communication technology.

 A final configuration (including software + code used) of the system.

4 PROTOTYPE DEVELOPMENT

This chapter describes in detail the steps that were taken to arrive at a working prototype. It covers all of the technical information, principles and operation related to the prototype.

4.1 Project System Diagram

The system can be broken down into two sub-systems; the Transmitter (TX) and the Receiver (RX).Each one is made up of smaller functions such as the LED electrical control circuit and board, the photodiode electrical control and board, the software in the TX etc.

The Figure below illustrates how the prototype is made up

                                            Figure 5– Prototype System Diagram.

4.2 Transmission Module

The transmission module has the function of receiving the signal for operation and Audio data from the Computer for Transmission.

4.2.1 Arduino Nano

   4.2.1.1 Why Arduino??

Arduino is an open source platform based on easy-to-use Hardware and Software. Arduino Boards are able to reads inputs. Thanks to its simple and accessible user experience, Arduino has been used in thousands of different project and applications. The Arduino Software is easy-to-use for beginners, yet flexible enough for advance users. its runs on Mac, Windows and Linux. Teachers and student use it to build low cost scientific instrument, to prove Chemistry and Physics principles, or to get started with programming and robotics.

     4.2.2 LED Circuit

       The LED circuit is the centerpiece of the project.

4.3 Receiver Module

The receiver module required more considered selection of components than the transmission module. This was due to the photodiode configuration.

4.3.1 Photon Receiver Circuit

Research into a suitable photon receiver for this application started early and the selection criteria included, low cost, high speed, +3.3V to +5V, used for optical circuits, low capacitance, low noise.

4.4 Prototype System

Until now we have talked about the transmission and receiver modules separately, but they are part of a system. Without each other, they are reasonably useless. Pictured below are the two modules, with the transmitter and the receiver.

                      Figure 6- Image of Light Audio Transmission Prototype.

4.4.1 GUI Interface

Pictured below is the GUI to transfer the signal from computer to microcontroller to perform the operation for which it is made.

                   Figure 7- Image of GUI to send signal from PC to Arduino.

5 RESULTS ANALYSIS

This section will cover the processes and testing outcomes encountered during the project. Note that many of the desired test results and activities were unable to be completed as resources weren’t available.

5.1 Transmission Module

This section looks at the testing and analytical decisions taken to build the transmission module.

5.1.1 Transmission Circuit (PCB)

A layout of the breadboard is shown in the figure below. Note that this was the final layout and configuration after power supply testing.

Data

               Figure 8- Lay out circuit of Transmission module (TX).

GND:

o All the round connection is made between Arduino and Data source.

                 •    DATA Signal :

o The Analog signal of audio data wire is connected with the negative terminal of LED.

Signal from PC:

o The serial communication is set between computer and Aurdino with 9600 baud rate.

5.1.2 Code:

              The programming Language used in this project is c/c#.

5.1.2.1 Code to turn LED on/off:

                The transmission section code is given below:

5.1.2.2 Code to control Arduino:

C# language is use to create user interface to control Arduino. The serial communication is established between pc and Arduino.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;
namespace Aurdino_trl
{
public partial class Form1 : Form
{
bool status = false;
public Form1()
{
InitializeComponent();
}
private void on_btn_Click(object sender, EventArgs e)
{
try
{
serialPort1.Open(); //open the serial port
serialPort1.WriteLine("A"); //pass string value from serial port
serialPort1.Close(); //close the serial port
}
catch(Exception ex){
MessageBox.Show(ex.Message);
}
}
private void off_btn_Click(object sender, EventArgs e)
{
try
{
serialPort1.Open(); //open serial port
serialPort1.WriteLine("B"); //pass string value from serial port
serialPort1.Close(); //close serial port
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void exit_btn_Click(object sender, EventArgs e)
{
serialPort1.Open(); //open serial port
serialPort1.WriteLine("B"); //pass string value from serial port
serialPort1.Close(); //close serial port
Application.Exit();//Application close.
}
private void Form1_Load(object sender, EventArgs e)
{
try
{
PortBox.Items.AddRange(System.IO.Ports.SerialPort.GetPortNames());//show
PortBox.SelectedIndex = 0; //Available
serialPort1.BaudRate = (9600); //serial port

24

private void Form1_Load(object sender, EventArgs e)
{
try
{
PortBox.Items.AddRange(System.IO.Ports.SerialPort.GetPortNames());//show
PortBox.SelectedIndex = 0; //Available
serialPort1.BaudRate = (9600); //serial port
serialPort1.ReadTimeout = (2000); //This features allows user to
//select the serial port of device
serialPort1.WriteTimeout = (2000); //and run the pplication
}
catch (Exception ex)
{
try
{
PortBox.Items.AddRange(System.IO.Ports.SerialPort.GetPortNames());//show
PortBox.SelectedIndex = 0; //Available
serialPort1.BaudRate = (9600); //serial port
serialPort1.ReadTimeout = (2000); //This features allows user to

//select the serial port of device
serialPort1.WriteTimeout = (2000);
}
catch
{
MessageBox.Show(ex.Message);
}
}
}
private void PortBox_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
serialPort1.PortName = PortBox.Text;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Enabled = false;
// MessageBox.Show("hello");
serialPort1.Open(); //open serial port
serialPort1.WriteLine("B"); //pass string value from serial port
serialPort1.Close(); //close serial port
// timer1.Stop();
}
serialPort1.Open(); //open serial port
serialPort1.WriteLine("A"); //pass string value from serial port
serialPort1.Close(); //close serial port
// timer1.Stop();
}
timer2.Enabled = true;
//timer1.Start();
status = false;
//timer1.Enabled = false;
// MessageBox.Show("hello");
serialPort1.Open(); //open serial port
serialPort1.WriteLine("A"); //pass string value from serial port
serialPort1.Close(); //close serial port

25

private void timer_btn_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
//timer1.Start();
status = false;
//timer1.Enabled = false;
// MessageBox.Show("hello");
serialPort1.Open(); //open serial port
serialPort1.WriteLine("A"); //pass string value from serial port
serialPort1.Close(); //close serial port
// timer1.Stop();
}
private void button2_btn_Click(object sender, EventArgs e)
{
timer2.Enabled = true;
//timer1.Start();
status = false;
//timer1.Enabled = false;
// MessageBox.Show("hello");
serialPort1.Open(); //open serial port
serialPort1.WriteLine("A"); //pass string value from serial port
serialPort1.Close(); //close serial port
// timer1.Stop();
}
private void timer2_Tick(object sender, EventArgs e)
{
timer2.Enabled = true;
//timer1.Start();
status = false;
//timer1.Enabled = false;
// MessageBox.Show("hello");
serialPort1.Open(); //open serial port
serialPort1.WriteLine("B"); //pass string value from serial port
serialPort1.Close(); //close serial port
// timer1.Stop();
}
}
}

26

5.2 Receiver Module  

This was the final layout and configuration after power supply testing of Receiver.

                        Figure 9- Lay out circuit of Receiver module (RX).

Photodiode:

o The photodiode converts the the photons carrying data into charge carry data.

Speaker:

o The speaker reads the charge carrying audio data and provides the output.

5.3 SIGNAL ANALYSIS

This portion include the signal analysis on both receiver and transmitter part.

During the measurement of the signal we have to face many difficulties due to lack of equipments to measure.

5.3.1 Transmitter section:

        We have tested the transmitter by transmitting 200HZ sound wave. The wave is display in scope meter. The transmitter section has transmitted the signal perfectly with varying amplitude. 

                      Figure 10- 200Hz sound wave sound transmitted through transmitter.

5.3.2 Receiver section:

We have successfully received the signal on receiver. The distance between transmitter and receiver is kept 15cm apart and tested we found that the amplitude and wave position is decreasing as the distance between transmitter and receiver increase.

       Figure 11- 200Hz sound wave sound received in receiver kept 15cm apart.

YOUTUBE LINK :

NOTE: THIS PROJECT IS DONE BY :

MR. Subesh Poudel, Lumbini ICT Campus

SUPERVISED BY :

MR. Sharad Kafle

Recommended For You

About the Author: admin

3 Comments

Leave a Reply

Your email address will not be published.