Long title and a large degree of entropy? Nah! This is a system that was built in layers but the components are largely used and fairly niche in their use. I've just decided that I'd use them to provide something even more niche, an alarm zone announcer for my house. Sounds cool to you then keep on reader, otherwise go back to your other boring business reading materials...
This all started when my wife and I decided to buy our "forever" home. A wonderful home on a bit of land in the city where our families lived, thus, the "forever" home label. The problem with our forever home is that it's a 2 and 1/2 story home and I'm always concerned with security, mainly the security of my family while we are home. I could really care less about someone stealing my junk as long as my family is safe. I wanted a way to ensure we would be aware if someone entered our home while we were home, awake or sleeping.
Long story short, I purchase a DSC Powerseries PC1864 system and the wireless sensors to put on each door and window. After we moved in and I got the system operational I realized the hectic process of leaving each morning would likely result in the alarm not getting armed so I sought out a way to remotely view and control it. I found the Envisalink3 card for my system. Nice little tool but the software is massively lacking in both features and security (no SSL for goodness sakes). That led me to the DSCServer software written for Android and Linux by MikeP. Great product and was the last piece to the puzzle for me....
Well, that was until I noticed my in-laws ADT system had a cool feature which would verbalize the zones that get opened...I loved that so much more than the beep...beep...beep my system made when a door was opened while the alarm was disarmed. Searching the interwebs left me empty, nothing was available to plug into my security system to give me that same awesome feature, I guess I'd have to roll my own. That's where my SONOS system (a total of 5 speakers) comes into play, it's got a wonderful full-featured API and it only took a few minutes to find a full-featured PHP library to control my system.
I leveraged the same raspberry pi that I was using for DSCServer to run apache2 and fixed up a nice PHP page which would announce which zone was opened based on a query string parameter passed to it. I then added an action for each zone in DSCServer to call the URL with the correct query string value for each zone. Volia! My SONOS speakers will quickly pause, a nice British lady will announce which zone was opened, and then the speaker goes back to whatever it was doing before the announcement.
I'm hard to please and this solution while dependent on layers of technology, works exceedingly well. There is a 2-4 second delay in the announcement which I'm strongly suspecting is the lack of power on my Raspberry Pi running DSCServer. I'm going to upgrade it to a Raspberry Pi 2 and see if I can reduce the lag time some. Otherwise, this project is complete.
As always, I believe knowledge should be free and freely shared. The PHP page I wrote is attached to this post for all to use. I've also linked below to the components I used (I'm not endorsing any retailer, it's just where I purchased).
Last week I finally received my two new shiny blink(1) mk2 USB RGB "things"; these were rewards for helping fund the KickStarter project from ThingM. The mk2 is the second generation and even cooler version of thier RGB blink(1) devices. They are hackable USB powered indicators and I had a project in mind for one my mine which I jumped on right away. I wanted a way to indicate to cube mates when I was on the phone and shouldn't be disturbed (folks are always interrupting as they can't tell I'm on the phone before they barge in asking questions, awkward for all involved really). These blink(1) devices are the perfect fit for such a problem. I taped one up on my monitor, fired up Visual Studio and build myself a quick system tray applcation that will allow me to change the indicator color with a single click. The application also automatically switches the indicator when it detects I'm idle for 5 minutes. As soon as I interact with my computer again, the indicator automatically switches the indicator back. Super quick project and couldn't have been possible without the .Net library for the blink(1) by Jean-Francois Talbot and the great hardware from ThingM. As always source code is below and I've even recorded a quick video of the system working. Now to find a project for the other blink(1).....
In my last post I talked about an issue my company had. We couldn't monitor our paging infrastructure from end-to-end and we couldn't find anybody selling anything that could. Before folks start yapping about pagers, you will see them in the healthcare sector for many more years to come when it comes to contacting a doctor for a life safety issue (cardiac arrest, etc) there is nothing currently sold that is as reliable and timely in the crowded RF world of a hospital.
I had built a prototype monitoring system using one of our pagers and an Arduino paired with a Windows Service. Well, it works and it works wonderfully so I was asked to build three more. Using multiple devices ensures we don't get false positives regarding a system outage due to the device or computer failing.
I've long been a fan of Adafruit and they were my first choice when I had my company order the parts needed to build out the rest of the monitoring devices. I leveraged the Arduino enclosure and the protoshield they sell and everything worked out wonderfully. I must say for a home-built gadget, they look pretty darn good and they perform wonderfully.
My apologizes for the quality of the pictures, had to use the cell....
I've slowly been able to expand my home lab to include the type of equipment that allows me to continually improve my technical skills as well as experiment with home automation and DIY electronics. As my home lab has grown so has the need to ensure it's kept healthy. One way to ensure it stays healthy is to make sure it's got a nice comfortable habitat in which to work and live.
My first feeble attempt to monitor the environment where I keep my server rack was to buy a cheap-o temp and humidity meter from eBay. It worked in so much as I could tell what the temperature and humidity was if I bothered to go down to the basement and look. I'm lazy, heck I have IP KVMs so I don't have to go downstairs to reboot a server, I'm not going to go down there to check the environmental conditions. Something better had to be implemented....
I started looking for environmental monitors/sensors on eBay thinking I could pick something up cheap from one of the numerous companies that sell used computer equipment. Data centers are always upgrading such things and I was confident I'd get something to meet my needs for less than $100USD. Wow, I was ever so wrong. I found some things around the $100USD range but they typically required other pieces or sensors that costs as much or more. This was starting to suck.
Not sure why it took so long, but I finally remembered I had purchased a temperature and humidity sensor from AdaFruit.com many months back for a project I hadn't completed. I also remembered I had an Ethernet shield and I always have a few Arduinos on hand. I had struck gold, I'll build my on networked environmental sensor and I can do it for FREE (as I already owned all the pieces).
Thanks to AdaFruit.com's learning site, I was able to get my DHT22 temperature and humidity sensor working in just a few minutes but I needed some way to get to the data remotely over the network. I hooked up my Ethernet shield and started messing about with building a HTTP client and after a bit realized there had to be someone who had done this already. I found this article which leveraged the Ethernet shield to log the data to a cloud service which had a nice user interface for making sense of the data points I was capturing. Exosite was going to be a great, no fantastic solution! I downloaded the Arduino library for Exosite and I was done in about 30 minutes.
This is why I love Arduinos and the community of Arduino users. I was able to build an environmental sensor that was networked, captured historical data points and even has alerting features (via email) in about an hour and for about $75USD in parts.
Check out my Exosite portal here.
Now I've just got find a nice way to mount this in my rack and add a display for local viewing of the temperature and humidity for those times I actually am standing in front of the rack. But I'll save that for another post....
My example code and high resolution pictures can be downloaded below.
I've had many a project lately that needed to use batteries rather than being powered from the mains. I've been reading lots lately about saving power in AVR chips and general concepts for power conservation in my projects. It's made me a better engineer in general and I think all my future projects will benefit from the knowledge regardless of their power source. During all my research I did stumble upon this article that I thought would be useful to the masses and thought I'd share it with everyone.
I finally got my shipment of Raspberry Pis today and I am stoked! I didn't pay the crazy prices on eBay and so I now have a $36 computer. I've allocated both of my PIs as XBMC boxes to power my basement and living room TVs. I had been running a BoxeeBox and while I initially loved it, I've grown to HATE it. They should rename it "FlakeyBox"; a $200 box of crap.
Anyhow, I spent about 30 minutes working on it and I have my first Pi up and running and streaming 1080 video to my TV without issue. If you are in the market for a Pi allow me to suggest Adafruit. If you want information on how you too can use a Raspberry Pi as a media center, check this site out. There are several different firmwares available for XBMC but I've settled on Raspbmc for now, it's fast enough for daily use and seems very stable.
Make sure you use a powered USB hub and pick up one of these power supplies for your PI, otherwise it'll be very unstable. I learned this the hard way. These power supplies from AdaFruit supply 5.25V to the PI which helps with it's rather shoddy power design which will allow the board to become under powered and reset.