Bus tracking wearable
- Duration: 2015 - 2016
- Languages used: Java (for Android Wear), C (for the sensor tag)
- Platforms: Android Wear 1.0 (LG watch urbane W150), Contiki (TI Bluetooth LE CC2650STK sensor tag), Android (smartphone)
Description
I developed a bus tracking application for three different devices: two wearables (an Android smartwatch, and a sensor tag), and an Android smartphone. The application detects which bus service number the user is travelling in, and tracks the location of the bus in real-time. I make novel use of the barometer (air pressure) sensor for extremely low-power operation (high-power location sensors like GPS are not used) and a memory-optimized lightweight algorithm.
The tracking algorithm can run on an extremely resource-constrained sensor tag, which has only about 7 kB of free RAM, 512 kB of external flash storage, and a 220 mAh coin cell battery. The bus tracking tag consumes just 0.52 mW, and for a 220 mAh coin cell, the lifetime is upto 50 days.
Experience gained
- Android wear 1.0 app development
-
Creating a standalone Wear app, displaying notifications, adding primary and additional action buttons
- Embedded system programming
-
Contiki, optimizing algorithm memory footprint, power measurement using Monsoon power meter
- Sensing
-
Use of environmental and motion sensors for context detection, sensor batching using hardware FIFO buffers