I have managed to pull everything together and have put the system into final testing mode. As of today, the whole system is functional and I am in debugging mode. It will run 24x7 like a good system should and it will be used to tackle our problems in real life. The PCBs have still not arrived and so I am running circuits in prototype mode. They look a bit messy but they work! The only module that is in 'Proof-Of-Concept' mode is the MET system because the one I made was blown off the roof a week back or stolen or something... I really do not know. I will be placing an order for a MET system from SparkFun Electronics when possible but till then, I have fashioned a small 'Weather Simulator' which I will document later. I also need to post separately on the RPi Rover and RPiSoC which are in use as of right now. The delay in documentation is attributed to my ill health and will be completed shortly. In this post I will go through the entire system in brief. Here goes.
Current System Design
The system as of right now looks like this.
A short list of technologies used is as follows:
- Raspberry Pi
- EnOcean Sensors and EnOcean Pi
- TekTronix Scopes
- Arduino and Arduino Ethernet Shields
- TI EZ430-CC2500 Kit
- TI CC3200 LaunchPad
- TI USB LaunchPad
- Voltage Reguators from Linear Technologies
- Current Sensor from Magnelab
- OpAmps from Linear Tech and Burr-Brown(TI)
- Wurth and TI Wireless Charging Solution
- 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)
My task list was as follows:
I will explain each piece in brief
RPi and OpenHAB
The center piece is the RPi which has OpenHAB running on it. Additionally, I am running Mosquittoe and some bash and Python scripts running for some things. I wanted it to be compact and preferred a headless system so I used the PiFaceCAD and made startup and shutdown scripts for the OS as well as OpenHAB. I soldered the Enocean Pi via 4 wires to the RPi itself and it works just fine. The casing is a long story and well I will post pics at the end of the competition. I tested and am using the following bindings:
- EnOcean (Duh!)
The system can be accessed via my tablet and phone from anywhere in the world. The system acts like a data aggregator which prevents local data to be un-necessarily be routed over the internet. This just might save the internet world if there are 50billion of theses
In addition to the EnOcean Pi, I have the EZ430 unit connected via USB. Thats it. The rest happens elsewhere. Oh! One last thing- I have USB Powered Speakers connected. I could have bought a Class D amplifier and I also could have made the CKT myself but it seemed counter productive so I just used bought outs- the cheapest ones I could find.
The Waiting Platform
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. Snooze? Yea we have a switch
This is pretty simple and used a contact sensor from EnOcean on a wooden frame I made. It talks to OpenHAB where I use rules to implement the functionality. I used timers and rules and the code was presented in one of my previous posts. I also used an EnOcean Rocker switch to implement a snooze button which sleeps the alarm for 5 minutes.
Cool down food naturally before putting in the fridge. Saves energy in the Fridge and makes food last longer(I read that somewhere)
IOT Weighing Machine
Plots weight of LPG cylinder and alerts before going empty.
The circuit is built around the TI EZ430-CC2500 and transmits to OpenHAB. OpenHAB does the rest! Graphs, alarms etc
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.
Health application? I just might put it in my office chair to measure my weight stats!
Monitors particular electrical appliance for ON OFF state. Did you leave the AC ON?
I modified the EnOcean Temperature Sensor to read ADC values from an external circuit and just added an LDR and a resistor for the divider network. Now it transmits analog values depending on how much light is falling on the LDR. Then I pointed the LDR towards the ON indicator of ANY appliance eg. Air-Conditioner, Washing Machine, Room Light, Soldering Iron or cloth iron. I want to make it kind of a clip on but am using silly putty right now to "Stick" the LDR on place. Works on ANY APPLIANCE with an ON indicator
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.)
Monitors power levels of an appliance OR an entire section of the house OR the WHOLE HOUSE!
I use and Magnelab current sensor which can sense upto 50Amps. Just clip it on. It runs on a 9V battery and has an arduino nano with an AM RF module. It transmits current data but can also send power data which can also be calculated locally. (Will be upgrading to an MSP430 when my PCB arrives) Everything else happens in OpenHAB
Monitor power consumption and save where possible. Track down unnecessary appliances!
Arduino MQTT Control
Interfaces PIR sensor to OpenHAB as well as operates relays for controlling lights. ALSO acts as a RF receiver to get Current Sensor Data and sends to OpenHAB via MQTT
The PIR sensor senses presence and transmits it to OpenHAB. Using rules, I can set when lights are turned ON and OFF
Power Saving. Switch Off lights during day and when I leave the workbench. I also plan to integrate the Workbench power so EVERYTHING is switched off 20 minutes after no activity is detected at the workbench.
Redundancy: Since I use an Arduino, every shield will work here and data is communicated to OpenHAB via MQTT which means I can now have OpenHAB distributed across multiple machines for redundancy.
A robot that can be controlled over OpenHAB!
I used the RPiSoC to control motors for movement and servo. Rpi Camera is used to transmit video to OpenHAB. There is a lag but I have made it usable and everyone loves playing with it. Oh and one important ting
Will post a video soon.
I am working on a dedicated app in C which will have much better performance. ALSO I am planning to use OpenCV to make the rover move automatically towards charging port when disconnected.
Remote monitoring: No more fixed cameras. Roam around your house remotely and see everything over the internet. Charges wirelessly.
Monitors weather conditions wirelessly for easy installation.
I use the CC3200 to transmit weather info to an online data logging system. Right now I am connecting to iot.Eclipse.org 's MQTT service and using OpenHAB to get data from here. This way the system can be at the top of say a hotel building connected via wifi.
Local Weather monitoring and BETTER local weather prediction. We can use the local data and correlate with online data to get better and more accuracy weather info. This can be used to plan outdoor activities as well as alert and control local things.(like windows left Open in the storms and clothes left out to dry)
Simply detect window status and generate alarms if left open in bad weather.
I have finished the above and have moved to final testing. I am resolving issues as they arise and moving to improve where I can. Its come down to fiddling with OpenHAB rules and stuff.
I am also looking at cloud based services for storing and analyzing data. My next project is an RPi based media center for which I need an I2S sound card which will have to wait. I will be building a database to store data on myself and habbits so that I can make the system evolve for me.
Will be posting the final report and presentation soon.(This is just a weekly update )
Wish me luck.