Internet of things


This project was to give a suitable demonstration of the 'internet of things' - representing data about real world objects in an internet-like structure. The demo was to have real time data accessible through a web page about one or more objects. At least one sensing object would serve as a standalone package with attached QR code. This you would scan to take you to a page containing a real time or periodically updated graph.


Readings from the sensor(s) are taken using an mbed, in this case using an ARM Cortex-M0 processor for low power consumption. The mbed, after establishing a connection to the server, processes and sends this data periodically using HTML5 websockets. Multiple connections like this can be open at once, depending on the server. From there, the data is broadcast to every connected device using a websocket connection. The webpage linked to by the device's QR code filters out the data that is desired from the rest and using jQuery displays or hides it using a the HTML5 canvas element. A dashboard similarly displays only the relevant graphs that have been 'added'.

The wifi element of the demo is controlled using the WiFly, a wifi module produced by Roving Networks. The server is currently within ARM and is running tornado.


Simulated application

The idea behind the demo is that the time between receiving the sensor and seeing the data is as short and easy as possible. To achieve this, we used QR codes and set the mbed to stream data as soon as was possible. The final process consisted of the following steps:

  • Place the object where desired
  • Scan the QR code on the sensor to go to it's graph
  • Turn the sensor on to see the data (wait time approx. two seconds)
  • Click the 'add' button to add the sensor to your dashboard

Video Demonstrarion

-embedded video here


Obviously, any browser that does not support websockets will not be able to view the graphs.


-Websocket page

Possible Improvements

UDP sacrifices reliability for latency and therefore is more suited to streaming data in real time, such as VoIP etc. Therefore when the data is needed fast, such as with an accelerometer, this could be a better option if latency is becoming a problem.

Please log in to post comments.