We cannot be around the ones we love as much as we would wish. It is hard enough being there for your children but what about parents who might live hours away up the motorway or just across town. I know from my personal situation that a round trip across town takes an hour so how do you give enough attention to your elders when you do not have the time?
The reality of this is that you cannot but with a bit of ingenuity you can shift it back in your favour by understanding more about how things are and time your visits with when they are most appreciated.
What we have is a proof of concept that discretely keeps an eye on the environment of your loved ones and records the information in the cloud.
Step 1: Prototype Wireless Networking With Raspberry Pi and Arduino
We had tinkered with Arduinos and sensors in the past and found that they work well but turning on a LED isn't really what we wanted. We wanted sensors to be capturing data and sending it elsewhere so we needed to go wireless.
A bit of research and we decided to investigate generic Bluetooth and RF24L01 components as well as the Ciseco uRF328. Basically it came down to the RF24L01 or the uRF328 and although I liked the RF24 and the work that has been going on at http://mysensors.org I felt it still had a little further to go in the support for mesh networks, where as the CISECO unit was advanced and hid the networky side of things from me. You effectively wrote to the serial port and the data appears as if by magic on any other units within range.
In the photos you can see us testing various scenarios involving Arduinos, Raspberry Pis and laptops. We managed with just a few stumbles to get all these talking to one another.
Step 2: Build Raspberry Pi Sensor Hub
We had one of the original Raspberry Pi B+ with a HD screen attached so we decided to use this as the central data point at my parents. This has one of the Ciseco units attached and received information from one or more senders, collates the data and then sends the information via a WIFI connection to the internet.
The application that does all this has been through a number of iterations, having been developed in Python, then PHP before settling on NODE.JS. The reason being that there was a closer replication and better compatibility when developing and testing on the laptop for final deployment on the Pi.
Step 3: Build Remote Sensor Node
The idea is that multiple sensor monitors can be place around the home and provide reading from multiple rooms.
For the prototype a generic Arduino sketch was developed that incorporates all the code for receiving values from the following sensors and that could be simply tweaked to activate the capturing of data for certain sensors.
- motion sensors
- distance sensor
- door/window openers
Step 4: Upload Sensor Data to Remote Server
For the proof of concept we opted to send data off to the consolidation service provided by InitialState.com. This software was originally designed for quality assurance testing so was not ideal for our purposes but proved how easy it was to capture data in the cloud and visually review the results from afar.
Step 5: The Result
So what we have is a home with 5 sensor monitors mounted in key rooms. Twenty four hours a day, seven days a week these a recording a variety of values about my parents home. I can see that they are warm enough, I know that they are up and about and if they have gone out. I don't know exactly what they are doing but I have an indication about how active they are.
InitialState provides a nice visual representation of the information captured and I just keep a quiet eye on them via my mobile phone and if things do not seem quite right then I can give them a call to see how things are or pop over in person.
In the future I could see the a mobile phone could do more than just be used for the phone call and viewing the information. Smart phones have all manner of sensors in them so why can't they also capture information at my parents house such as shock detection if they become small enough and can be carried 24/7