1. Introduction
The smartphone is packed with a high-performance application processor, various sensors as well as multiple communication modules. Based on the powerful capabilities of smartphones, diverse online-to-offline (O2O) services have emerged that provide customized goods and services to consumers.
Currently, O2O services are evolving to provide accurate location-based information for users. One accurate method for this is using BLE (Bluetooth Low Energy) beacons.
BLE initially was a separate specification but merged into the Bluetooth in 2010 (Bluetooth v4.0 + LE). BLE is optimized to consume as little energy as possible: a single coin cell battery powers a BLE beacon for up to two years. It is also very economical: one BLE beacon unit costs around USD 30, so the hardware requirement for adopting an O2O service at an offline location is affordable for most organizations. Most smartphones designed after 2010 have a Bluetooth module that can receive signals from BLE beacons. Since BLE reception has become very common for smartphones in recent years, the number of location-based services using BLE beacons has steadily increased.
As illustrated in Fig. 1, most location-based information services using BLE beacons send a push message to the user’s smartphone when the user is near a service spot. Tapping on the message launches a specific app that enables the user to perform predefined tasks.
Currently, only user location detection is possible via location-based services, but adding movement direction could enrich and enhance the user experience. For example, a hotel app could determine whether the user is entering or leaving the hotel and provide tour information or room/hotel information by identifying the direction of the user’s movement. In this paper, we propose a method that identifies the direction of user movement within a location-based services system using a pair of BLE beacons based on data analysis.
Fig. 1. Illustration of a BLE-specific location-based service.
The organization of this paper is as follows: Section 2 reviews existing general methods that determine movement direction and use BLE beacons; Section 3 presents a method that finds user movement direction using a pair of BLE beacons based on data analysis; and in Section 4 we demonstrate our implementation of this system and evaluate it by experimentation. Possible services that would benefit from the use of direction information are suggested in Section 5, and the paper concludes in Section 6 with suggestions for further research and related work.
2. Related Research
2.1 Current movement direction recognition method
A well-known example of a direction-based service is the automotive navigation system. On a navigation system, location-based information is tailored for the user depending on the direction of the user’s movement, such as upcoming objects or features ahead along the route like speed cameras or speed bumps. User location is provided by GPS signals, and the system determines the direction of movement by calculating the changes in user location.
In an indoor environment, GPS signals are not accessible, so this approach is not possible, triggering the need for different techniques to determine user locations indoors. In Olivetti Research Laboratory (currently AT&T Laboratories Cambridge), the location of a user carrying an infrared beacon called Active Badge was identified with the help of sensors installed indoors [11]. Cricket [14] uses ultrasound beacons to determine user location, while LANDMARC [12] installs active RFID tags indoors while the user carries an RFID reader. In RADAR [18], a signal strength map is generated based on radio frequency to determine user location. PlaceEngine [15], as an extension of RADAR, generated a fingerprint map from nearby WiFi signals to determine user location, and the MIT Media Laboratory has exploited geo-magnetism [13].
Some approaches capture the direction of movement directly without relying on user coordinates. Infrared beacons are installed at important points, and if a user directs a beacon sensor towards an emitter, the direction is recognized by the sensor and the user is guided for direction [16]. There is a marketing system that exploits signal strengths of WiFi APs for discovering user movement [17].
2.2 User location recognition method using BLE beacons
The BLE beacon is widely known as the ‘iBeacon’, a registered trademark of Apple Inc. With iBeacon, the smartphone can be alerted if the user approaches or leaves a specific spot, and estimates how close the user is to the iBeacon [1]. However, the estimated distance between the user and the iBeacon is not precise [10], hence using this data to calculate exact user coordinates is inappropriate.
The process of finding user location and providing services by using BLE beacons is as follows. A BLE beacon periodically transmits a signal that contains proximity UUID, Major ID, and Minor ID. When a smartphone receives a BLE beacon signal, the smartphone calculates the distance between the smartphone and the beacon using RSSI (received signal strength indicator) and categorizes the distance as either Far, Near, Immediate, or Unknown. It then passes the following data to an application (a service) with a matching proximity UUID: categorized distance, Major ID, and Minor ID. The application is then able to offer services to the user as determined based on the transmitted data [2][3].
The purpose of proximity UUID is to identify the location-based service. Major ID and minor ID are used for identifying regions hierarchically where beacons have been deployed. For example, major ID could specify the city of the service and minor ID could specify which shop the user is in. There are four proximity zones: immediate (up to a few centimeters), near (up to a few meters), far (more than a few meters), and unknown (hard to determine), as determined by the accuracy of proximity estimation based on RSSI. A service provider knows the coordinates of each beacon, so it is possible to find out an approximate location of the user from this.
Fig. 2. Mapped distance based on received signal strength from a BLE beacon [4]
3. Proposed Method for Detecting Movement Direction
This section illustrates the underlying idea behind how we estimated the direction of user movement using a pair of BLE beacons. Then we proceed to describe the implementation of this technique and provide a summary of experimental results.
3.1 Measure the difference in signal strength between two BLE beacons
As discussed above, BLE beacons are not useful in finding precise user coordinates, so these are not helpful in determining movement direction using a technique that relies on accurate coordinates. We formed a hypothesis that reflects the WiFi-based direction finding methods reviewed above: differentials in signal strengths would be applicable for use with BLE beacons.
The founding premise of this paper is based on the idea that when a user approaches a pair of beacons at different distances from afar, the RSSI of the closer beacon would appear stronger than the RSSI of the farther beacon (see Fig. 3).
Fig. 3. Detecting user movement direction with two BLE beacons
To experimentally verify this assumption, we used a pair of RECO iBeacons. Beacon #1 was placed 2.4 meters closer to the approaching user than Beacon #2. Ideally, the signal of BLE beacons is detectable as far as 70 meters away. However, in reality, the maximum range is typically 40 to 50 meters according to Estimote Inc., a major BLE beacon manufacturer (see Fig. 4)[7]. Considering range limitations, we had the user walk towards the beacon pair from 30 meters away while carrying an iPhone 5s. The RSSI levels indicated by the iPhone 5s are charted in Fig. 5. The x-axis and y-axis indicate time and signal levels for each RSSI. Beacon #1 and #2 are represented by the red and blue lines, respectively.
Fig. 4. Ideal BLE beacon signal range
Fig. 5. RSSI levels for two BLE beacons while user approached the beacon region
The chart in Fig. 5 has a pattern that conforms with our hypothesis depicted in Fig. 3. However, instantaneous RSSI values did not always coincide with our expectations, and determining the direction of user movement based only on RSSI instances might produce unreliable results. Even so, the overall assumption that signals from the beacon closer to the user have stronger RSSI values was valid. With this observation, we decided to make data sets by accumulate RSSI values to negate instantaneous errors or inconsistencies effectively, and then determine the direction of user movement by using average of each data set. We show detailed implementation of the method for determining the user movement direction based on data analysis in section 4.2.
3.2 Algorithm of detecting moving direction
To detect movement direction, a decision had to be made about when to start and stop/reset accumulating RSSI values. As the user walks towards a beacon, the user encounters a point when the beacon signal is strong enough to be discovered by the smartphone. Conversely, as the user walks away from the beacon, the beacon signal is too weak to be recognized. RSSI values start accumulating when the signal is discovered and these values expire when the signal is no longer recognized (see Fig. 6).
Fig. 6. BLE beacon signal accumulation and expiration
Fig. 7 illustrates how the direction of user movement is determined using RSSI values from two beacons while addressing signal accumulation and expiration. A pair of beacons are placed in an indoor environment and the RSSI values are accumulated for the beacon detected first, which we refer to as Beacon #1. When signals from the other beacon (Beacon #2) are discovered, the device verifies if both beacons are a pair specifically installed for determining movement direction. Upon verification, the accumulated RSSI data for Beacon #1 is deleted and RSSI values from both beacons start recording. Once the user reaches a predetermined distance, referred to in this paper as the decision distance (DD), the average accumulated RSSI values are computed. This calculation determines that the user is moving in the direction from the beacon with the higher value towards the other. The decision distance is discussed in the next section.
Fig. 7. Accepted RSSI value range for determining direction of movement
The overall algorithm is depicted in Fig. 8.
Fig. 8. Overall algorithm to determine the direction of user movement
4. Implementing a System for Detecting Movement Direction
In this section, we present our implementation of the proposed method and report experimental results.
4.1 BLE Beacon Calibration
The BLE beacon functions within the industrial, scientific, and medical (ISM) radio bands of 2.4GHz. The ISM bands are internationally reserved for the use of radio frequency energy that does not require a license to use [5]. Well-known examples include WiFi and Bluetooth devices. Signals from Bluetooth devices are attenuated when passing through a physical obstacle such as a wall or a door [8]. Up to 25% of Bluetooth packets could be lost due to interference with WiFi [6]. Therefore, we can easily conclude that BLE beacon placement and/or radio frequency conditions in the background affect BLE beacon signal reception at smartphones. To compensate for such factors, we modified the beacon configurations.
Our experimental setup is shown in Fig. 9. We calibrated the BLE beacons in this setup and for hardware, we chose Seeed BLE Shield with HM-11 for Arduino, paired with an iPhone 5s. We placed a pair of BLE beacons 2.4 meters apart with a digital signage between them. During calibration, we placed the smartphone 1.2m away from the digital signage. The signal strength of HM-11 is fixed at -8dB, but it has several available signal broadcast interval settings: 100ms, 318.75ms, 546.26ms, 852.5ms, etc. The iBeacon SDK from Apple returns the estimation accuracy of proximity zone, or RSSI (received signal strength indication), at a fixed interval of 1 second [9]. For each broadcasting interval for the BLE beacon, we measured the signal reported by the iBeacon SDK for 20 minutes (see Fig. 10).
Fig. 9. Environment setup for calibration
Fig. 10. Measured signal
In Fig. 10, the beacon to the left and right of the digital signage are shown in red and blue, respectively. The y-axis represents the signal level, indicating the distance between the smartphone and beacon, and the x-axis represents time in seconds. The chart shows that, as the time interval between beacon signals increases, more signals are missed by the smartphone. Surprisingly, a 100ms interval (the most frequently used setting) does not produce the best results. Although the distances between each beacon and the smartphone were identical at one point, the beacon on the left side was indicated as being closer than the beacon on the right side. In other words, the RSSI from the beacon on the left was measured to be stronger than the RSSI from the beacon on the right. In our experiment, a signal interval of 318.75ms produced the best results, with the most evenly distributed signal strength indicators and the fewest missing signals. Based on this observation, we chose an interval of 318.75ms for determining the direction of user movement in our experiments.
4.2 Implementing the System and Detecting Movement Direction based on Data Analysis
This section describes our experiment setup and results.
Fig. 11. The Decision Distance
Fig. 11 depicts the overall experiment configuration. We placed digital signage on the wall of a 2.5m-wide corridor and installed two HM-11 BLE modules 2.4m apart along the corridor with the digital signage in the middle. We had a user approach the digital signage from 30m away so that when the user reached a distance sufficiently close to the beacons, the direction of user movement could be determined.
Here, the decision distance refers to the travel distance that the user needs to reach before the smartphone can accurately determine movement direction. Once the user reaches the decision distance, the smartphone stops accumulating further RSSI data and starts calculating the average RSSI values to determine the direction of user movement.
The process of determining the threshold point which triggers the calculation of movement direction is as follows. The iBeacon SDK from Apple Inc. provides the ‘accuracy’ method, which estimates the distance between the user and the beacon, based on the received RSSI values. In our method, we use the ‘accuracy’ method to decide if the user has reached the decision distance (set at 3m in our experiment). We then asked the experiment participant to walk from left to right and right to left multiple times, and found that the accuracy result at 3m was 20. Accuracy was monitored for both beacons, and the experiment participant was deemed to have reached the decision distance if either of the beacons produced an accuracy output of 20.
To easily verify the determined direction of movement, the digital signage was programmed to display the output. We configured the smartphone to wirelessly transmit the estimated direction to a Raspberry Pi that was connected to the digital signage for display.
The BLE beacon SDK of the smartphone returns the RSSI value of every discovered beacon at one-second intervals. Determining the direction of user movement relies on the characteristics of the SDK. The RSSI values of each beacon are accumulated as described in the previous section, and once the user has reached the decision distance, data accumulation stops and the average of the collected RSSI is calculated. The user is thought to move in the direction from the beacon with the higher RSSI values to the other.
Fig. 12. Missing RSSI values
In our experiment, we discovered that some of the signals lacked RSSI. This may be attributable to environmental factors like weak beacon signals, physical obstacle, interference with WiFi or etc. If an RSSI value could not be verified, signals from neither beacon were used in order to maintain balanced average values.
Fig. 12 shows a set of RSSI values measured while moving towards the signage and missing values are not displayed in the bar chart. The x-axis and y-axis represent time in seconds and RSSI values, respectively, and signals from each beacon are coded ‘blue’ and ‘red.’ Among the signals from the ‘blue’ beacon, the first 7 samples and the 15th sample are missing; and among signals from the ‘red’ beacon, samples from the 3rd through 10th and the 14th are missing.
Among the available samples, we only analyze the signal pairs without any missing values: the 11th through 13th, and 16th to 23rd bars are used. Within this filtered set, the average RSSI values for the blue and red beacon signals were -85.82dB and -84.10dB, respectively. The average RSSI of the red beacon is greater, so when the user reached a decision distance at the 23rd sample, the user is thought to have moved in the direction from the red beacon to the blue beacon. In our experiment, we tested right-to-left and left-to-right directions 10 times each, and the data and results are shown in Tables 1 and 2.
Table 1. Participant moving from right to left
Table 2. Participant moving from left to right
5. Example of Utilizing Movement Direction
This section lists an example of location-based services using direction information from the proposed method. Fig. 13 and Table 3 describe the overall structure and each component of the exemplar service.
Fig. 13. Information services based on direction of user movement
Table 3. Components for the suggested service
Fig. 14 depicts a service scenario. When a guest enters a hotel, digital signage starts to display announcement-style information such as events held in the proximity while providing customized information on the guest’s smartphone such as room number. When the guest comes out of the hotel, the digital signage again could show tourist information around the area and show a personal schedule on the user’s smartphone.
Fig. 14. An exemplar service using direction of user movement
6. Conclusion
This paper presents a method to identify the direction of user movement using only two BLE beacons. Since the radio signals of BLE becons are really weak and affected easily by various environmental factors, so that it is difficult to use the signals directly for detecting user movement direction. Thus we propose to utilize data analysis on the signal data sets: to create data sets by accumulating each beacon’s signal every fixed interval and to calculate statistical value, i.e. average, of each data set for determining the direction of user movement. Also we show experimental results from the implementation of the proposed method. With the results, the feasibility of the proposed method is confirmed.
Additionally, we show an exemplar service that need the direction information of users. According to the service scenario, users can receive differentiated direction-based informations or services that are difficult to acquire without the proposed method.
O2O services will be expected to start utilizing direction information in the near future, then our proposed method can be used to enable such services. In our future work, methods to generate customized information from direction and personal data will be explored and implemented in real life space.
References
- Apple inc., "iOS: Understanding iBeacon," 2015. https://support.apple.com/en-us/HT202880
- Andy Cavallini, "iBeacon Bible 2.0," 2014. https://meetingofideas.files.wordpress.com/2014/06/ibeacon-bible-2-0.pdf
- "Android BLE Beacon Library," https://github.com/AltBeacon/android-beacon-library
- PassKit, "iBeacon Range," 2014.
- N. Golmie, "Interference in the 2.4GHz ISM Band: Challenges and Solutions," Networking for Pervasive Computing, NIST Special Publication, 500-259, pp 48-60, July 2005.
- N. Golmie and F. Mouveaux, "Interference in the 2.4 GHz ISM Band: Impact on the Bluetooth Access Control Performance," in Proc. of IEEE ICC 2001, pp. 2540-2545, June 2001.
- Estimote Inc., "Beacon Tech Overview,". http://developer.estimote.com
- Apple Inc., "Getting Started with iBeacon,". https://developer.apple.com/ibeacon/Getting-Started-with-iBeacon.pdf
- Stackoverflow, "How to set time for scanning interval for iBeacon on iOS?," http://stackoverflow.com/questions/29694841/how-to-set-time-for-scanning-interval-for-ibeacon-on-ios
- Apple Inc., Developer API Reference "accuracy - CLBeacon,". https://developer.apple.com/reference/corelocation/clbeacon/1621551-accuracy
- Roy Want, Andy Hoper, Veronica Falcao and Jonathan Gibbons, "The Active Badge Location System," ACM Transactions on Information Systems (TOIS) TOIS Homepage archive, Volume 10, Issue 1, pp. 91-102, January 1992. https://doi.org/10.1145/128756.128759
- Lionel M. NI and Yunhao Liu, Yiu Cho Lau and Abhishek P. Patil, "LANDMARC: Indoor Location Sensing Using Active RFID," Wireless Networks, Volume 10, Issue 6, pp 701-710, November 2004. https://doi.org/10.1023/B:WINE.0000044029.06344.dd
- Jaewoo Chung, Matt Donahoe, Chris Schmandt, Ig-Jae Kim, Pedram Razavai and Micaela Wiseman, "Indoor Location Sensing Using Geo-Magnetism," in Proc. of the 9th international conference on Mobile systems, applications, and services, pp 141-154, 2011.
- Nissanka B. Priyantha, Anit Chakaraborty and Hari Balakrishnan, "The Cricket Location-Support System," in Proc. of the 6th annual international conference on Mobile computing and networking, pp 32-43, August 2000.
- Jun Rekimoto, Takashi Miyaki, and Takaaki Ishizawa, "LifeTag: WiFi-based Continuous Location Logging for Life Pattern Analysis," in Proc. of Location- and Context-Awareness, Third International Symposium, September 2007.
- Michael B. Hancock, Galveston, Tex., "Electronic Autorouting Navigation System for Visually Impaired persons," U.S. Patent 5,806,017, September 1998.
- SOGO Shinji, AKAGI Sadayuki, FUJINO Shingo, "Marketing system and marketing method," Japan Patent 5,713,249, March 2015.
- Paramvir Bahl and Venkata N. Padmanabhan, "RADAR: An In-Building RF-based User Location and Tracking System," IEEE INFOCOM 2000., pp 775-784, August 2002.