July 3, 2013

Learning Android for FYP

I am now into my 2nd last Trimester in MMU, where I have begun my final year project (FYP). Me and my friend, Jeeva are partners, currently under the supervision of Mr. Cheong (a great lecturer, one of the best I've known). Our project? A phone based Access Control system, based on UniKey.



UniKey is an Access Control system which replaces traditional standard lock and keys with your smart phone. They haven't actually launched their product yet. UniKey makes use of the Bluetooth technology (low cost, low power, widely supported, readily available) to communicate with the electronic door operator. Initially, our project consist of 2 essential parts:

  1. A phone App to that store the 'key' and response to the electronic door operator via Bluetooth. Plus, some key managements as an added feature. Android platform as a start.
  2. The electronic door operator which communicates with the phone App via Bluetooth and responsible for the control that locks/unlocks the door. The development will be done using the popular Raspberry Pi before we move on to construct our custom circuit board.
We might actually want to enhance further when we have some basics working. I am in charge of the software development part of the project while Jeeva will do most of the hardware part. The Iphone App for the Unikey looks like below (they haven't developed an Android App yet);


This week marks the 3rd week of our project development stage and I am still at the stage of "learning" and "figuring out". I had my first touch on Android App a year ago while helping a friend on his project, but those were merely introductory. Android Bluetooth API is something very new to me and with the lack of hardwares to test, I ended up progessing pretty slow. For a start, I found out after 2 weeks that most Bluetooth adapters on Samsung phones are not reliable which really is a headache because I only have Samsung devices available (Note 2, Tab). To summarize, these are what I have done in the past 2 weeks and what should I be doing in the next few weeks. This is based on MMU Trimester calendar, where I started the project on Week 2, not on Week 1.

  1. Week 2 : We were briefed on the project. I was assigned to write a 10 page of Literature Review and  to write a simple Android App to get me familiar with Eclipse and Android GUI. Simple Android App with basic GUI is completed.
  2. Week 3 : Demonstrate the simple App to Mr. Cheong. Next, I was assigned with a new task to write another App to simply send a file to another phone via Bluetooth. I went as far as to able to discover other available Bluetooth device, but unable to pair and hence, unable to connect. On the other hand, Literature Review Draft 1 is submitted. Mr. Cheong added a few points of suggestion to add into the Literature Review.
  3. Week 4 : The App is able to connect and pair, but crashed at run time a few seconds afterwards. Meeting with Mr. Cheong went well although I wasn't able to demonstrate a fully functional app. He asked for the submission of the edited Literature Review during the next meeting. I was asked to write a fully functional App that is able to send a file to a Bluetooth device (this time, probably a computer with a Bluetooth dongle) as well as some simple server program (written in C or Python) which can read the file.
As I am not really familiar with Android development as yet, this is quite a tough project to work on. As Mr. Cheong described, I should be doing head banging most of the time while working on the project. However, I am pretty excited. I love challenges. :-)

By the way, our work will not entirely be published here as they are belong to MMU, per their policy. In fact, I will not be posting any of the works here. However, I have promised myself I will keep posting something on the progress of the project and probably some interesting tutorials and articles that I found useful.

I need that practice in writing.