Previous Posts:
Epidode 1: Forget Me Not: Application
Episode 2: Forget Me Not: The Best Laid Plans ...
Episode 3: Forget Me Not: Setup EnOcean with openHAB
Episode 4: Forget Me Not: Medication System
Episode 5A: Forget Me Not: Using Notify My Android with OpenHab
Episode 6: Forget Me Not: Plant Watering System Design
Episode 7: Forget Me Not: Medication System Demo
Episode 8: Forget Me Not: Using Twitter
Episode 9: Forget Me Not: Sunshine, Lollipops, and Rainbows
Episode 10: Forget Me Not: It's so hot!
Forget Me Not: Episode 11A: Watering System Construction
Forget Me Not: Episode 11B - Soil Sensor Design
Forget Me Not: Episode 12: An Update
Forget Me Not: Episode 13: Watering System Finalization
Forget Me Not: Episode 14 - Nearing the End
Introduction
Well, it's been a time-packed 12 weeks and the blogs have been steaming ahead even unto the last days of the challenge. My initial project was to design and construct a home automation system to control the following:
- Plant Watering
- Air Conditioning
- Medication Reminding
I began this project by revealing my project to the other challengers and anyone willing to read my blogposts. I wanted an open project so that everyone could benefit from what I was learning. I'm grateful to the other challengers who revealed many parts of their own projects as well, because I was a direct beneficiary. After this I decided to, as with all engineering projects, construct a Gantt Chart or timeline for my project (reproduced in Figure 1).
Figure 1: PAM project timeline.
In hindsight, my plan was susceptible to procurement delays. I planned for a procurement time of approximately 2 weeks, but it was more like a month. Also, I ended up splitting my procurement into two steps. Why, dare you ask? I moved to California from Eastern Canada in June 2013, and I had no means to work on projects at home. I used a good portion of the $500 budget to make a home lab. The second procurement was more of a "oh, I forgot that, better order one" order. Unfortunately I placed it too late for it to be of use in this design challenge. C'est la vie, oui?
Medication System
While waiting for my order, I began working on my medication reminder system. I already had an EnOcean Pi kit from a previous RoadTest I conducted, whereby I used the kit to monitor heat loss from a refrigerator (Part 1, Part 2). This served as a good introduction to the OpenHAB system and allowed me to learn and blog about setting up EnOcean sensors with OpenHAB. The medication reminder system works using EnOcean's Rocker Switch. It's simple, you take the medication and press the switch. If you try to leave the house without having taken the medication a speaker connected to the system plays "Take Medication" in a very familiar synthetic voice. If you don't leave the home by 10 AM, notifications are played every fifteen minutes until you take the medication. I blogged about the system and recorded a video demonstrating it. I also added functionality to notify my Android device with a "Take Medication" reminder through NMA (Notify My Android). The video wouldn't embed in this blogpost for what reason I am unsure, so here is a link to it. Note, a magnetic contact sensor gets mounted on the front door of a home, or whatever door you leave through in the morning; this is how OpenHAB knows you are leaving. While I was waiting for parts, I also implemented the astro and twitter bindings in OpenHAB. Astro could be used with my air conditioning system to preemptively turn on the air conditioner when the sun is facing my patio door, and Twitter can update me of my home's automation status on older Android devices that cannot run the OpenHAB app. Alternatively, you can use a web interface on those older devices as well.
Plant Watering System
The plant watering portion required parts, so I designed the entire system and during that process my initial parts arrived. For the pump controller I did a detailed analysis of heat transfer from a linear regulator. I intended for that post to be a tutorial for beginners trying to understand thermal considerations of regulator design. Figure 2 shows the schematic for the plant watering system and Figure 3 shows the constructed system. Note, there is an added 10k pull-down on the PUMP signal. This ensures the pump is not active during reboots of the Raspberry Pi.
Figure 2: Plant watering schematic.
Figure 3: Constructed, functioning plant watering system.
The constructed system uses a soil sensor that was created using a simple resistive divider, but I spent an entire blogpost showing a step-by-step linearization of the typical soil sensor used by hobbyists. I used a resistive divider because I didn't have the parts to create the sensor yet. The resistive divider is non-linear, and the typical hobbyist sensor has a very poor dynamic range (less than 1). I designed a sensor with a dynamic range equal to the ratio of the resistance of dry soil to wet soil. This was 4 in my case. The system is currently installed on my patio, and until I manage to find the appropriate watering thresholds it is over-watering my basil.
Air Conditioning Switcher
Finally, I designed my air conditioning switcher, but can not construct it until my parts arrive. Figure 4 shows the schematic for the solenoid drivers. I use a double solenoid system to move the switch on my air conditioning interface. Note, I live in an apartment and cannot modify the unit. Magnetic contact switches on all the windows and patio door can be viewed from the OpenHAB interface. This allows the user, at a glance, to know whether or not they can turn the air conditioner on.
Figure 4: Solenoid drivers for air conditioning switch.
Figure 5 shows the board I made to hold the solenoids. The travel of the two plungers can be modified by sliding one solenoid through two slots cut on the back of the board. I tested the solenoid switcher using a power supply and it works, but I need to interface it to a Raspberry Pi and use the GPIO to control the solenoid drivers.
Figure 5: Solenoid based AC switcher.
Concluding Remarks
Phew, that's a mouthful. If you made it this far congratulations. As I mentioned in my last blog post, my goal for this design challenge was to learn, and learn I did! I have provided links to the material from my blogging over the course of this project. I only reproduced the pictures and figures I thought would enhance this summary. Good luck to all of the competitors!