Smarter Gadgets
Wednesday, August 11, 2010
Password Manager
I've been unhappy with the state of the art for password mangers for a while now, so I decided to write one that works right. Interested? You can find it here .
Demo
Monday, December 28, 2009
Smart Parking Meter
At school I park in a lot that has coin parking meters and I find that using them is a pain. I came up with the idea of a parking meter that can be paid via Internet enabled phones by simply scanning a QR Code. I was lucky to find two other classmates that liked the idea and we implemented a proof of concept as a project in one of the classes I took this semester. I worked on the application for the Android phone and the initial RESTful API design.
Presentation
Final Report
Presentation
Final Report
Saturday, July 4, 2009
Optimal HVAC Control
This post is about my first attempt to make use of wireless temperature sensors installed in my house to control the HVAC for more comfort and better energy usage. Here is how it works:
I have installed 3 temperature sensors, one on the first floor, and two on the second floor (one in the master bedroom and one in my home office). Each sensor publishes updates to a Topic, similar with this http://cloudutilsj.appspot.com/topic/c7ba6e1b6c849d37.
Then I have created a Google Spreadsheet where I listed all rooms that have temperature sensors, the public URIs of the sensors, the target temperatures for those rooms and the schedule. This way I can easily express the fact that different rooms need to be comfortable only between certain hours of the day. In the past, achieving comfortable temperature in my home office for example was difficult because the thermostat was on the first floor thus unaware of the actual temperature in the office for optimal control. Not anymore.
Once I had this in place I published the Spreadsheet as CSV and I created a program that reads the published CSV and adjusts the thermostat for optimal control. Beautiful!
Now I'm looking for controllable floor vent registers, but so far I could not find any. If you are aware of such a product please drop me a line at contact at smartergadgetsstore.com. My goal is to have the vents monitor the spreadsheet as well and only blow air into the rooms that are "active" at a certain time.
I have installed 3 temperature sensors, one on the first floor, and two on the second floor (one in the master bedroom and one in my home office). Each sensor publishes updates to a Topic, similar with this http://cloudutilsj.appspot.com/topic/c7ba6e1b6c849d37.
Then I have created a Google Spreadsheet where I listed all rooms that have temperature sensors, the public URIs of the sensors, the target temperatures for those rooms and the schedule. This way I can easily express the fact that different rooms need to be comfortable only between certain hours of the day. In the past, achieving comfortable temperature in my home office for example was difficult because the thermostat was on the first floor thus unaware of the actual temperature in the office for optimal control. Not anymore.
Once I had this in place I published the Spreadsheet as CSV and I created a program that reads the published CSV and adjusts the thermostat for optimal control. Beautiful!
Now I'm looking for controllable floor vent registers, but so far I could not find any. If you are aware of such a product please drop me a line at contact at smartergadgetsstore.com. My goal is to have the vents monitor the spreadsheet as well and only blow air into the rooms that are "active" at a certain time.
Saturday, June 27, 2009
Wireless Sensors
For some time I've been interested in creating mashups with sensor data and something like Yahoo Pipes. This post describes the solution I created for data acquisition, which consists of Wireless Sensors and Wireless to Ethernet Bridges. Feature posts will be about applications that use this infrastructure to create interesting sensor data mashups.
The diagram bellow shows the solution architecture.
Using the Google App Engine I created a Java/Groovy application that provides a Whiteboard for sensors to post messages and to register for notifications about new messages from other sensors. The Whiteboard is made up of Topics, and each Topic has a Public Key and a Private Key. The Private Key controls write access to a Topic, and the Public Key controls the read access to a Topic (typically each sensor has a Private Key that it uses to publish data and zero or more Public Keys that it uses to read data created by other sensors) .
New message can be posted on a Topic by sending an HTTP POST request to the Topic Uri (i.e.http://cloudutilsj.appspot.com/topic/PRIVATE_KEY). After a message has been posted it can be retrieved by interested clients using the Public Key, this URI for example http://cloudutilsj.appspot.com/topic/c7ba6e1b6c849d37 returns XML representing the data published by a temperature sensor installed in my garage.
The API also allows access to the history of a Topic by appending the version number after the public uri, this for example http://cloudutilsj.appspot.com/topic/c7ba6e1b6c849d37/5868 will return the reading with version 5868 on the topic.
Bellow are some screenshots with the Wireless Sensor Boards I built. Each sensor board is made of 2 smaller boards: one has the microcontroller and it is connected to temperature, humidity or other types of sensors and the other one is the radio interface (I built these with nRF24L01+). The reason I separated them like this is extensibility: I can build new types of sensor boards or change the microcontroller and I will be able to reuse the same radio interface.
The Wireless to Ethernet Bridges receive messages from the Wireless Sensor Boards, format the messages as JSON and then they update using HTTP POST the Topic specified by each sensor.
The diagram bellow shows the solution architecture.
Using the Google App Engine I created a Java/Groovy application that provides a Whiteboard for sensors to post messages and to register for notifications about new messages from other sensors. The Whiteboard is made up of Topics, and each Topic has a Public Key and a Private Key. The Private Key controls write access to a Topic, and the Public Key controls the read access to a Topic (typically each sensor has a Private Key that it uses to publish data and zero or more Public Keys that it uses to read data created by other sensors) .
New message can be posted on a Topic by sending an HTTP POST request to the Topic Uri (i.e.http://cloudutilsj.appspot.com/topic/PRIVATE_KEY). After a message has been posted it can be retrieved by interested clients using the Public Key, this URI for example http://cloudutilsj.appspot.com/topic/c7ba6e1b6c849d37 returns XML representing the data published by a temperature sensor installed in my garage.
The API also allows access to the history of a Topic by appending the version number after the public uri, this for example http://cloudutilsj.appspot.com/topic/c7ba6e1b6c849d37/5868 will return the reading with version 5868 on the topic.
Bellow are some screenshots with the Wireless Sensor Boards I built. Each sensor board is made of 2 smaller boards: one has the microcontroller and it is connected to temperature, humidity or other types of sensors and the other one is the radio interface (I built these with nRF24L01+). The reason I separated them like this is extensibility: I can build new types of sensor boards or change the microcontroller and I will be able to reuse the same radio interface.
The Wireless to Ethernet Bridges receive messages from the Wireless Sensor Boards, format the messages as JSON and then they update using HTTP POST the Topic specified by each sensor.
Saturday, December 20, 2008
GTalk fun
Someone asked me a couple months ago if it would be possible to send commands to the thermostat via email. The difficulty with that is authenticating users. Because the semester is now over and I have some weekend spare time, I decided to implement a toy with Google Talk.
The screenshot bellow shows a "conversation" with my home thermostat.
With GTalk available in Gmail and on my cell phone this proves to be quite useful. Interesting extensions could use speech recognition on a cell phone to interact with an automated house.
With GTalk available in Gmail and on my cell phone this proves to be quite useful. Interesting extensions could use speech recognition on a cell phone to interact with an automated house.
Saturday, August 30, 2008
iCal controlled thermostat
I did not know until David mentioned it to me, but the iCal on my Mac can sync with the Google Calendar (it uses CalDAV), which means iCal can control the thermostat too! Here is a screenshot:
Thanks David!
iCal Setup
Tuesday, July 22, 2008
Subscribe to:
Posts (Atom)