Download presentation
Presentation is loading. Please wait.
Published byLeona Sims Modified over 6 years ago
1
2014 IEEE International Conference on Consumer Electronics – Taiwan
Special Sessions: Intelligent Devices and Systems for Real-life Applications An Arduino-based Indoor Positioning System (IPS) using Visible Light Communication and Ultrasound Presented by Lih Chieh Png (方立杰), Research Associate School of Electrical and Electronic Engineering Date: 28 May 2014 (WED) #
2
Contents Objectives Abstract Introduction Concept Hardware Design
Software Design Operation (Video) Conclusion Improvements
3
Objectives The project aims at investigating the circuits and systems for visible light communication (VLC) in indoor positioning systems (IPS). A project module for 2nd year undergraduates. The students are required to build a usable IPS prototype using the most basic microcontrollers and available electronic components.
4
Abstract A mobile, versatile outdoor and indoor position detection prototype. The transmitter system consists of four LED shields each attached to an Arduino Uno which is programmed to transmit the global position relevant to the indoor position of the LED lamp. When a person is outdoors, the GPS module receives global position from the satellite. When a person is indoors, his or her global position will be given by the LEDs and ultrasound sensors. The location data can be transmitted via GSM to a monitoring system or to an individual smartphone. This system is very useful in elderly care service.
7
Introduction 2010 – Demonstration of VLC with the indoor global positioning system (GPS), Japan. RF (radio frequency)-based Positioning (Radianse) US (ultrasound)-based Positioning (Norway) Combined RF and US-based Positioning (CRICKET, MIT) Z. Ghassemlooy, W. Popoola, and S. Rajbhandari, "Optical Wireless Communications: System and Channel Modelling with MATLAB", Chapter 9, CRC Press, Taylor & Francis Group, 2013.
8
About IPS “Indoor navigation is very, very tricky......”
“The fact is, what industry selects is important. Today, Wi-Fi localization is the most popular.” “Indoor geolocation doesn't yet have a good solution, including ultrawideband.” “Nobody knows the solution.” “People are waiting for the holy grail.” “Indoor geolocation is a multidisciplinary thing.” -Kaveh Pahlavan, Worcester Polytechnic Institute, Center for Wireless Information Network Studies.
9
LED Application for Indoor Positioning
A GPS receiver must be able to receive signals from at least 4 satellites. This is impossible inside buildings or underground. LEDs are so efficient and reliable that conventional lighting is expected to be replaced by these solid-state illuminating devices in a decade. LED indoor positioning is part of the visible light communication (VLC) family.
10
Localization Technologies in Use
Skyhook Wireless (Wi-Fi, 3-10 m, can mis-identify, may need more access points strategically placed to be more accurate) Google’s WiGLE (Wi-Fi, broadcast from access points) Q-Track (phase diff. btw electrical and magnetic field, 15 cm, power hungry) Deca-wave (UWB) Wifarer (Wi-Fi, Bluetooth) IndoorAtlas (magnetometer) WifiSLAM (Stanford, bought over by Apple, Wi-Fi with pressure sensor) Estimote (Bluetooth)
11
VLC-US Positioning Method 1
12
VLC-US Positioning Method 2
13
Test Setup
14
Components and Devices
15
Initial Stage
16
Final Stage 12V Battery Pack Ultrasonic sensor (Y axis) GPS Module
VLC circuit Arduino Uno Ultrasonic sensor (X axis) LCD (IPS) 9V Battery (Xbee) Arduino Mega with GSM shield Final Stage Xbee RF Send SMS Light intensity indicator LCD (GPS) 12V Battery Pack
17
You need another Xbee on your PC.
19
Outdoor (GPS)
20
Outdoor Operation
21
Indoor (VLC+US)
22
Indoor Operation
23
Codes Download
24
Arduino Uno: TX #include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); void setup() { Serial.begin(38400); mySerial.begin(38400); } void loop() double value1 = ; double value2 = ; mySerial.print('H'); mySerial.print(","); mySerial.print(value1,DEC); mySerial.print(value2,DEC); mySerial.println(); delay(5);
25
Arduino Uno: RX unsigned long start = millis();
while (start > millis()) { if (vlcSerial.available() > 0) { message = vlcSerial.readStringUntil(LF); lon = message.substring(16,26); lat = message.substring(3,11); lon.toCharArray(charBufX, 11); lat.toCharArray(charBufY, 9); vlc_X = atof(charBufX); vlc_Y = atof(charBufY); if (lat.startsWith("1.34")){ lcd.setCursor(0, 0); storedY = vlc_Y; float totY = storedY-gpssY; lcd.print(totY,8); vlcSerial.print(totY,8); } vlcSerial.print('.'); if (lon.startsWith("103.68")){ lcd.setCursor(0, 1); storedX = vlc_X; float totX = storedX+gpssX; lcd.print(totX,8); vlcSerial.print(totX,8); vlcSerial.println(); vlcSerial.print('+'); Arduino Uno: RX
26
Arduino Mega: RX Send GSM void loop() { if (Serial1.read()=='+') {
String message; buttonState = digitalRead(buttonPin); if(Serial1.available() > 0) { message = Serial1.readStringUntil(LF); storedIps = message; if(buttonState == HIGH) { sms.beginSMS(remoteNum); sms.print("IPS:"); sms.print(storedIps); sms.print("GPS:"); sms.print(storedlat,6); sms.print(storedlon,6); sms.endSMS(); lcd.setCursor(0, 0); lcd.print("Location Sent."); delay(2000); lcd.clear(); } if (Serial1.read()=='+') { unsigned long start = millis(); while (start > millis()) { if (Serial2.available() > 0) { char a = Serial2.read(); if(gps.encode(a)) { gps.f_get_position(&latitude, &longitude); lcd.clear(); lcd.setCursor(0,0); lcd.print("Y:"); lcd.print(latitude,6); Serial.print(latitude,6); lcd.setCursor(0,1); lcd.print("X:"); lcd.print(longitude,6); Serial.print(longitude,6); storedlat = latitude; storedlon = longitude; } Arduino Mega: RX Send GSM
27
Conclusion The system works well under present experimental conditions. It would be very useful if we can integrate this technology into future LED illumination systems (at least 12V operation) and Android phones. In less than ten years, we should be able to see a mature network of position-emitting white LEDs that will be applicable in eldercare homes, hospitals, and open-concept large offices.
28
Or you can use an Arduino
Improvement 1: High-Current Transmitter Or you can use an Arduino
29
Further Work – Android (under development)
30
Various Interfaces between Your VLC Circuits and Your Android Smartphones
FT311 USBDroid USB Host Shield
31
Useful Links for Android Developers (if you are interested in IPS)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.