Content-type: text/html Set-Cookie: cookiehash=D8TIX1F9GET8DML97LCWDC1UDL31CF7Q; expires=Mon, 21 Feb 2022 00:00:00 GMT; path=/; domain=.drivemeinsane.com
Previous Entry.. Next Entry.. |
July 12, 2012 11:08
#9. Adding the Doorbell
Jump back to June 1998. I've had a webcam for almost a year now, along with a local webserver. I've also become skilled at programming simple socket programs on linux. As webcams greatly interested me then, I sought out other webcam sites. The really interesting ones (to me at least) were the ones that had an interactive component to it. One had a model railroad you could control, another had a controllable lamp, one even had a little robot you could drive around a maze. As you might guess, a lot of this stuff inspired me in future projects. There was also a site called Icepick. While I don't recall anything on his site at the time being interactive from the web, a lot of the home's typical functions were logged. He had a barcode scanner to track grocery consumption, monitored and recorded the cat's eating habits, and kept a datestamped log of when the doorbell was rung. For some reason, I latched onto the latter option, possibly because it seemed relatively simple to implement.
The simplicity of the project relied on a simple, ancient, and quite obsolete computer port: the joystick port. The interface of the port was exceedingly simple. Four "button" ports, and 4 resistive ports. All you have to do is hook a switch to the button port. Reading a value in memory will indicate if the switch is open or closed. That's it. No complicated electronics neceesary. Just a single component. To step this up a notch and interface the doorbell to the game port just required the use of a relay wired parallel to the doorbell chime, and when the doorbell was rung, the relay would close, and a program constantly polling the joystick port would notice the button press and trigger an event. This program, running on a 486 with the joystick port, would initiate a socket connection to another program running on the webserver, which would then append the event into a logfile, which could then be accessed from a webpage. The total time on the project, from inception to implementation, took me about 8 hours, and most of that time was spent finding an AC relay and running wires from the doorbell to the computer.
For some reason, the first response everyone had to my mentioning my success at getting the doorbell connected to the website, was that they expected to be able to ring it. That has never been an option, but I did make some further refinements. A year or so later, I added a cam looking out my front door, and I updated the logging program to snap a few pictures from this cam anytime someone rang the doorbell, so now we had both a visual and timestamp log of the event. I later added a motion sensor to the front door, and had the same logging/picture taking event triggered by it.
Alas, this is not a feature that survived my moving from the house in Plano. First off, even upon getting settled here, I don't have a suitable doorbell on this house that I can interface with. Secondly, if you think game ports were obsolete back in 1998, they're beyond dead and buried now. I could use the parallel port to monitor the doorbell event, but even those are getting hard to come by on new equipment, and it's next to impossible to get more than one native parallel port per machine on a computer that's less than 10 years old. There are usb parallel ports available, they're cheap, and you can add a practically unlimited number of them on a single computer. The problem is, they have been designed to work with printers, and only printers, and don't have much device support for any other activity. I therefore need to create circuits to interface with the doorbell (or more commonly the lamps) to act like a printer. Another issue is a logistical one with regards of how to install a cam to properly monitor the front porch. The house in plano was easy in that there was a small window in the front door right at face level. The cam was installed inside the house, looking out. I had no concern about environmental issues or tampering, and the computer with the capture card for that cam sat right next to the door, so I didnt' have to have any extensive wiring projects to make it happen. To make matters more complicated, l live across the street from an elementary school. While there is technically nothing illegal about pointing a public webcam at a school or the kids that inhabit it, there is the great potential to generate a huge amount of controversy the second that one of the parents discovers it, especially if one of their children end up immortalized on a popular website without their consent. Therefore, any cam I install that monitors the porch also has to NOT monitor anything past the front yard. While there is an option, it would require the cam to be mounted outside, hence the earlier concerns about weather and tampering.
Regardless, this is a feature I've continued to think about. Once its set up, it's maintenance free, it automatically generates new content for the site, and it's another static feature that keeps people entertained.