FANDOM


This is the blog of Group 7 of UCL's 2nd year Computer Science undergraduates in module COMP2013/2014, on our progress about implementing a proof of concept of a home automation system using a set of Microsoft Gadgeteer kit, a Raspberry Pi, and some slick programming.

Logo-ms-gadgeteerLogo-arduinoFlask-logoLogo-jqueryLogo-html5Logo-css3Logo-mediawiki

  • Kmrugala

    End of the project

    May 11, 2013 by Kmrugala

    Yesterday was the last deadline for COMP2014, and as such our project has come to an end. We had many ups and downs throughout the process and there were many issues that he had to take care of. However overall the project was successful and I am happy with what we built. Considering the amount of time and our experience, I think that our system is decent.

    I am very glad to have gotten this opportunity to learn on a real-life project. It taught me a lot. Michael and me worked on the Python backe…

    Read more >
  • Jerrineswh

    A final blog post to wrap everything up. We did our presentation on the 24th April and it went smoothly, our demo worked perfectly well. We have also finished our group report and our peoject codes are also ready to be released. I'm proud to say that we didn't do any last minute work and rush things off as Michael had planned well to make sure we finished off our parts for the report a week before the deadline. So we also have time to check through and allow time for any modification. We have c…

    Read more >
  • Chchiu

    The presentation went very well demonstrating all the hard work we have done from proof of concept to the final open source product. We have practice many times before the actual presentation, trying to create a smooth running presentation and I think our hard work had paid off. I am now working on the Individual Report and that's mean this module has come to an end.

    I want to thank every single person in the group and our supervisor, without them RoboHome would not be what it's now.

    Read more >
  • Kmrugala

    Over the last weeks we worked on the report and the presentation, which took place on the 24th April. We are now basically done with all the coding and only some small refactoring work are taking place for our final submission deadline of 10th May.

    The presentation overall went well, and on the day our demo worked fine. Which was a relief. I enjoyed seeing other groups work and I am impressed by the level we showed. After all we are just second years. I also liked the comments from people from th…

    Read more >
  • Michboon

    On 24th April, we gave our group presentation along with the other groups. We spent a long time the day before preparing and ensuring that our demo would work. The light sensor we were using in our demo decided it didn’t want to work but luckily we got it working on the morning of the presentation. We went through a few quick PowerPoint slides before moving onto our live demo.

    We were able to load up the UI and show some switching between states. We then showed that the UI was accessible across m…

    Read more >
  • Michboon

    Plugins

    May 6, 2013 by Michboon

    Slightly delayed post for the last new feature I added to the project due to exams and writing up the final report.

    I wanted to give users the option to upload a number of plugins that could access the various items in the house and provide new functionality. Users can upload a plugin as a zip file and it will appear in a list of plugins to load. The system loads any classes that extend the Plugin class which provides methods such as setup() and teardown().

    For now, a few sample plugins are provi…

    Read more >
  • Changtau2005

    Highcharts JS

    April 23, 2013 by Changtau2005

    This is probably the final update for COMP2014 from me before the individual and group report submissions. This covers all that I've done before the assessed presentation on 23rd April, which is tomorrow, at the time of writing of this article.


    I decided to use Highcharts instead of RaphaelJS for our chart because of several reasons. Primarily, we are only implementing a line chart for energy consumption, and Highchart is the gold standard for line charts, candlestick charts etc. in use for stoc…


    Read more >
  • Jerrineswh

    For the past couple of weeks, it was the Easter break and we all continued with our work on this project while revising. I have completed the gathering data of the energy usage. A new energy database table is being created to store the energy value (in watts) and also the time and date of the energy value being retrieved from the energy monitor. So that the user can get the data by entering a pair of timestamp and a graph will be shown displaying the energy usage. The system will be constantly …

    Read more >
  • Chchiu


    The app will parse the json file from the server and display it on the app. The app itself was written in C# with the help of json2csharp (http://json2csharp.com) which creates all the required classes for your JSON response. I also used some external library to parse the JASON such as JSON.NET (http://json.codeplex.com)

    The main problems we encounter during developing the app was deserialize the JSON object from the phone and show it to a readable form. I was planning to show it with tiles form…


    Read more >
  • Kmrugala

    Over the last two weeks I worked on improving the database and a voice recognition app.


    Our database made the code unreadable and changing it would mean changing the entire code quite a bit. This is why I decided to have a second look at it and making some changes.

    I looked at SQLAlchemy , however it seemed too complex for our needs. However, I liked couple of ideas that were mentioned there and I tried to incorporate it into my code. For example the fact that it returns an object, instead of wha…


    Read more >
  • Jerrineswh

    It was the last week of term before Easter break the previous week. I got the PIR module working properly with the Wifi and is able to send the right commands now. Also, with Dennis's help, I managed to fit the PIR sensor with the Arduino, Wifi shield, wires etc nicely into a box. 

    Read more >
  • Changtau2005

    This blog covers last two weeks' progress. The majority of the work is finished last week for milestone 2 of the project, so I had a bit of a week-long break from the project since I'm ahead of schedule, and I'm waiting on other members to finish certain parts so I can continue my work. I'll get to that bit momentarily.


    As far as I'm concerned CSS is not a priority until we get the platform features finished, so I have been considering the UI's appearance to be in the unpolished, 'alpha' stage. …


    Read more >
  • Michboon

    LightwaveRF

    March 24, 2013 by Michboon

    Over the last 2 weeks I have been working on interacting with the LightwaveRF hardware and creating a middle layer for our system.

    Initially I used what I could gather from the internet for the API since it is not open. This allowed me to interact with the hardware well enough but I came across the problem of not being able to get the state of the hardware which is a problem when a user changes the state manually (e.g.  turning a light off at the wall). Because of this I applied for API access bu…

    Read more >
  • Chchiu

    Finally after weeks of making the module, it was finished to a high standard as you can see on the pictures. It was a combine of hardware and software making the module automated controller to run a motor that can operate the opening and closing of blinds. The final product was design so that everything can fit in a box to carry around and was protected from damange.

    I will guide through the many problems i had through creating the module from stretch to finish. From creating simple circuits for…

    Read more >
  • Jerrineswh

    PIR with WIFI library

    March 19, 2013 by Jerrineswh

    This week I managed to put the Arduino and Wifi Shield together and test it with some codes online and also codes my groupmate has written. I also managed to put include the wifi libraries into my PIR code and rewrite some parts because the codes written before has LED moduled being included.

    It now can send and get response using the Wifi library.

    When there is movement detected by the PIR sensor, it will display "{state: 1}" and when there is no movement it will show "{state: 0}". This has been…

    Read more >
  • Kmrugala

    Android App

    March 19, 2013 by Kmrugala

    We encountered quite a big problem this week. When we attached the motor shield and the WiFi shield to the Arduino Uno, there was one free pin left. This is not enough for the Door Module that I was working on. We ordered bigger Arduinos, however they might not arrive on time. If that is the case, I am not sure what we will do.

    This week I was working on producing an android app. Our website is now functional and we decided that users would not usually want to use a computer as they move around …

    Read more >
  • Chchiu

    I have wrote some tests and started testing my cloud system, I uploaded a screenshot of my first few test.


    During my testing, I have updated to Mac OS X 10.8 and PHPUnit start to produce errors when run. After spend at least 5 hours fixing my PHPUnit on my Mac 10.8.2, I finally fixed my PHPUnit on my mac. I hope this tutorial can help those who upgraded to moutain lion and suddenly PHPUnit not working and this error suddenly always pop up:

    PHP Warning: require_once(File/Iterator/Autoload.php): f…
    Read more >
  • Chchiu

    Soldering the prototype

    March 14, 2013 by Chchiu

    So this week I moved to do some work with hardware, I tried to put the Motor Shield + Wifi Shield + Arduino + Hall effect together trying to make a module for the Window.

    This is very danger because the motor is running in 12V and could burn the Arduino very quickly, but it's very fun and challenging. I spend a lot time with Dennise to learn the stucture of Arduino and the Motor shield. I then build a prototype using the breadboard and making sure it work. Then I learn some soldering and put eve…

    Read more >
  • Kmrugala

    Hardware and Soldering

    March 12, 2013 by Kmrugala

    Last week I was finally managed to finalise the bits of hardware that I was supposed to do. Unlike our expectations, hardware was more fiddly and harder than we thought.


    I was supposed to make a Wi-Fi library for the group to use. Last week I managed to get it done through polling, this week I wanted to make it work with POST messages from the Arduino to Flask. This however proved to be a lot harder job than I thought.

    I managed to get the POST sent from Arduino, however once I also started to li…


    Read more >
  • Jerrineswh

    Finally I've completed the automatic updating functionality. Michael and Billy had also helped me when I faced problems like installing SQL into my system and also setting up the the flask server. Now it is able to check for its version, if its an older version then it'll automatically download the newest version available on git and call the script file, runUpdate.sh. This script has the commands to

    1. Unzip the folder which we've downloaded earlier

    2. Killing the pid file which the process ID i…

    Read more >
  • Changtau2005

    The bulk of this week's progress is finishing the ECA stage. This involved refactoring the majority of last week's UI handler classes to handle asynchronous updating as well as polling support, similar to the Control stages for each room.


    One consideration in particular is a stage update() call after every user-generated event, since Michael mentioned some time ago that poll rate is a settable value via one of the configuration stages. This should be retrospectively implemented for the room contr…


    Read more >
  • Michboon

    Continuing on from last week I started this week with trying to get the WiFi working with Gadgeteer. A shout out to the Occupancy OS group (http://occupancy2013.wordpress.com/) who gave me a hand with getting this working.  It turns out that the code is slightly different from the code over at http://wiki.tinyclr.com/index.php?title=WiFi_RS21_Module which I was previously trying to use.

    So with Gadgeteer now on the WiFi I worked on getting together some modules to interact with our system. Now I’…

    Read more >
  • Michboon

    This week I revisited parts of the ECA backend since Li was designing the UI for it. There were several small changes that needed to be done to make for better interaction between the two which mostly concerned what data the API provided. I also made methods for changing events, conditions and actions.

    There was continued discussion about how clear the ECA system is. Currently it is not that clear to some people who have looked at the code what the difference is between an event and a condition.…

    Read more >
  • Jerrineswh

    PIR sensor

    March 3, 2013 by Jerrineswh

    I've started working on the hardware I'm given this week. I did some research on how to use the Arduino, PIR sensor, breadboard etc. as I didn't know how they would work together. I looked up on how to connect the Arduino and PIR sensor together. Besides that, I read some example codes provided online so that it can help me when coding for the PIR.

    So after looking at a few tutorials, I tried putting the them together, connecting the Arduino and PIR, with wires and the breadboard connecting them…

    Read more >
  • Changtau2005

    The bulk of this week's work is on designing and coding up the ECA control panel. This is where the user sets the behavior of the house programatically.

    The server checks through a list of given events when a sensor unit within an item returns a state change. If any of the events match the state change, the server checks the associated firing conditions for the list of actions associated with that sensor event, and fires them if all of them are matched. That's the server side of things, while my…

    Read more >
  • Kmrugala

    We decided that we need to finish and finalise the hardware, since some of us (including me) are leaving for Easter. Therefore this week I was trying to fix and expand the Wi-Fi library for everyone to use. At the end of last week I had something basic working, however there were some issues with it, and it took me a lot of time to fix them. 

    For some reason after sending the first request it parsed everything properly and the right command was extracted from the URL. However on the second try t…

    Read more >
  • Chchiu

    Having build robohome.co.uk, I now start to test it, try to minimize bugs, help improve the design and less likely to break code and intrroduce errors when we make changes.

    One of the hardest aspects of unit testing is accurately replicating how the code will be used in real world.

    I implement unit testing using the library PHPUnit.

    http://craigbrookes.com/2011/09/20/setting-up-phpunit-on-mac-netbeans7/

    Read more >
  • Jerrineswh

    Check and Install Updates

    February 25, 2013 by Jerrineswh

    I continued from the work of checking and install updates I mentioned in last post. I have completed the part to download a file when its a newer version. This week I worked on writing shell script to be able to unzip the zip folder downloaded, stop the Python running by getting the process ID, save it into a .pid file and kill the process. Also, to copy the new files, deleting the file which was downloaded and rerun it.

    I took quite a while to do this because I didn't know much about script wri…

    Read more >
  • Changtau2005

    This week's UI work wraps up the requirements for the first milestone release, and then some.


    The only thing that was left for the first milestone is add/remove room control. In order to enable that, it was necessary to change how stages were defined and the MenuManager class. The change to MenuManager was necessary, because as it was designed (way back at the beginning of COMP2013), it did not support dynamic button addition. Plus, initially stages are defined via anonymous, self-contained, sel…


    Read more >
  • Michboon

    Hardware and Listeners

    February 24, 2013 by Michboon

    This week I added in the structure for the middle layers to interact with the hardware. Each brand of hardware will need very different code to interact with it but we want the hardware to implement an interface that the Python can interact with easily. Our middle layers are the answer to this.

    I gave each item its own thread which checks for changes in state. We want to make the system event driven by delaying the responses to http requests and because of this it makes sense that every item has…

    Read more >
  • Chchiu

    Hardware - Wemo

    February 24, 2013 by Chchiu

    So I started with the WeMo API hacking trying to access the wemo with python. The wemo is using a virtual AP without password protection through DD-WRT. I started with the example code here: http://www.issackelly.com/blog/2012/08/04/wemo-api-hacking/

    This code work by searching all the wemo in the network and users can connect to it manually, I have taken out the search part and re-coded it so that it can connect to a specufic wemo giving the ip.

    It now work with the command:

    from wemo import sta… Read more >
  • Kmrugala

    Hardware

    February 24, 2013 by Kmrugala

    This week we finally got hardware, which means that we can try and actually move things and use actual sensors instead of mocking them. We got wemo and Arduino parts, I am responsible for making a door module. 

    Arduino is quite hard, and since I am not a hardware person it was hard for me to get used to it. The first problem I encountered was choosing the right resistors. I had no idea what I am supposed to use and also wiring things together was a challenge. 


    The door module needs two movementse…


    Read more >
  • Michboon

    (Part 3 of my COMP2014 catch-up posts)

    We wanted to make testing a strong focus in this project. We are aiming to have almost complete code coverage with our tests for the Python backend which I have been working on. To help with this I set us up a development environment on one of the MS Azure accounts we were given.

    After my research in COMP2013 I decided that Jenkins (http://jenkins-ci.org/) was the best option for our continuous integration. Ours can be found at http://dev.robohome.co.uk .

    Whe…

    Read more >
  • Chchiu

    Literature Review

    After finish COMP2013 I started to look at the literature review of existing home automation system, listing their strengths and weakness. I also finalized the system architecture and documented some default settings for our house.

    Colud – Window Azure

    I set up the Window Azure cloud account and host a Web Server with it. I wrote a website in HTML with the help of bootstrap, CSS and PHP blackend for communicating with the database, I tried to make it as professional as possible. …

    Read more >
  • Michboon

    Automation and Rules

    February 19, 2013 by Michboon

    (Part 2 of my COMP2014 catch-up posts)

    The first new feature I decided to add to the system was the ability to add rules and react to events in the house. Up until now, our system has only been able to control the house which seems lacking for a home automation system. We needed a way for users to specify rules such as “When the lounge door opens, if it is dark outside then close the curtains in the room and turn the lights on”. We went with a system of “Events”, “Conditions” and “Actions”.

    The fir…

    Read more >
  • Michboon

    Literature Review and Design

    February 19, 2013 by Michboon

    (Part 1 of my COMP2014 catch-up posts)

    After finishing our proof of concept for COMP2013 we spent a week on literature review followed by a week on design. We looked into other home automation systems and the possibility of generalising the hardware we use rather than focusing on Gadgeteer / Arduino.

    We also wanted to move away from the problems of wiring everything together that we encountered with our proof of concept. To solve this we decided to use a variety of wireless sensors and where we c…

    Read more >
  • Kmrugala

    Since the last time I blogged we finished the research and started programing. I was responsible for the Python code running on the RaspberryPi, I also updated the scripts so that it works with our new features and I started work on the OpenID login page. 


    The RaspberryPi Python code is meant to be doing the bulk of computation between the components. It should be processing the requests from the UI and send the commands to the appropriate components. Python also stores the house structure and s…


    Read more >
  • Jerrineswh

    So I've learnt up HTML and CSS in order to document our API using Bootstrap. I did some reading up on how to use Bootstrap besides looking through at the compiled version of Bootstrap documentation on the Github project. I managed to complete a page of documentation of the API for developers to be hosted on the main site.

    After that, I started working on the automatic updating for the Raspberry Pi server code. I read up more on Python and also started doing some coding during the reading week. I…

    Read more >
  • Changtau2005

    Asynchronous UI

    February 18, 2013 by Changtau2005

    The my post-reading week progress report. It's been an intense 9 days, and most of my work during the week is dedicated to the UI, and I'm happy to report that there's much progress made, although the amount of work done fell just short of my expectations.

    I got the features we had in COMP2013 working in the first 3-4 days of the week - being able to see and control pre-registered rooms and items (sensors). The UI panels have been redesigned to support additional transmission status representati…

    Read more >
  • Changtau2005

    We did some API design over the past week in parallel with what everybody was already assigned to do. What we ended up with is supposed to be RESTful, and I documented it on the github repo wiki page here. The wiki is mostly for our own reference when implementing the server, and for me, it's how the JS front-end is supposed to communicate with it, so it changes every now and then - Jerrine is working on proper documentation for it.


    We've also switched to Flask from CherryPy simply because it is…


    Read more >
  • Jerrineswh

    Hardwares and Use Cases

    February 3, 2013 by Jerrineswh

    We have completed our COMP2013 project about two weeks ago and we are currently starting to work on COMP2014. So in the last term, we had successfully did the proof of concept for our project which we are implementing the actual home automation now. The prototype has given us a rough idea on how we should proceed with the real implementation and also what we could improve on. So this week is about finding the right hardwares we need which includes motors, sensor, magnetic switch etc. We've done…

    Read more >
  • Kmrugala

    Hardware Research

    January 31, 2013 by Kmrugala

    Since the end of the COMP2013 module we started to look how to develop the Home Automation System properly. Our first goal was to design the system and choose the hardware components that we want. Since we are here to learn we thought that Arduino would be a good idea. Gadgeteer proved to be very unreliable and hard to use during the Proof of Concept phase, which meant that we did not want to continue using that. 

    After researching around Arduino a bit, I soon realised that it is very hard to us…

    Read more >
  • Changtau2005

    Literature review

    January 29, 2013 by Changtau2005

    Week 9 is all about hardware considerations and literature review, in order to decide how we can go forward with our system from our proof of concept.

    We discussed this with Dean, Billy (our TA), and Dennis (Head of Tech Support), and amongst ourselves for several hours today, got a list of research topics, and each of us are to finish that research before the 9am meeting with Prof. Stephen Hailes tomorrow.


    Terrence and I are supposed to look at a sample set of 10 different existing complete home…


    Read more >
  • Changtau2005

    We finally finished the COMP2013 phase of the project 2 days ago. (Round of applause for all team members)

    Week 8 was a very trying week for everyone, but team integrity remained solid throughout. Amidst other modules picking up the pace in week 2 of term, we had to finalize the 50-page group report amidst polishing up the code base. We had a meeting with our project supervisor to re-review the structure of the group report, and we decided to put in some last-minute content about testing strateg…

    Read more >
  • Changtau2005

    It's been a fortnight since my last post, and it is now week 7. Week 5 involved finishing up work for the another module, and I spent week 6 looking at arcane SRS rotation rules, LIBGDX, and programming a Tetris clone while everyone celebrates New Year, but let's not mention that here.

    It's the end of week 7 and I finished the UI and logic for showing and controlling states of our devices. Oh, and we switched to CherryPy from Django for a server platform because it is easier to work with.



    My Java…



    Read more >
  • Michboon

    Week 7

    January 10, 2013 by Michboon

    Weeks 5 and 6 were dedicated to COMP2009 and Christmas/New Years. Onwards to week 7 …



    I started off the week by once again looking into the Gadgeteer networking. I managed to fix the need to start with the Ethernet cable unplugged and also managed to get rid of the error messages about taking too long to start. I found http://www.tinyclr.com/forum/topic?id=9929 an interesting read and I’m still not too keen on the Gadgeteer’s networking at all.

    Next I played around with a simple GUI for the touch…



    Read more >
  • Kmrugala

    Weeks up to now

    January 6, 2013 by Kmrugala

    A lot was happening over the last weeks. At first we were just learning things we need like operating Linux, python, C#, server and such. Recently we started to implement things. I was responsible for configuring arch Linux and for writing python programs for the API.


    I wrote a script for configuring a normal VM for arch. Which unfortunately meant that I had to manually configure everything, as the new Arch image does not come with a configuration tool like it did before. This helped me to learn…


    Read more >
  • Chchiu

    Week 1 - Week 7

    January 6, 2013 by Chchiu

    After trying both fedora and Arch Linux, I decide to use Arch Linux because its building up rather than striping down. I install Arch Linux in my virtual machine VMWare. Then I have to start installing Arch Linux using command step by step. It wasn't wasy and it took me some time.

    After that I need to find a Free Speech Recognition Engines for Arch Linux, there are many choices such as: CMU Sphinx, Simon, Julius, VoxForge etc...

    After a lot of readings and demo video i decided to try Julius out. …

    Read more >
  • Michboon

    Week 4

    December 15, 2012 by Michboon

    So week 4 was the last week of term. At the start of the week we met up to try and get the networking on the Gadgeteer working which we struggled with the week before.

    I used some example code which can be found at http://www.tinyclr.com/codeshare/entry/588 which looks completely different to any of the code we had been using before. Interestingly, it uses “static EthernetBuiltIn Eth1 = new EthernetBuiltIn();” instead of the Ethernet module used in the drag and drop interface like in other examp…

    Read more >
  • Jerrineswh

    Week 1 and 2

    December 11, 2012 by Jerrineswh

    This is my first post for the blog and I'll be writing up on what we've been working on for the first two weeks. So it started with 10 titles and a brief description of the project being posted up on moodle. After looking through the list of choices, I decided to pick Home Automation and Security as my project to work on because it seems interesting.

    We were given a Gadgeteer Hardware which initially consist of roughly 15 components such as a FEZ Spider Mainboard, motion sensor, LED, USB module,…

    Read more >
Table of contents
Create blog post

Blogs

See more >

  • Changtau2005

    Highcharts JS

    April 23, 2013 by Changtau2005

    This is probably the final update for COMP2014 from me before the individual and group report submissions. This covers all that I've done before the assessed presentation on 23rd April, which is tomorrow, at the time of writing of this article.


    I decided to use Highcharts instead of RaphaelJS for our chart because of several reasons. Primarily, we are only implementing a line chart for energy consumption, and Highchart is the gold standard for line charts, candlestick charts etc. in use for stoc…


    Read more >
  • Changtau2005

    This blog covers last two weeks' progress. The majority of the work is finished last week for milestone 2 of the project, so I had a bit of a week-long break from the project since I'm ahead of schedule, and I'm waiting on other members to finish certain parts so I can continue my work. I'll get to that bit momentarily.


    As far as I'm concerned CSS is not a priority until we get the platform features finished, so I have been considering the UI's appearance to be in the unpolished, 'alpha' stage. …


    Read more >
  • Changtau2005

    The bulk of this week's progress is finishing the ECA stage. This involved refactoring the majority of last week's UI handler classes to handle asynchronous updating as well as polling support, similar to the Control stages for each room.


    One consideration in particular is a stage update() call after every user-generated event, since Michael mentioned some time ago that poll rate is a settable value via one of the configuration stages. This should be retrospectively implemented for the room contr…


    Read more >
  • Changtau2005

    The bulk of this week's work is on designing and coding up the ECA control panel. This is where the user sets the behavior of the house programatically.

    The server checks through a list of given events when a sensor unit within an item returns a state change. If any of the events match the state change, the server checks the associated firing conditions for the list of actions associated with that sensor event, and fires them if all of them are matched. That's the server side of things, while my…

    Read more >
  • Changtau2005

    This week's UI work wraps up the requirements for the first milestone release, and then some.


    The only thing that was left for the first milestone is add/remove room control. In order to enable that, it was necessary to change how stages were defined and the MenuManager class. The change to MenuManager was necessary, because as it was designed (way back at the beginning of COMP2013), it did not support dynamic button addition. Plus, initially stages are defined via anonymous, self-contained, sel…


    Read more >
  • Changtau2005

    Asynchronous UI

    February 18, 2013 by Changtau2005

    The my post-reading week progress report. It's been an intense 9 days, and most of my work during the week is dedicated to the UI, and I'm happy to report that there's much progress made, although the amount of work done fell just short of my expectations.

    I got the features we had in COMP2013 working in the first 3-4 days of the week - being able to see and control pre-registered rooms and items (sensors). The UI panels have been redesigned to support additional transmission status representati…

    Read more >
  • Changtau2005

    We did some API design over the past week in parallel with what everybody was already assigned to do. What we ended up with is supposed to be RESTful, and I documented it on the github repo wiki page here. The wiki is mostly for our own reference when implementing the server, and for me, it's how the JS front-end is supposed to communicate with it, so it changes every now and then - Jerrine is working on proper documentation for it.


    We've also switched to Flask from CherryPy simply because it is…


    Read more >
  • Changtau2005

    Literature review

    January 29, 2013 by Changtau2005

    Week 9 is all about hardware considerations and literature review, in order to decide how we can go forward with our system from our proof of concept.

    We discussed this with Dean, Billy (our TA), and Dennis (Head of Tech Support), and amongst ourselves for several hours today, got a list of research topics, and each of us are to finish that research before the 9am meeting with Prof. Stephen Hailes tomorrow.


    Terrence and I are supposed to look at a sample set of 10 different existing complete home…


    Read more >
  • Changtau2005

    We finally finished the COMP2013 phase of the project 2 days ago. (Round of applause for all team members)

    Week 8 was a very trying week for everyone, but team integrity remained solid throughout. Amidst other modules picking up the pace in week 2 of term, we had to finalize the 50-page group report amidst polishing up the code base. We had a meeting with our project supervisor to re-review the structure of the group report, and we decided to put in some last-minute content about testing strateg…

    Read more >
  • Changtau2005

    It's been a fortnight since my last post, and it is now week 7. Week 5 involved finishing up work for the another module, and I spent week 6 looking at arcane SRS rotation rules, LIBGDX, and programming a Tetris clone while everyone celebrates New Year, but let's not mention that here.

    It's the end of week 7 and I finished the UI and logic for showing and controlling states of our devices. Oh, and we switched to CherryPy from Django for a server platform because it is easier to work with.



    My Java…



    Read more >
  • Changtau2005

    So, we all managed to survive until the end of the week, despite everyone's to-do lists experiencing buffer overruns.

    I got somewhere with the front-end development, but since very little actual hardware functionality has been implemented at the moment, we decided to put it on hold for now. I coded up the core of it from scratch (bar jquery.min.js of course), in around 10 hours, brushing-up and adjustments plus a couple more. I've been reading a fantastic book - JavaScript Patterns, by Stoyan St…

    Read more >
  • Changtau2005

    Here comes week 2 and everybody is busy preparing for the mathematics class test. As for our work in COMP2013, Michael set up our git repository ahead of time. To the best of my knowledge though, nobody has written anything solid yet.


    My task for this week is the front end of the application - Since I'm most at home with web front end (along with Java and Python), I'm to prototype and start coding up the web interface of our application, so my current plans are a page for every major feature tha…


    Read more >
  • Changtau2005

    Gathering information

    December 4, 2012 by Changtau2005

    In the first week, we had a brainstorming session, and each one of us went away with several topics to research about, so we can make decisions about our choice of platform and system architecture, and the steps required to make it work with the general application that we have in mind.

    The topics I got were viabilities for using Microsoft Azure, CCTV integration, and fingerprint scanning.

    After everyone got their information, we went through them so each one of us knows what is viable and what i…

    Read more >
Table of contents
Create blog post

Blogs

See more >

  • Chchiu

    The presentation went very well demonstrating all the hard work we have done from proof of concept to the final open source product. We have practice many times before the actual presentation, trying to create a smooth running presentation and I think our hard work had paid off. I am now working on the Individual Report and that's mean this module has come to an end.

    I want to thank every single person in the group and our supervisor, without them RoboHome would not be what it's now.

    Read more >
  • Chchiu


    The app will parse the json file from the server and display it on the app. The app itself was written in C# with the help of json2csharp (http://json2csharp.com) which creates all the required classes for your JSON response. I also used some external library to parse the JASON such as JSON.NET (http://json.codeplex.com)

    The main problems we encounter during developing the app was deserialize the JSON object from the phone and show it to a readable form. I was planning to show it with tiles form…


    Read more >
  • Chchiu

    Finally after weeks of making the module, it was finished to a high standard as you can see on the pictures. It was a combine of hardware and software making the module automated controller to run a motor that can operate the opening and closing of blinds. The final product was design so that everything can fit in a box to carry around and was protected from damange.

    I will guide through the many problems i had through creating the module from stretch to finish. From creating simple circuits for…

    Read more >
  • Chchiu

    I have wrote some tests and started testing my cloud system, I uploaded a screenshot of my first few test.


    During my testing, I have updated to Mac OS X 10.8 and PHPUnit start to produce errors when run. After spend at least 5 hours fixing my PHPUnit on my Mac 10.8.2, I finally fixed my PHPUnit on my mac. I hope this tutorial can help those who upgraded to moutain lion and suddenly PHPUnit not working and this error suddenly always pop up:

    PHP Warning: require_once(File/Iterator/Autoload.php): f…
    Read more >
  • Chchiu

    Soldering the prototype

    March 14, 2013 by Chchiu

    So this week I moved to do some work with hardware, I tried to put the Motor Shield + Wifi Shield + Arduino + Hall effect together trying to make a module for the Window.

    This is very danger because the motor is running in 12V and could burn the Arduino very quickly, but it's very fun and challenging. I spend a lot time with Dennise to learn the stucture of Arduino and the Motor shield. I then build a prototype using the breadboard and making sure it work. Then I learn some soldering and put eve…

    Read more >
  • Chchiu

    Having build robohome.co.uk, I now start to test it, try to minimize bugs, help improve the design and less likely to break code and intrroduce errors when we make changes.

    One of the hardest aspects of unit testing is accurately replicating how the code will be used in real world.

    I implement unit testing using the library PHPUnit.

    http://craigbrookes.com/2011/09/20/setting-up-phpunit-on-mac-netbeans7/

    Read more >
  • Chchiu

    Hardware - Wemo

    February 24, 2013 by Chchiu

    So I started with the WeMo API hacking trying to access the wemo with python. The wemo is using a virtual AP without password protection through DD-WRT. I started with the example code here: http://www.issackelly.com/blog/2012/08/04/wemo-api-hacking/

    This code work by searching all the wemo in the network and users can connect to it manually, I have taken out the search part and re-coded it so that it can connect to a specufic wemo giving the ip.

    It now work with the command:

    from wemo import sta… Read more >
  • Chchiu

    Literature Review

    After finish COMP2013 I started to look at the literature review of existing home automation system, listing their strengths and weakness. I also finalized the system architecture and documented some default settings for our house.

    Colud – Window Azure

    I set up the Window Azure cloud account and host a Web Server with it. I wrote a website in HTML with the help of bootstrap, CSS and PHP blackend for communicating with the database, I tried to make it as professional as possible. …

    Read more >
  • Chchiu

    Week 1 - Week 7

    January 6, 2013 by Chchiu

    After trying both fedora and Arch Linux, I decide to use Arch Linux because its building up rather than striping down. I install Arch Linux in my virtual machine VMWare. Then I have to start installing Arch Linux using command step by step. It wasn't wasy and it took me some time.

    After that I need to find a Free Speech Recognition Engines for Arch Linux, there are many choices such as: CMU Sphinx, Simon, Julius, VoxForge etc...

    After a lot of readings and demo video i decided to try Julius out. …

    Read more >
Table of contents
Create blog post

Blogs

See more >

  • Michboon

    On 24th April, we gave our group presentation along with the other groups. We spent a long time the day before preparing and ensuring that our demo would work. The light sensor we were using in our demo decided it didn’t want to work but luckily we got it working on the morning of the presentation. We went through a few quick PowerPoint slides before moving onto our live demo.

    We were able to load up the UI and show some switching between states. We then showed that the UI was accessible across m…

    Read more >
  • Michboon

    Plugins

    May 6, 2013 by Michboon

    Slightly delayed post for the last new feature I added to the project due to exams and writing up the final report.

    I wanted to give users the option to upload a number of plugins that could access the various items in the house and provide new functionality. Users can upload a plugin as a zip file and it will appear in a list of plugins to load. The system loads any classes that extend the Plugin class which provides methods such as setup() and teardown().

    For now, a few sample plugins are provi…

    Read more >
  • Michboon

    LightwaveRF

    March 24, 2013 by Michboon

    Over the last 2 weeks I have been working on interacting with the LightwaveRF hardware and creating a middle layer for our system.

    Initially I used what I could gather from the internet for the API since it is not open. This allowed me to interact with the hardware well enough but I came across the problem of not being able to get the state of the hardware which is a problem when a user changes the state manually (e.g.  turning a light off at the wall). Because of this I applied for API access bu…

    Read more >
  • Michboon

    Continuing on from last week I started this week with trying to get the WiFi working with Gadgeteer. A shout out to the Occupancy OS group (http://occupancy2013.wordpress.com/) who gave me a hand with getting this working.  It turns out that the code is slightly different from the code over at http://wiki.tinyclr.com/index.php?title=WiFi_RS21_Module which I was previously trying to use.

    So with Gadgeteer now on the WiFi I worked on getting together some modules to interact with our system. Now I’…

    Read more >
  • Michboon

    This week I revisited parts of the ECA backend since Li was designing the UI for it. There were several small changes that needed to be done to make for better interaction between the two which mostly concerned what data the API provided. I also made methods for changing events, conditions and actions.

    There was continued discussion about how clear the ECA system is. Currently it is not that clear to some people who have looked at the code what the difference is between an event and a condition.…

    Read more >
  • Michboon

    Hardware and Listeners

    February 24, 2013 by Michboon

    This week I added in the structure for the middle layers to interact with the hardware. Each brand of hardware will need very different code to interact with it but we want the hardware to implement an interface that the Python can interact with easily. Our middle layers are the answer to this.

    I gave each item its own thread which checks for changes in state. We want to make the system event driven by delaying the responses to http requests and because of this it makes sense that every item has…

    Read more >
  • Michboon

    (Part 3 of my COMP2014 catch-up posts)

    We wanted to make testing a strong focus in this project. We are aiming to have almost complete code coverage with our tests for the Python backend which I have been working on. To help with this I set us up a development environment on one of the MS Azure accounts we were given.

    After my research in COMP2013 I decided that Jenkins (http://jenkins-ci.org/) was the best option for our continuous integration. Ours can be found at http://dev.robohome.co.uk .

    Whe…

    Read more >
  • Michboon

    Automation and Rules

    February 19, 2013 by Michboon

    (Part 2 of my COMP2014 catch-up posts)

    The first new feature I decided to add to the system was the ability to add rules and react to events in the house. Up until now, our system has only been able to control the house which seems lacking for a home automation system. We needed a way for users to specify rules such as “When the lounge door opens, if it is dark outside then close the curtains in the room and turn the lights on”. We went with a system of “Events”, “Conditions” and “Actions”.

    The fir…

    Read more >
  • Michboon

    Literature Review and Design

    February 19, 2013 by Michboon

    (Part 1 of my COMP2014 catch-up posts)

    After finishing our proof of concept for COMP2013 we spent a week on literature review followed by a week on design. We looked into other home automation systems and the possibility of generalising the hardware we use rather than focusing on Gadgeteer / Arduino.

    We also wanted to move away from the problems of wiring everything together that we encountered with our proof of concept. To solve this we decided to use a variety of wireless sensors and where we c…

    Read more >
  • Michboon

    Week 7

    January 10, 2013 by Michboon

    Weeks 5 and 6 were dedicated to COMP2009 and Christmas/New Years. Onwards to week 7 …



    I started off the week by once again looking into the Gadgeteer networking. I managed to fix the need to start with the Ethernet cable unplugged and also managed to get rid of the error messages about taking too long to start. I found http://www.tinyclr.com/forum/topic?id=9929 an interesting read and I’m still not too keen on the Gadgeteer’s networking at all.

    Next I played around with a simple GUI for the touch…



    Read more >
  • Michboon

    Week 4

    December 15, 2012 by Michboon

    So week 4 was the last week of term. At the start of the week we met up to try and get the networking on the Gadgeteer working which we struggled with the week before.

    I used some example code which can be found at http://www.tinyclr.com/codeshare/entry/588 which looks completely different to any of the code we had been using before. Interestingly, it uses “static EthernetBuiltIn Eth1 = new EthernetBuiltIn();” instead of the Ethernet module used in the drag and drop interface like in other examp…

    Read more >
  • Michboon

    Weeks 1-3

    December 9, 2012 by Michboon

    Ok … Here is my first blog post for our COMP2013 Home Automation project. I’ll be covering the first 3 weeks since they’ve been very busy and I’ve not had a change to post as I go along.


    Our team of 6 was put together as a group who had all shown interest in the Home Automation project brief. We met and had a talk about general ideas for the project. In the end we came up with about 2 pages of ideas and then had to cross out some of the more “unique” ones but there’s still room for a Party Butto…


    Read more >
Table of contents
Create blog post

Blogs

See more >

  • Kmrugala

    End of the project

    May 11, 2013 by Kmrugala

    Yesterday was the last deadline for COMP2014, and as such our project has come to an end. We had many ups and downs throughout the process and there were many issues that he had to take care of. However overall the project was successful and I am happy with what we built. Considering the amount of time and our experience, I think that our system is decent.

    I am very glad to have gotten this opportunity to learn on a real-life project. It taught me a lot. Michael and me worked on the Python backe…

    Read more >
  • Kmrugala

    Over the last weeks we worked on the report and the presentation, which took place on the 24th April. We are now basically done with all the coding and only some small refactoring work are taking place for our final submission deadline of 10th May.

    The presentation overall went well, and on the day our demo worked fine. Which was a relief. I enjoyed seeing other groups work and I am impressed by the level we showed. After all we are just second years. I also liked the comments from people from th…

    Read more >
  • Kmrugala

    Over the last two weeks I worked on improving the database and a voice recognition app.


    Our database made the code unreadable and changing it would mean changing the entire code quite a bit. This is why I decided to have a second look at it and making some changes.

    I looked at SQLAlchemy , however it seemed too complex for our needs. However, I liked couple of ideas that were mentioned there and I tried to incorporate it into my code. For example the fact that it returns an object, instead of wha…


    Read more >
  • Kmrugala

    Android App

    March 19, 2013 by Kmrugala

    We encountered quite a big problem this week. When we attached the motor shield and the WiFi shield to the Arduino Uno, there was one free pin left. This is not enough for the Door Module that I was working on. We ordered bigger Arduinos, however they might not arrive on time. If that is the case, I am not sure what we will do.

    This week I was working on producing an android app. Our website is now functional and we decided that users would not usually want to use a computer as they move around …

    Read more >
  • Kmrugala

    Hardware and Soldering

    March 12, 2013 by Kmrugala

    Last week I was finally managed to finalise the bits of hardware that I was supposed to do. Unlike our expectations, hardware was more fiddly and harder than we thought.


    I was supposed to make a Wi-Fi library for the group to use. Last week I managed to get it done through polling, this week I wanted to make it work with POST messages from the Arduino to Flask. This however proved to be a lot harder job than I thought.

    I managed to get the POST sent from Arduino, however once I also started to li…


    Read more >
  • Kmrugala

    We decided that we need to finish and finalise the hardware, since some of us (including me) are leaving for Easter. Therefore this week I was trying to fix and expand the Wi-Fi library for everyone to use. At the end of last week I had something basic working, however there were some issues with it, and it took me a lot of time to fix them. 

    For some reason after sending the first request it parsed everything properly and the right command was extracted from the URL. However on the second try t…

    Read more >
  • Kmrugala

    Hardware

    February 24, 2013 by Kmrugala

    This week we finally got hardware, which means that we can try and actually move things and use actual sensors instead of mocking them. We got wemo and Arduino parts, I am responsible for making a door module. 

    Arduino is quite hard, and since I am not a hardware person it was hard for me to get used to it. The first problem I encountered was choosing the right resistors. I had no idea what I am supposed to use and also wiring things together was a challenge. 


    The door module needs two movementse…


    Read more >
  • Kmrugala

    Since the last time I blogged we finished the research and started programing. I was responsible for the Python code running on the RaspberryPi, I also updated the scripts so that it works with our new features and I started work on the OpenID login page. 


    The RaspberryPi Python code is meant to be doing the bulk of computation between the components. It should be processing the requests from the UI and send the commands to the appropriate components. Python also stores the house structure and s…


    Read more >
  • Kmrugala

    Hardware Research

    January 31, 2013 by Kmrugala

    Since the end of the COMP2013 module we started to look how to develop the Home Automation System properly. Our first goal was to design the system and choose the hardware components that we want. Since we are here to learn we thought that Arduino would be a good idea. Gadgeteer proved to be very unreliable and hard to use during the Proof of Concept phase, which meant that we did not want to continue using that. 

    After researching around Arduino a bit, I soon realised that it is very hard to us…

    Read more >
  • Kmrugala

    Weeks up to now

    January 6, 2013 by Kmrugala

    A lot was happening over the last weeks. At first we were just learning things we need like operating Linux, python, C#, server and such. Recently we started to implement things. I was responsible for configuring arch Linux and for writing python programs for the API.


    I wrote a script for configuring a normal VM for arch. Which unfortunately meant that I had to manually configure everything, as the new Arch image does not come with a configuration tool like it did before. This helped me to learn…


    Read more >
  • Kmrugala

    Catch-Up

    December 9, 2012 by Kmrugala

    Right, so... according to our lecturers we are supposed to write a blog weekly, and from now onwards I truly intend to do so, however since the first two weeks were quite hectic, I did not have a chance to get to that, which is why this will be a catch-up post for those 2 weeks. 


    The lists of the projects were put on Moodle and we had little time to choose the one we want to do. That was a very hard choice, but in the end I decided to do the "Home automation and security" since it sounds fun and…


    Read more >
Table of contents
Create blog post

Blogs

See more >

  • Jerrineswh

    A final blog post to wrap everything up. We did our presentation on the 24th April and it went smoothly, our demo worked perfectly well. We have also finished our group report and our peoject codes are also ready to be released. I'm proud to say that we didn't do any last minute work and rush things off as Michael had planned well to make sure we finished off our parts for the report a week before the deadline. So we also have time to check through and allow time for any modification. We have c…

    Read more >
  • Jerrineswh

    For the past couple of weeks, it was the Easter break and we all continued with our work on this project while revising. I have completed the gathering data of the energy usage. A new energy database table is being created to store the energy value (in watts) and also the time and date of the energy value being retrieved from the energy monitor. So that the user can get the data by entering a pair of timestamp and a graph will be shown displaying the energy usage. The system will be constantly …

    Read more >
  • Jerrineswh

    It was the last week of term before Easter break the previous week. I got the PIR module working properly with the Wifi and is able to send the right commands now. Also, with Dennis's help, I managed to fit the PIR sensor with the Arduino, Wifi shield, wires etc nicely into a box. 

    Read more >
  • Jerrineswh

    PIR with WIFI library

    March 19, 2013 by Jerrineswh

    This week I managed to put the Arduino and Wifi Shield together and test it with some codes online and also codes my groupmate has written. I also managed to put include the wifi libraries into my PIR code and rewrite some parts because the codes written before has LED moduled being included.

    It now can send and get response using the Wifi library.

    When there is movement detected by the PIR sensor, it will display "{state: 1}" and when there is no movement it will show "{state: 0}". This has been…

    Read more >
  • Jerrineswh

    Finally I've completed the automatic updating functionality. Michael and Billy had also helped me when I faced problems like installing SQL into my system and also setting up the the flask server. Now it is able to check for its version, if its an older version then it'll automatically download the newest version available on git and call the script file, runUpdate.sh. This script has the commands to

    1. Unzip the folder which we've downloaded earlier

    2. Killing the pid file which the process ID i…

    Read more >
  • Jerrineswh

    PIR sensor

    March 3, 2013 by Jerrineswh

    I've started working on the hardware I'm given this week. I did some research on how to use the Arduino, PIR sensor, breadboard etc. as I didn't know how they would work together. I looked up on how to connect the Arduino and PIR sensor together. Besides that, I read some example codes provided online so that it can help me when coding for the PIR.

    So after looking at a few tutorials, I tried putting the them together, connecting the Arduino and PIR, with wires and the breadboard connecting them…

    Read more >
  • Jerrineswh

    Check and Install Updates

    February 25, 2013 by Jerrineswh

    I continued from the work of checking and install updates I mentioned in last post. I have completed the part to download a file when its a newer version. This week I worked on writing shell script to be able to unzip the zip folder downloaded, stop the Python running by getting the process ID, save it into a .pid file and kill the process. Also, to copy the new files, deleting the file which was downloaded and rerun it.

    I took quite a while to do this because I didn't know much about script wri…

    Read more >
  • Jerrineswh

    So I've learnt up HTML and CSS in order to document our API using Bootstrap. I did some reading up on how to use Bootstrap besides looking through at the compiled version of Bootstrap documentation on the Github project. I managed to complete a page of documentation of the API for developers to be hosted on the main site.

    After that, I started working on the automatic updating for the Raspberry Pi server code. I read up more on Python and also started doing some coding during the reading week. I…

    Read more >
  • Jerrineswh

    Hardwares and Use Cases

    February 3, 2013 by Jerrineswh

    We have completed our COMP2013 project about two weeks ago and we are currently starting to work on COMP2014. So in the last term, we had successfully did the proof of concept for our project which we are implementing the actual home automation now. The prototype has given us a rough idea on how we should proceed with the real implementation and also what we could improve on. So this week is about finding the right hardwares we need which includes motors, sensor, magnetic switch etc. We've done…

    Read more >
  • Jerrineswh

    Week 1 and 2

    December 11, 2012 by Jerrineswh

    This is my first post for the blog and I'll be writing up on what we've been working on for the first two weeks. So it started with 10 titles and a brief description of the project being posted up on moodle. After looking through the list of choices, I decided to pick Home Automation and Security as my project to work on because it seems interesting.

    We were given a Gadgeteer Hardware which initially consist of roughly 15 components such as a FEZ Spider Mainboard, motion sensor, LED, USB module,…

    Read more >
Table of contents
Create blog post

Blogs

See more >

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.