Final Summary “Forget What?” Project: An IOT based home automation system with a budget!: Part-1

forget me not

Acknowledgement

The author would like to thanks the sponsors Element14, Tektronix, Eclipse IOT, EnOcean, Raspberry Pi, Cadsoft for the tools, parts and budget. A special thanks to the community members for their inputs and suggestions as the project progressed and for providing inspiration as well as encouragement along the path.

Prelude

 

The Internet Of Things has really gained popularity in the recent years with the advent of the Arduino with ethernet Shield, Netduino plus, RPi, Beaglebone Black, RIOT board and the like. An IOT solution can be implemented in a multitude of ways using any one of the mentioned technologies. IOT applications have found their way into these but the real applications where IOT shines is where the use of connectivity and intelligent use of data is involved. With lots of data available on the internet, the major advantage is that we can have systems that employ rules that not only take local inputs into consideration but also data from the Internet. A good example is weather based systems. That having been said, there are many ways to do the same thing and the attempt here is to exlpore and learn as much as possible.

 

Introduction

 

The element14 design challenge, “Forget Me Not” was to my understanding, a challenge were IOT for the home was the subject. In keeping with this theme, a system was designed and implemented which could solve some of the small problems that are commonly faced at home. Element14, Raspberry Pi, EnOcean, OpenHAB, Tektronix and Eagle sponsored a budget and provided parts and tools to work with. The final implementation demonstrates how diverse technologies from various part of the technology world can come together and work in harmony. The result is an automation and control system which can be customized to suite the need of any home where sub-systems may or may not exist. In this brief document, the goals, system architecture, components and system implementation is described in brief. The objective of this document is to provide an overview of the project and highlight the points which make this project useful to both the end user as well as a developer/student.

 

The challenge was to design a system that does not let you forget some things that you normally do around the house. With that in mind EnOcean modules and OpenHAB and Raspberry pi would lay the foundation for this project. With these components, work was done to first explore and understand and then implement a solution that actually works. OpenHAB was a surprise and the power and flexibility is truly marvelous. A lot of individual testing was conducted to understand each component and the final result is a more tuned system which operates 24×7 in a house. In the next section, the goals of the project are discussed in brief.

 

Project Goals and problem statement

 

The forget me not challenge was aimed at solving the problem of things that we tend to forget. There are a lot of mini tasks that everyone performs everyday in the house and with time the regular tasks become a part of our routine and we seldom forget them. It is the not so regular tasks that get us. The tasks that we rush through. A good example was locking the door when you leave the house. There are multiple options to solving such a problem like using a “key only door lock” or even an electronic lock. However there are many things that we still need to do manually and we tend to forget them.

 

Goals:

My goals evolved as my understanding of OpenHAB and components grew and it was for the best. The objectives set out for this project were:

 

  •   To show how easy it is to use and customize OpenHAB. The flexibility of OpenHAB MUST be highlighted. Interfacing with Existing bindings, python, network based Arduino and a serial device show this.
  •   To demonstrate the ability of the EnOcean Modules to be customized as per application. The provided EOP 350 kit is awesome and shows how easily you can use the modules in your own appliance. It is a real IOT enabler.
  •   To solve a problem. These are the reason why the technologies survive and evolve.
    • To be reminded when we leave food outside the fridge
    • To monitor the LPG consumption, generate alerts when getting low and automatically order a new cylinder once empty.
    • To monitor the power consumption of an entire room. Save energy- save the planet.
    • To automatically control the Room lights and AC when away and switch it on for convenience before we come back home.
    • To watch the weather and connect a true IOT device.
    • To have a tele-presence in the house to monitor GrandPa when we really miss him.

 

To do all the above and create a better world.

 

System Block Diagram

 

Additionally an architecture was designed such that it demonstrates how easy it is to connect various available technologies from different vendors such that they work together. In order to create something new we need not start from scratch and the architecture highlights the use of various communication techniques.

forget me not.jpg

 

The image above shows the block diagram of the system implemented and shows each module that was to be implemented. Each module has a particular requirement or problem which it solves. These are discussed in brief here.

Modules – Functionality & Applications & Advantages

 

Module I. The waiting platform- Forget not anything outside the fridge.

 

Large pots of stew and boiled milk cannot be put in refrigerator immediately. They need to be cooled down and I have forgotten to put the milk back in the fridge on more than one occasion. This applies to any leftovers and things you took out of the fridge and need to put back in later. Now people set alarms and timers etc but when you get to bed or leave the house in a hurry, there is a nagging question at the back of your mind… Did I or didn’t I?

 

Functionality:Put something on the platform and after 20 Minutes you get an alarm and a notification on the android device (or Iphone). Take it off and the alarm shuts off. There is also a switch to make it snooze.

 

Application: Cool down food naturally before putting in the fridge. Saves energy in the Fridge and makes food last longer(I read that somewhere)

 

Module II. IOT Weighing Machine- Forget not to get a refill LPG cylinder

 

In India, we get cooking gas in the kitchen by the purchase of Liquid Petroleum Gas (LPG) Cylinders. These come by weight and once you exaust one, you place an order of the next. There is usually a waiting period of 5 to 10 days which means we almost always keep one spare. Unfortunately, in times of shortage this waiting time goes up as well and it is standard household practice to place orders for these in advance. The fuel is by weight and we can check if a cylinder is going low. This is also a problem with hotels etc as well. The question to be answered is “Does my Cylinder need refilling and how long is it still going to last?”

 

Functionality: Automatically measure and track changes in weight of items.

 

Application: Tracks Fuel usage. Prevents unnecessary last minute LPG panics . It can be used with barbecue bottles as well as other items which are measured by weight. Alternatively put it in the office chair and track your weight statistics.

 

Module III: IOT Current Sensor- Forget not any of the lights in the house.

 

This problem is the most common when leaving home, but sometimes we just don’t need to control a light or AC- That is accomplished some other way. We just need to know if we turned off EVERYTHING! So to answer this question, I propose the IOT Current Sensor. The concept is simple, using a non-invasive AC Current Sensor, we can determine whether current is being drawn on a particular wire or not. If there is a current draw, there must be an appliance left on. The sensor can be simply clipped onto a wire and you are done. This can measure the current consumption like a power meter and can let you know if any extra appliance is working without your knowledge.

 

Functionality:

Track power consumption of a particular area using a non-invasive current sensor which is wireless and clips on to the wiring.

 

Application:

Monitor power consumption and save where possible. Track down unnecessary appliances!

 

Module IV: IOT Appliance Monitor- Forget not the AirConditioner left On

 

There are lots of electrical appliances in the house which may be prone to being accidentally left on. One method is to use RF controlled sockets but this will not work for heavy electrical appliances like air conditioners. These are monitored by interfacing with the power LED of the device to an LDR making a clip-on Opto-Coupler which can be used in non-invasive ways with any existing appliance.

 

Functionality:

Monitor appliance activity by interfacing with the Power LED of a device

 

Application:

Saving Energy. Track unwanted appliance left on. Can also be used to track light levels in particular areas of the house OR in the backyard and then notify if it goes low (like if you left clothes to dry and now its night.)

 

Module V: IOT MET System- Dont forget anything outside

 

Weather forcasting is available but not perfect. Sometime the forecast predicts rain but there is none and we dry clothes outside here. A local meteorological system is required which can monitor the local weather. This can be used to no only generate alerts but also can be used to drive actuators for automatic retrieval of clothes lines.

 

Functionality:

A MET system that gives local weather information.

 

Application:

Alerts and automatic retrieval of clothes from outside.

 

Module VI: IOT windows – remember to close the windows

 

A simple problem of leaving windows open in bad weather is solved by applying sensor to the windows and creating alerts when a situation arises.

 

Functionality:

Track Open windows and alert during bad weather. Open them in the winters to naturally warm the house.

 

Application:

Safety and home maintenance. Possible Power savings.

 

Module VII : Arduino Ethernet based automatic light control- Automate the lights and Extend your reach

 

There are two problems that need to be tackled. The first is controlling lights automatically which means switching them off when user is absent. This is a common requirement for example working at the workbench some urgent issue arises elsewhere. An immediate departure from the workbench means that lights and possibly soldering station may be left on which may result in power wastage as well as threats due to unattended electrical appliances. The requirement is to automatically switch off the workbench when absence is detected and automatically resume it when presence is detected.

 

The second problem to be tackled here is that RF modules that run on batteries will typically have a limited range and hence may require an extender or perhaps a gateway. If not then long cables may need to be drawn to a point for RF reception.

 

Functionality:

The primary activity is to control electrical appliances while monitoring human presence in a location. The secondary activity is to operate as a gateway.

 

 

Application:

Power savings, safety and cost savings from power and cable saving.

 

Module VIII: Raspberry Pi Telepresence Rover: Forget what else.

No matter how many sensors you install in a house sometimes you just need to visually inspect a place to be sure. The problem with fixed cameras is that they are fixed! You have a limited field of view and there are just so many cameras that you can install. (Unless you live in a studio apartment) There is need for telepresence.

 

Functionality:

A robot with a camera that can be controlled over the internet.

 

Application:

Telepresence, Security, remote monitoring, grandpa monitoring.

 

Module IX: Switch control of appliance – The familiar way

 

All the automation system use touch switches and the like to be operated. The problems is that new users might feel uncomfortable with these. Hence it is required to create a familar interface for new system.

 

Functionality:

Use EnOcean Switches and interface with electrical appliance control.

 

Application:

Ergonomic control

 

Module X: Room Temperature Monitor – Don;t let it be too cold or hot

 

HVACs and modern day thermostats tend to control temperatures quite competently. The requirement is to track room temperatures where such devices are not installed and use natural methods like sunlight and air flow control temperatures.

 

Functionality:

Monitor temperatures in certain areas of the house.

 

Application:

Power savings, comfort control

 

Module XI: Audio notifier

 

Notification needs to be generated for events via audio and visual means. This can be done via phone as well but a well placed audio notifier works best. Think alarm clock.

 

Functionality:

Audio alerts generated on various system events

 

These modules are specified in the design. In addition, the system needs to generate notifications to the mobile device which require action as well as a clean dashboard where the entire data can be visualized. The theme is IOT and the system must connect to the internet.

 

This is taken as the problem statement. In the next section the architecture is discussed.

 

System Architecture

 

The system has been designed taking into consideration the capabilities of OpenHAB, EnOcean and other IOT enablers. The system needed to be flexible and showcases various test case scenarios for implementing a Home automation system or any IOT system. The capabilities can be extended very simply and the system can also be connected to existing systems like mesh networks for automatic control etc. The idea is to create not only a proof of concept but a functional system which really utilizes the sub-systems in an efficient manner.

 

Architecture Block Diagram

The architecture is based on the Raspberry Pi and OpenHAB and everything else fit around it. A block diagram for the same is given below. I tried to fit as much as possible in there but there are a few things missing.

Forget What.jpg

 

I have done a video to explain the system architecture and is available.

Video

 

 

As seen, every possible technology has been taken into consideration. The crux of the implementation is bindings and their use. No Java Code was used and still the system came together. The system brings together technologies such as serial, low frequency RF, high frequency RF, Ethernet, MQTT, rest, dweet and wifi. The implementation is discussed in later sections but the idea here was to demonstrate that system design is not limited by technology but enabled by it.

 

In addition to Internet-Of-Things, at concept of cloud has also become very popular. Services like pubnub and xively are few of the many companies which offer data aggregation and analysis online. Starting with a new IOT project, getting cloud space online may prove to be out of budget. Xively offers free developer access but there is a limit on the number of transaction any test device can make. The proposed architecture provides a different method of connecting to your IOT devices. Using eclipse foundation’s MQTT server, data is routed to a local instance of openhab which logs data to a mysql database. This gives total control to the user/developer and allows for quicker development.

 

Key features of the above architecture are:

 

  • Uses multiple technologies
  • modular design
  • local database
  • no recurring cost
  • Expandable and easily customizable

 

Implementation

 

The implementation evolved along with time and as new problems presented themselves, solutions were also devised which resulted in the architecture discussed in the previous section.

 

Project planning

Gantt charts are the preferred means of project control however with projects where innovation is a key requirement, it is always better to let things unfold with time. That having been said, a task list was created and is shown in the image below.

table.jpg

The above diagram highlights the major tasks executed during the design and build process. Each module is explained in the proceeding sections. A short list of technologies used is as follows:

  1. Raspberry Pi
  2. OpenHAB
  3. EnOcean Sensors and EnOcean Pi
  4. TekTronix Scopes
  5. Arduino and Arduino Ethernet Shields
  6. RPiSOC
  7. TI EZ430-CC2500 Kit
  8. TI CC3200 LaunchPad
  9. TI USB LaunchPad
  10. Voltage Reguators from Linear Technologies
  11. Current Sensor from Magnelab
  12. PiFaceCAD
  13. OpAmps from Linear Tech and Burr-Brown(TI)
  14. Wurth and TI Wireless Charging Solution
  15. Misc Parts

 

Most parts purchased from Element14.com’s exhaustive online website. Enclosures and building materials were ALL extracted from either scrap or item packaging. (Recycle as much as possible)

 

Raspberry Pi OpenHAB Center Piece

 

Hardware

 

The center of the implementation is an RPi running OpenHAB, MySQL server and a Mosquittoe broker. A PiFace CAD was also added to enable headless control and the EnOcean Pi was connected as well. USB powered speakers are added for notifications and the casing is made out of used cardboard box for a tripod. The objective was to keep it within a budget. The final center piece is shown in the picture below.

 

Blog1.jpg

The visual notification is done using a flashlight at the top of the box and projects to a desired location. The RPi B model was used because software testing had begun before the B+ arrived and the standard SDCARD cannot be used with the B+ model. The EnOcean Pi was attached using a 3 pin connector which was soldered to the Pi as shown below.

BxVBQwdCEAAMatQ.jpg

 

 

The PiFace CAD sits on top of the available header and system can be used either wired or with a wireless ethernet connection.

 

A USB battery pack is used to power the system due to frequent power outages.

 

Software

 

OpenHAB runs on the system and the final screen is shown below.

Screenshot_2014-10-19-14-44-04.png

There is also a menu Item to monitor the Raspberry Pi itself and currently the items are shown below.

 

2014-10-20 10.42.29.png

 

Systems are sorted by way of location and application. Each module is explained i brief in proceeding sections.

 

Blog Posts:

The software installation tutorials are available at the links:

IP Post 1: Getting Started. An OpenHAB Demo

IP Post 3: EnOcean Pi, Sensors and FHEM and the lost hours of sleep

IP Post 4: Obligatory Install Tutorial For RPi and OpenHAB

IP Post 5: Tutorial for Interfacing OpenHAB with EnOcean Pi

Other useful links are available in the references.

 

Waiting Platform

 

Hardware

The waiting platform is implemented using the EnOcean Contact sensor. It’s hardware is simply the EnOcean contact sensor mounted in a wooden frame with a spring. The functionality is entirely executed inside OpenHAB using the Rules engine. The magnet is press fit into the platform cap so that adjustments can be made with time as the spring sags. The final device is shown in the image below.

FMN.jpg

 

The construction material is entirely scrap wood and works well.

 

Software

 

The screenshots for the applications are shown below.

 

2014-10-19 10.30.27.png2014-10-19 10.30.52.png

The system indicates when the timer was started and the notification is sent via NMA.

 

2014-10-19 17.02.34.png

Blog Posts:

The details of implementation are given in the following blog posts

IP Post 10: My Story Of Persistence with persistence on OpenHAB. AND a tutorial on Rule and Timers

 

Appliance monitor

 

Hardware

The appliance monitor is implemented using the EnOcean STM330TRH sensor which has the capability to be interfaced with a Relative Humidity module. In this case, the RH sensor is replaced with an LDR and a resistor which can be used as a light sensor. This can be used to sense the light in the room but for the purpose of monitoring appliance activity the LDR can be made to face the “Power Indicator” LED of the appliance to be monitored. This is done as shown in image below.

 

IMG_9011.jpg

 

 

 

The sensor’s LDR is pointed towards the Power Indicator LED of the Air-Conditioner. This causes the Light level output to become high if the appliance is turned ON and low when switched OFF. A custom firmware was written for this action because the EnOcean Binding for OpenHAB did not support the SetPoint parameter at the time of working. A binding from a different author was used later and the sensor was reverted to the default firmware so that it can report light level as well as temperature and RH if required. The repository for the binding is available at the link below.

 

https://github.com/aleon-GmbH/aleoncean-openhab-binding

 

Software

The data is updated to OpenHAB and using rules, the light levels are converted into an Indication of whether the AC is ON or OFF. A screenshot below illustrates the same.

2014-10-14 09.22.44.png

 

The BEDROOM AC status and temperature is shown above. They are taken from the same sensor.

 

Blog Posts

Reference blog posts are:

IP post 9: EnOcean Programming: Blinking LED on the TCM330 : For minion Dave!

IOT Circus: The wireless ring master:  CC3200, MQTT, MSP430s, Serial and Hacking EnOcean

 

Current Monitor module

 

Hardware

The current sensor module employs a Split-Core AC Current Transformer Sensor from Magnelab (http://in.element14.com/magnelab/sct-0400-050/current-transformer-splitcore-50a/dp/1797760) and an Arduino Nano and a 433MHz AM Transmitter module. The prototype is shown in image below.

IMG_8967.jpg

 

The module runs on a 9V battery and transmits the Current Sensed after 30 Seconds. The design was made for an MSP430G2231 (http://in.element14.com/texas-instruments/msp430g2231in14/mcu-16bit-msp430-16mhz-dip-14/dp/1812192?Ntt=1812192)  and a PCB had been designed in CadSoftEagle. The Schematic and layout are shown below. Due to logistic issues many of these did not reach in time hence the Arduino based system was demonstrated. The same code can be used with the MSP430 via the Energia IDE.

eagle_Current_Schematic.png

 

eagle_Current_Board.png

Made with Cadsoft Eagle Professional thanks to our sponsor.

The data is transmitted and ultimately goes to OpenHAB where it is displayed, stored and charts are created.

 

Software

The system bounces data from an Arduino Nano to an RF module to another Arduino which re transmits it via MQTT over ethernet to (an access point and then to) the Raspberry Pi with the mosquittoe MQTT broker. The screenshot below shows the final output.

Screenshot_2014-10-19-17-17-50.png

Blog Posts

IOT Circus: The wireless ring master: CC3200, MQTT, MSP430s, Serial and Hacking EnOcean

A week of Mayhem

Arduino-IR-MQTT Module

 

For the implementation of a light control system for the workspace, an Arduino was chosen. The system communicates with the Raspberry Pi over MQTT via ethernet. The lights and soldering station is controlled using relays and presence of user is detected using PIR sensor. When user activates automatic mode, the light and soldering station turn on when the user is present and prolonged inactivity of the PIR sensor causes automatic deactivation of said appliances.

 

Hardware

The arduino Uno and Ethernet shield are available from the element14 website. Alternatively an Arduino Ethernet can be used as a single device. In addition to the arduino, a switching regulator circuit was used based on the LM2576-5.0. This was done so that while stepping down from 12V to 5V, the power dissipation could be reduced. Two relays were used to control light and soldering station sockets. Lastly a PIR sensor was used to detect human presence at the workbench. The arduino also connects to an RF AM receiver module which is used to retrieve current measurements from the previously described module and the data is communicated over MQTT. The hardware prototype is shown in image below.

 

IMG_8976.jpg

 

The second circuit is simply relays mounted near the AC switches. The rest of the module sits on top of the workbench and is shown in figure below.

IMG_8923.jpg

IMG_8969.jpg

 

Software

The arduino has no decision making capability. It sends all the data like PIR status, Current Data etc via MQTT broker. OpenHAB uses rules to trigger activities such as turning ON or OFF lights. This way delays are programmable via software rules. Actions can alsobe programmed such as creating notifications as a security system. The workspace has a dedicated frame as shown below.

workspace.png

 

Since there are equipment as well as components in the workspace, the temperature is also monitored. If it exceeds threshold values then alerts are generated as well. System can be switched to manual control where you can control each switch manually. This may be required for cases where user is moving around the workspace. Additionally EnOcean Rocker Switch is used to control the lights like a normal light for convenience.

 

IMG_9023.jpg

 

 

 

 

The rocker switch is placed conveniently in a corner of the desk for easy access hence it gets absorbed into the workflow easily. IR based appliance control was also experimented with but was removed due to the lack of a working air-conditioner. Reference blog posts show how that can be done easily.

 

Blogs

MQTT+Arduino+(Tektronix Scope and IR Remote + A little brain power)

 

 

IOT Weighing Machine Module

 

Hardware

The system measures weight of an object and transmits it over an RF link based on the CC2500 and MSP430. The system can run on a battery for a long time. The finished hardware is shown in the image below.

IMG_8911.jpg

 

The circuit is based on the MSP430 and INA125 Instrumentation Amplifier and a 50Kg load cell and is explained in detail in the blog post.

 

IOT Circus: The wireless ring master: CC3200, MQTT, MSP430s, Serial and Hacking EnOcean

 

The INA 125 is what is responsible for faithful reading of the LoadCell. The design of circuit is critical since very small noise gets amplified 100000 times which messes with the operation. Once tweaked, the system is able to consistently perform. The schematic is shown below.

ina125b.PNG

 

A MOSFET is used to switch off the wheatstone bridge when the module sleeps. The MSP430 and CC2500 was used from the EZ430-CC2500 kit available from element14.

 

Software

The data is received by a station MSP430 which is connected to the Raspberry Pi and the programmer board acts like a USB to serial converter. At the OpenHAB end, the Serial Binding is used to bring data into OpenHAB and rules are used to parse data into a number. The data as received by the station is shown in the screenshot below.

 

minicom.PNG

 

The above output is parsed using OpenHAB rules from a string to a floating point variable and is described as follows:

 

  1. rule “LoadCell”
  2.   when
  3.       Item loadCellString received update
  4.   then
  5.       var String temp = loadCellString.state.toString.trim
  6.       var int start= temp.indexOf(“:” ) + 1
  7.       var String temp2 = temp.substring(start, temp.indexOf( ‘mVolts’ ))
  8.       var Double loadCellValue = new Double(temp2)
  9.       loadcell.postUpdate(loadCellValue)
  10.       if(loadCellValue< 300 && loadCellAlarm== false){
  11.             loadCellAlarm= true ;
  12.             //NMA Rule here
  13.       }
  14.       if(loadCellValue> 500 ){
  15.             loadCellAlarm= false ;
  16.       }
  17. end

 

The result is shown in the image below.

2014-10-19 10.30.27.png

 

 

The reason why the measured value is in millivolts is because calibration was never done with this system. It is only required that a threshold value for empty cylinder weight be know and can be assigned in software. If the Load cell is changed, the calibration can be done in software.

 

 

Blogs:

IOT Circus: The wireless ring master: CC3200, MQTT, MSP430s, Serial and Hacking EnOcean

A week of Mayhem

Raspberry Pi Telepresence Robot

 

There is a need to visually inspect an area over the internet. For this a second Raspberry Pi with a Camera was used. The robot is connected over wireless ethernet and the interface is made available on the OpenHAB simply.

 

Hardware

The hardware consists of two motors, an L298 circuit, the RPiSoC, Raspberry Pi and RPi Cam. Additionally two batteries are used- one for the motors and one for the rover. There were plans to use Wireless charging so that it can be charged on the fly however due to separate batteries and insufficient time only the RPi Battery can be charged. This allows for the rover to act as a fixed camera as per need and convert immediately to mobile mode.

The prototype internals are shown in the images below. The base is a scrap casserole which was previously a household utensil.

IMG_8928.jpg

IMG_8929.jpg

In order for the system to be more user friendly, the enclosure has been modified cosmetically. The final result is shown below.

IMG_9027.jpg

 

 

IMG_9033.jpg

The raspberry Pi and everything else fits nicely inside. A tennis ball was cut in halves and used instead of ball casters reducing the cost of the robot even further.

 

Software

The mobile RPi has scripts running shich control the movements of the robot. All scripts are written in python to drive the robot. OpenHAB uses the exec bindings to remotely invoke these scripts and the binding is called using OpenHAB menus items. The entire system is very modular making customization easy. The OpenHAB screens aer shown below

 

Screenshot_2014-10-19-22-00-27.png

The above menus is only available when the Robot is available on the network.

Screenshot_2014-10-19-22-00-38.png

Screenshot_2014-10-19-22-01-03.png

 

Inside the camera submenu, the position of the camera can be changed. This above shot is when the robot is looking straight forward.

Screenshot_2014-10-19-22-01-24.png

The above screenshot is one where the rover is looking down. There are buttons in the GUI for this action

Screenshot_2014-10-19-22-01-44.png

 

The above screenshot is where the rover is looking upwards.Movement of the rover is controlled by the motion controls below the camera controls.

Each button triggers a remote script for the actions. A video demonstration will be posted in the next post.

 

Blog Posts:

 

MET System Module

 

In order to take weather measurements, a TI CC3200 based sub system was deployed which communicates over the internet.

 

Hardware

The hardware consists of a CC3200 Launchpad which connects to a wireless access point and connects to the internet. It is powered by a fuel booster pack. A sensor module was build but was destroyed during bad weather and hence it had to be replaced. Instead, a MSP430F5529 USB launchpad is used to simulate a weather station. The code was written in both CCS as well as Energia and the output is the same as per weather station available at the Sparkfun Website.

 

[HW]IMG_9036.jpg

 

Software

The CC3200 runs a MQTT Client which talks to tcp://iot.eclipse.org:1883 which is an MQTT Broker. The OpenHAB MQTT binding is used to read the updates and these are updated on the display. The OpenHAB menus are shown below.

Screenshot_2014-10-20-00-02-06.png

Blogs:

Forget_What: A MET System update: Experiments with PAHO

 

Online Dashboard

 

There are three ways to access the data from OpenHAB from the internet. Each is described in brief:

 

Freeboard.io

This came late to the design but the requirement was to display all the data online so that it can be visually inspected at a glance. The initial idea was to use the REST API to put the data on a single page but freeboard.io proves to be a better solution. The board of this project is live at https://freeboard.io/board/qeRlqA A screenshot is given below

snap.png

 

Notify My Android

This is basically a notification service which sends push notifications to the Android device. A screenshot below shows how it looks on the Android Device.

2014-10-19 17.02.34.png

The implementation is simple and free of cost for 5 messages per account per day.

 

My OpenHAB

The last type of remote access used is my.OpenHAB which is a service currently in testing and used to access the entire system remotely. The OpenHAB app is available from the android store at

https://play.google.com/store/apps/details?id=org.openhab.habdroid&hl=en

And from ITunes at

https://itunes.apple.com/in/app/openhab/id492054521?mt=8

 

The system screenshot is given below

2014-10-20 10.40.34.png

 

Conclusion

 

The project objectives were fulfilled within budget and the system runs without intervention. Even though there are no professional Enclosures, the system is still very competent and dependable. OpenHAB proves to be a very flexible solution for not only home automation but as a center piece for ANY IOT project. JAVA code was not used for development and demonstrates that alternative routes may be followed due to the flexible architecture of OpenHAB. This project scratches the surface of OpenHAB and the possibilities are endless. EnOcean Sensors are magnificent devices and can be customized according to requirement. The Energy Harvesting capability makes them ideal for the future where energy conservation and optimum use will be needed.

The architecture and implementation demonstrate the budget friendliness of Home Automation Systems and with the large repository of part in the element14, the only limit is the designer’s imagination. Some of the common problems faced by Indian house holds were isolated and solutions established. The designed system though made to appear as a prototype is actually a long term system. The Raspberry Pi proves itself by running 24×7 not only the OpenHAB system but also the MySQL server and Mosquittoe Broker and Samba Network Share.

The use of such a variety of technologies in the implementation proves that almost any kind of existing system can be merged with OpenHAB, RPi and the provided system may also be used as a reference design for future implementations.

 

Future Work

 

The system evolves as the developer’s understanding of the system does. In the future new modules willbe added and the system will continue to grow. There are experiments with RF systems an custom protocols are planned.

References:

 

1. OpenHAB website: http://www.openhab.org/gettingstarted.html

2. Exec binding: https://github.com/openhab/openhab/wiki/Exec-Binding

4. Persistence (general): https://github.com/openhab/openhab/wiki/Persistence

5. Persistence (MySQL): https://github.com/openhab/openhab/wiki/MySQL-Persistence

6. Serial binding: https://github.com/openhab/openhab/wiki/Serial-Binding

7. Security: https://github.com/openhab/openhab/wiki/Security

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s