Sunday, December 23, 2012

Finished with the shower controller!

Since my last post, I basically gave up for a few months. Then my friend Drex asked me if I wanted to work on electronics projects with him on Sundays. I said yes. It was the push I needed to start again!

I became newly excited because I would get to show him what I had done. Then one day, we talked about the issue of taking temperature data and how to make the device react to it in a way that didn't suck. Turns out he spent his senior year of college doing exactly that! In two weeks, he helped me get it to react in a way that worked. And it actually works!! It could be improved in some ways, but the gap between not working at all and working enough to actually use was bridged!

All that's left to do is improve power usage and to make it compensate faster. That will slowly happen as I use it more.

Thursday, September 13, 2012

Less Grrr

In my last post, I was extremely frustrated because my digital temperature sensor was being troublesome. Instead of obsessing and raging, I decided to try my thermistor ($4 from adafruit). It remains to be seen whether it's responsive enough, but at least it's waterproof and easy to use! I found code on the adafruit learning site, integrated it with my sink controller code, tested it, and now I'm ready to attach it to the sink!!

However, right now the thermistor just tells the device when to stop blasting the hot water and change to a preset warm. It's still too primitive to compensate for changes in temperature. This is my next step, and it's a pretty big one: write code that will sense the temperature and compensate in a way that isn't (a) super-slow or (b) oscillating between burning and freezing. These sensors have some lag time, so we need to make sure we're compensating for the temperature right now and not the temperature 5 seconds ago.

One cool thing I could possibly do is use my new math skills (I'm in an engineering math class because I'm in CCSF's electronics certificate program!) to determine the slope (!!!) of how fast it's increasing, which could possibly allow me to determine the temperature it's at before it can actually sense it.

Here's my test to see if the above idea is feasible: start at room temperature, then apply a known temperature and see how long it takes to reach it. Then graph the results in Excel. The known temperature is under my tongue, which is about 98 degrees! I'll let you know if it works.


Sunday, July 29, 2012

GRRR


It's been almost three weeks since I tested the digital temperature sensor and then extended it using twisted pair ethernet cable. In that length of time, I've lost a lot of ground knowledge-wise. And the damn thing isn't working! It's not working, and I can't tell what I'm doing wrong. I can't even tell if I'm supposed to set the data pin to INPUT or not. The tutorial doesn't do it, but I can't see how it would work if they don't do it. I would reference the code I was using, but my computer ran out of battery and shut off without warning, and apparently I never saved my work, which boggles my mind. I'm very frustrated! I really don't want to remove my heat-shrink tubing and solder that I fought so hard to make. These wires are really tedious! But I'm going to do it because otherwise there are too many stupid variables to tell whether my code is right or not.

GRRRR!!!

Tuesday, July 10, 2012

Extending the digital temperature sensor

This was the really difficult part with my last analog sensor, which was analog. Anything beyond being plugged directly into the Arduino would cause the sensor to give me all sorts of unreliable readings. This digital sensor is supposedly immune to this issue, which is why it costs $4 instead of $2 like the analog sensor. The only thing I'm not quite sure about is the pull-up resistor that needs to go between pins 2 and 3 (basically connect pins 2 and 3 via a 4.7K resistor). I'm guessing it needs to happen where the pins enter the Arduino and not up near the sensor itself. Hopefully I'm right.

In terms of the larger plan, this step will allow me to measure the temperature of the water coming out of my sink, and the servos will adjust it to compensate for changes. Once it's all working, I should be able to move the apparatus to my shower! Of course, then I'll have to deal with waterproofing, loosening up the knobs so the servos can turn them, and a few other things.

But first things first: I'm going to extend the new digital temp sensor about 18 inches.

Update: I did it! Although I haven't tested it yet. I took two twisted pair strands from a solid-core ethernet cable, twisted them together, and attached the sensor to the end. It's a little stiff, but it should conduct really well. I'll let you know when I start testing it. The step after that will be to attach it to my sink!!

Monday, July 2, 2012

Digital Temperature Sensor!

A quick update: I've just gotten my new digital temperature sensor working! It's supposed to be better at transmitting over distances. It looks exactly the same as the analog one.

Sunday, July 1, 2012

It verks!!

I'm super excited to report that I did everything I set out to do!! I implemented multiple settings and also a new power supply so the arduino can finally function without the computer attached!! I'm totally psyched because it's actually useful!!


I'm totally living in the future!!

Getting the sink controller to be useful

In my last post, I had created a setup with a single switch that only had full-blast warm or full off. This doesn't encompass the full range of use for my bathroom sink, so I'd like to flesh that out a little more. I also found what I thought was the perfect power supply, but for some reason everything behaved very erratically, possibly due to de-coupling. This means that I may need to put capacitors between my power supply and my servos and/or arduino. However, this isn't a critical issue at the moment, as I can always just use the power setup I had previously. What's important at the moment is getting the apparatus to be useful.

If I can make it easier to get the right temperature using the device than it is manually, I will consider the project successful. I think that by having several of the most common settings rigged to buttons, I'll be able to achieve this.

I bought a breadboard and a bunch of clicky buttons. Each button will be one setting. After talking with Kerry, my first iteration of this idea will have the following settings:

  • Full cold - filling water bottles, rinsing a glass
  • Medium cold - putting a small amount of water in a glass
  • Low cold - wetting a toothbrush
  • Medium warm (full-blast hot to make it heat up quickly, then reduce)
  • Off

I'll need 5 pins as inputs, and I'll need to make a "state" that changes when each pin is activated. I had the issue before where pins that weren't getting an input would return random values, but I've just read about enabling the Arduino's internal pull-up for digital pins! This means I don't need to waste time adding pull-up resistors to all my pins. Thank goodness. Here I go!

Monday, June 18, 2012

It's different, but it works!

Instead of doing temperature control, I focused on mounting it on my sink and having something that turned the water on and off. Success!! Right now it only does off or full blast warm, but it works great. Check out my mounting hardware that I salvaged from that broken paper shredder I mentioned a few posts ago!

Monday, June 11, 2012

Mounting, refining, and pivoting?!

My Set Temperature switch is much more sturdy, and it is now detachable! I would still like a switch that just plugs into the Arduino's headers, so I ordered this one off Adafruit, along with some more wires, headers, and other connectors. My next steps are to figure out how to mount the servo on the sink knob, and to further waterproof the sensor and also mount it on the sink. This way I don't have to hold either of them during testing, and I can hold my computer instead.

I still have to deal with the issue of extending the temperature sensor. The further it gets from the Arduino, the more screwy the readings are. Apparently you have to add a resistor, but even that wasn't giving me great results. My wiring was pretty crappy too though, so I'm hoping that was the main issue. Perhaps CAT5 would help... it's designed to keep the signals as fresh as possible during their travels. I also just ordered a digital temperature sensor and also a pre-waterproofed thermistor temperature sensor. If I can't get the one I have to work, I'm sure one of those two would work great.

I also have an idea that will make use of what I already have going: pivot (slightly)! This is startup language for "change the direction of the product to accomodate current trends". I'm thinking that since I already have one servo mounted on my bathroom sink, I could just mount the other one and then bind them together, which would mount them in place! Then I could turn the project into a sink controller, and have presets for "cold", "hot", and "warm" and maybe a couple others. When someone wants to wash their hands, they can just hit "warm" and take a piss or something while the unit calibrates the water temperature, and then it will beep when it's ready! I can continue later with controlling the shower. Yay!

Thursday, June 7, 2012

Parts!

I took apart a broken paper shredder and got a bunch of great parts. In particular, I got some awesome plugs that made attaching things to the arduino easier. I've redone the set temp switch using these, and it's much more sturdy.

Here are a bunch of the parts, including a powerful AC motor. Unfortunately it's AC, but it also just runs off wall current. I got a lot of N4007 diodes, which are great for preventing accidental reverse polarization, one of the fastest ways to destroy electronic components.

Tuesday, June 5, 2012

Just slow down

My friend Kyle came over last night, and I showed him my project. One idea we had was to just make adjustments more slowly. Implementing that actually made the device work exactly right, except that it took forever to happen. Setting the delay to 2 seconds allowed the sensor to catch up with the water temperature and stop adjusting when it reached the desired temperature. So that's great, except it takes like 15-20 seconds to adjust, and by that time you'd just be angrily doing it yourself.

A possible solution would be to guess how much to adjust it. When the temperature changes by 5 degrees, it'll rotate X amount and then wait a few seconds to see if it was correct.

Sunday, May 27, 2012

Getting back in the saddle

It's been nearly two weeks since I last worked on this. This is a typical pattern for me - do a lot of work really fast, then stop completely. But I'm not going to stop this time!!

In my last update, I had gotten to a point where the device would sense the water temperature but then compensate too much and end up oscillating between freezing and burning. This time, I have three next steps:

1. Add more time for it to wait for a temperature change before compensating again.
2. Brace the servo
3. Make the device more physically robust

........

Ok, I'm getting irritated. I pulled out my awesome new jumper leads and attached them to the temp sensor. To make the temp reading quicker, I used silicone glue to waterproof the sensor connectors. Sounds awesome. Now the sensor gives completely erratic readings. It likes to stay in the negatives, and has now been stuck on -50 C for the past few minutes. WTF? I don't want to rip off the glue after I got it so perfect. I have no idea why this is happening!

Sunday, May 13, 2012

A real test with real water!

I managed to get the setup to a point where I could run water from the bathroom sink over the sensor and control the flow with the servo! The only issue was that (hopefully) due to the plastic over the sensor, it took a few seconds for the sensor to register change. During that time, the unit would compensate by turning the knob. However, it was adjusting so far ahead of what it was detecting that by the time it sensed that the temperature was correct, it had adjusted too far. When the temperature kept changing beyond what it was expecting, it started correcting in the opposite direction - again, much too fast for the sensor to keep up. So what ended up happening was the servo would move the temperature back and forth between freezing and burning over and over.

Luckily, the fix for this is easy enough: increase the time it waits to detect a change. I'd also like to brace the servo so I don't have to hold it in order to keep it from turning freely when it's trying to turn the knob. Lastly, I want to use some cables or other robust hardware to make this thing less fragile. I'll report back when I've done some of these things.

Last steps before moving to the shower

In my last few posts, I haphazardly put together the wiring to allow the unit to take a reading from the sensor and from the potentiometer and then compensate by turning the servo up or down. Now I need to actually stick the thing on the shower knob and test it out.

However, last night I thought of an easier way to set the temperature than using a potentiometer. Instead of messing with the pot as you would the shower knob in order to find the right temperature, just mess with the shower knob itself and then press a button on the unit to let it know you like this temperature. Later on, I'll include buttons to nudge the temperature up or down by a couple degrees if your tastes change. But for now, it'll be enough to just set the temperature yourself and tell the unit to keep it there. This will also allow me to avoid dealing with the issue of how hard it is to turn the shower on from the full off position, which requires a ton of torque. I thought I'd calculated it when I began this project, but either I wasn't accurate or my servos can't do what they claimed. Either way, I'll deal with it once I get the fundamentals of this thing working.

Ok, so the first step is to remove the pot, add a button, and program the unit to recognize a button-press as the signal to keep the temperature where it is.

The next step is to extend the wires to the sensor so it can get the temperature of the water. However, this will require a little waterproofing. Luckily, I think I can do this quick-n-dirty by putting a plastic bag over the sensor. Later on I'll embed it into a coupler with silicone glue, but for now I just want to take the dang temperature.


In this picture, the temperature sensor in the middle is highlighted. This is what I need to extend so it can reach the water. 

Tuesday, May 8, 2012

Potentiometer and progress!

Now I see why arduinos are so popular. It's really not that hard to program them in simple ways! I just got it to take a reading from the potentiometer, convert that to the desired temp, compare that with the detected temp, and then rotate the servo +5 or -5 degrees per second until they match.

This is significant progress! I'm actually shocked that I've come this far so easily.

Literally, if this were all I had programming-wise, I could make this project work. It wouldn't be ideal -you'd have to go by feel to tell whether you liked the temperature, it would be very slow to rotate, you'd have to turn on the hot water yourself, etc. But it would freaking work! This step-by-step, get-it-working-first-and-add-polish-later approach has worked better than pretty much anything I've ever done. Wow!

So now what? An LED readout so you know the temp you're asking for? Consolidating the circuitry so it's not a bunch of delicately arranged wires that can't be moved from my desk? Making a waterproof housing and actually hooking the thing up to my shower? Finding a power source so I don't have to use the USB cable?

I want to take the straightest route to something that works, so my next steps will be:
- stabilizing the wires so the project can leave my desk without falling apart
- mounting the servo on the shower knob so I can start testing

Stay tuned!!

Just for fun, I'm speculating about one of the steps further down the road once I finish the design and want to stamp out some more of these. What's really cool is that you don't need to pay $30 for more arduinos, nor do you need to pay through the nose for custom-built chips. Instead, you can just buy the same processor chip the arduino uses and a couple components for like $7, and use this procedure coupled with this procedure. Just pop the chip into your existing arduino to program it beforehand. This is a big step in reducing production costs!

More steps

Since last post, I've added a "desired temperature" variable, which I arbitrarily set to 22 because that's the ambient air temperature here. I set the servo to rotate +5 degrees per second if the sensor detected less than the desired temperature, and -5 degrees per second if the sensor was more than the desired temperature. I also had to set limits on its movement or else it would hit its own physical limits and start grinding. It worked! All I had to do was warm it up with my fingers or cool it by blowing on it, and it compensated. Ok, awesome. What's next?

My next step is to get it to recognize user input. I think a potentiometer will be the simplest to get working, and then I can work on better methods later. I'll use the pot (that's what the cool kids call it) to set the desired temperature.

Monday, May 7, 2012

Step by step

I've been worried about the programming aspects of this project. I can modify existing code, but I have trouble if my goal is too different from the code I'm trying to modify. But instead of trying to do everything at once, I set the goal of just making the servo respond to the temperature sensor in some way.

I succeeded! Since any temperature I'm likely to get will be between 0-100 degrees Celsius, and since the servo moves between 0-180 degrees of rotation, I simply set the servo to move to whatever temperature is read! Since the air temperature is relatively constant, the servo doesn't move much at all. It stays at about 20 degrees. When I vary the temperature by a small amount by warming the sensor with my fingers, the servo moves a small amount. This is great, because I don't want it moving all over the place when I'm taking a shower. I may be able to optimize for power consumption by having a dampening system or something, but for now my next step is to wrap my head around how to make it compensate for a change in temperature rather than echo the change in temperature.

My initial thought is to have variables for "temperature we want" and "temperature detected" and have the servo move until they're the same. I'll try that.

Sunday, May 6, 2012

Semi-success

Got new arduino, hooked servo to shower knob. It was able to turn the knob once the water was on, but it wasn't able to turn it on or turn it off all the way. Booo! It's also possible I'm not getting the full available torque because I'm powering the servo off the arduino instead of using a separate power supply. I'll try that later, though, because my next step is to get the servo to respond to the temperature sensor. Here's where it may get dicey, because I'm not really a programmer. But if I can't do it, I'm sure one of my programmer friends would find it simple. I love my friends.

Saturday, May 5, 2012

Using servo with arduino!

I finally brought the servos home and hooked them up to my arduino! Using some sample code, it worked great. Then I hooked up a 9v battery to the arduino's 5v regulator, and the servo started behaving erratically. Upon connecting the USB again, it is not responding. What happened?! I've run things on the arduino using a much more powerful 12v battery and everything was fine! Boo!! Hopefully it didn't somehow get fried. I'll post again when I know more :(

Monday, April 30, 2012

Servos!!

I just received my servos! I can't wait to try them out!

Sunday, April 29, 2012

Shower head awesomeness!!

Kerry and I take showers together. Only one of us can be fully in the stream of water from the shower head, while the other endures coldness! First-world problems, I know. But no longer!!!!! Today I bought two shower heads and $15 worth of pipe and installed an additional shower head!!

I knew it would be novel, but I didn't expect it to feel like we were in a luxury resort. It's so incredible! The shower heads were a little pricey because I wanted "rain" ones, but the pipe was super cheap PVC! I'm sharing this because I'm really really happy about it.

Friday, April 27, 2012

Arduino + temp sensor!

I took another step toward actually building this, which was to start using the temperature sensor and the arduino! You can see in the picture below that the sensor is sticking out of the arduino. It's super easy to use - just plug the outer two pins into 5V and Ground, and the middle pin into an analog input. 

Arduino sitting on my bed because I have no desk.

Then I downloaded some simple code from adafruit.com, from which I bought the sensor. If you don't know who Ladyada (Limor Fried) is, you should read about her. She was instrumental in bringing about the arduino revolution, which put easy-to-use microcontrollers and electronics within reach of non-engineers like me and allowed millions of people to make LEDs blink.


As you can see, it's reading the temperature! Super awesome! Now I need to embed the sensor in a coupler that will go between my shower head and the pipe coming from the wall. Annoyingly, Home Depot doesn't have something as basic as a 1/2-inch coupler, nor a 1/2-inch splitter (I have plans to put in an additional shower head that runs to the other side of the shower so Kerry and I can each have water!). Looks like I should have just gone to Orchard Supply yet again, because they have like every kind of pipe you could want.

Now I just need to get my servos!! The Hong Kong mail doesn't have the same level of tracking that we do. All they can tell me is that the package left Hong Kong about a week ago. Hopefully it'll come soon!!

Saturday, April 21, 2012

Waiting for servos

I've been wondering where my servos are because I'm excited to get going! It turns out that they've been in the process of getting to the Hong Kong post office. But I'm happy to know that they officially shipped today. In the meantime, I have an idea of how to logistically control the temperature.

To start the shower, the hot knob will be turned up all the way. As it gets hotter, the cold will be turned up to compensate. If hot water starts to run out, cold will be reduced until it's all the way off. In a situation where the cold water in the pipes isn't very cold, it will turn up all the way. If the temperature is still too hot, the hot water will be turned down until it's all the way off. Once one of the knobs is all the way off and the water isn't the right temperature, it will make some kind of signal. Here's a graphic that I made!
So lots of great ideas. I just have to stay strong once the parts arrive this week and I actually start to build this thing and run into problems!

Sunday, April 15, 2012

Servos after all

I thought I'd found a good solution, but it looks like the cheap gearmotors I'd found have a clutch that limits torque to about 60 oz-in, which is almost half what I need. So instead I kept looking and discovered ServoDatabase.com, which appears to have every servo on the market! I narrowed down the list to servos with over 100 oz-in of torque. I've actually found what look like some great deals. After narrowing it down to five of them, I've decided to go with the TowerPro MG945.


It's got 166 oz-in of torque, metal gears, and costs $8.99!!! Unless it turns out to be a piece of crap, this is going to be awesome. Including tax and shipping, two of them cost $26. An arduino knockoff costs about $30, so the total so far is $56. I still need some kind of housing, seeing as it's gonna be in the shower. I also need something a coupler to put the temp sensor in, and something to hold the servos steady. Thank goodness this is a prototype! They always cost more than what people end up actually buying. I've just been trying to do it cheaply so I can build them for friends.

Well, now I can get started actually making the thing work. I should be able to read the temperature myself, but I'll need help making the servos compensate for temperature changes. I'm really excited. I don't even care that someone else may have done it (although a quick Google search didn't find anything), because I just want to actually build something fully. We'll see how I feel once the parts come and I actually start putting everything together, but I'm very hopeful. Yay!

Friday, April 13, 2012

Less expensive motors?

Two posts ago, I had found a servo that exceeded the torque I need. However, it costs $31. I'll need two (one for each shower knob), which will bring the price too high for a novelty-buy. So I've been looking for alternatives. My first thought was gears, which can increase the torque to essentially any amount. Adding gears and buying a cheaper motor should drop the price significantly, I thought.

Annoyingly, gears are really expensive! I found one for $3.60, but in order to increase the torque, the cheapest complimentary gear I could find was like $14! So almost $18 worth of gears, and I still need a motor. And I don't actually know how to set gears in place. While I may still be able to get help from people who know how to use gears, I think I've found an alternate solution: a cheapy gearmotor!


These gearmotors cost about $6 each, and can be retrofitted with a $2 motor to double the torque, which would bring it to about 100 oz-in, which is what I need! Look here for more info. Ok, gots to go to work :(

Monday, April 9, 2012

Temperature sensor!!

My TMP36 analog temperature sensor has arrived! It cost $2 and can measure from well below freezing to well above boiling with 1/10 degree accuracy! You just plug it into an analog input in your arduino and it's awesome. This is a great component.

Also, I mentioned this project to my friends Aaron and Brad, both of whom are engineers. They both got really excited and offered to help, which felt really good. Aaron actually has a degree or something in electrical engineering, which is awesome. I'm hoping to learn how to use gears instead of expensive servos to turn my shower knobs, and he may be able to help. Yay!

Saturday, April 7, 2012

Gathering Information

While my plan involves several stages, I'm doing some extra work at the beginning to gather information about all the stages. This will allow me to save time later, because if it's not going to work to turn my shower knobs with servos, I'd like to know before I order servos and hook them up to my knobs.

I first started with a temperature sensor. I chose the TMP36 from Adafruit, which is an analog sensor that costs $2 and measures from -50C to 125C with 1/10 degree precision! Awesome. Wonderfully, it comes with all the code and instructions you'll need in order to use it with an Arduino. I consider this to be feasible.

Next, I'm gathering information about the servos. This document describes in a general way how to size a servo motor to your application. Brush or brushless motor? This site seems awesome, and it tells me useful stuff about servo motors! Ok, so I think I'd actually prefer a stepper motor, and once again Adafruit has one that might work. But how do I know? The motor is rated for 28 oz-in of torque. Will that be enough to twist my shower knobs? Let's find out...

I've got a little scale that measures up to 24 oz. The knob on the shower is a cross with arms about an inch long. So if I press the scale against one of the arms and it turns with 24 oz or less, that means the motor should work!

After testing, the answer is... nope. Rats. Next, I've found an awesome video describing the characteristics and differences between steppers and servos! It sounds like a servo is what I want, because they are designed to operate within a single rotation. I tested my shower knobs, and I only need to go between 0-180 degrees, so a servo should work great! They also are much easier to operate than steppers because you don't need a stepper driver, and you can just hook them directly up to an Arduino. Ok, so I'm looking for a servo after all.

I found one servo that's rated for 70 oz-in. That seemed like a lot, but I wanted to be sure. So I had an idea! I'd tie a ruler to my shower knob and push it with my little scale. Then I'd multiply the distance from the pivot point by the number of ounces of pressure on the scale needed to move the knob. So I did it! Unfortunately, twisting the knob from the off position took about 100 oz-in, and moving it while on took about 70. So it looks like I'll need a pretty strong servo. They're often rated in kg-cm, so I need one that's about 7 kg-cm. Hopefully it'll be less than $30.

I've found one rated for a whopping 24 kg-cm, but it's $79. I found a few others that either were too expensive or too cheaply made or otherwise questionable. Finally, I found this one for $31, which is acceptable but still a little too expensive if I want to sell this idea as a product. I'll need two of them, and with the addition of the Arduino it'll cost over $80 in parts. I may just go with this to save time, but I'd ultimately like to use an inexpensive motor but with additional gears, which would provide the same torque at a much lower cost. If I could get the total cost close to $20, I think I'd have a product that at least a few people would buy. I remember Kelsey saying she wanted one at the party last night.

Stay tuned!

Owen the Inventor

All my life I've known what I wanted to be: an inventor. But I've wanted it so desperately, and been so afraid that I couldn't have it, that I've created a funny kind of ambivalence over the years. I would get excited and start pursuing an idea, only to abandon it and stop all activity for months when I ran into an obstacle. In my earlier years, this didn't bother me too much because I was young, and I was sure I'd figure everything out sometime later. Now I'm 27 and still working in a field other than inventing, and I'm enjoying it less and less every day. It's very clear to me that unless I do something in a consistent, intentional way, there's no way my life is magically going to change course.

So what do I have? I never went to engineering school, product design school, or business school. I don't have much spare cash to pay for engineers, designers, or business people, although I do have a little. I have a degree in film, lots of experience in IT and the SF corporate video industry, and lots of ideas. I have a good amount of experience in construction and building things, and have very basic experience with soldering circuits. I also have a wonderful girlfriend, Kerry, who loves me and wants me to be the best I can be, and I have a number of friends and acquaintances in various fields that could help me on my quest.

What do I want? I ultimately want to have a team of intelligent and talented designers and engineers who create awesome products. I want a "bat cave" like Bruce Wayne where the sky is the limit as far as what can be created. And I want to make things that allow people to be happier, feel better, enjoy life more, and experience less frustration and discomfort. I want more love, connection, happiness, and abundance for myself and for the world. And I want to make a ton of money.

What am I going to do right now? I'm going to start from square one and make a consistent effort to progress. I have a bunch of ideas, from perforated hamburger wrappers to traffic jam drones to vibrating smoothie pitchers, but as long as they remain as ideas, they're worthless. To move forward, I need to actually make something, but it needs to be both interesting enough to be worth doing and simple enough to do myself or with limited help. No modeling in SolidWorks, calculating fluid dynamics, or getting UL certified. After unhappily putting the vibrating pitcher on hold because of those very issues, I arrived at an idea I think I can do: an automatic shower controller.

I live in a house with several people, and when I take a shower, I always run the risk of getting doused with cold or hot water if someone turns on a sink or another shower. When that happens, I have to frantically mess with the hot and cold knobs until I can get the temperature back to what I want. Then when they turn off the sink, I have to do it again. Sometimes it happens several times in a row. Not a world-ending phenomenon, but something that would be great to take on as an inventor. I'm pretty sure I can do this with an Arduino, a temperature sensor, and some servo motors.

Now, to avoid taking on too much at once, I'm breaking this into several parts. The first part will just be to sense the temperature of the water. Pretty simple. I've already got an Arduino and my $2 sensor is coming in the mail any day now. I'll get a coupler to fit between the pipe and the shower head, and I'll embed the sensor into it.

I've also started reading inventor blogs! One of the first things I read was to do a lot of work in the early stages to determine how feasible your idea is - before you invest a lot of time and money. I made the mistake of not doing this with the last idea I tried to build. My dad and I invested a couple thousand dollars into patents, only to realize once I started testing it that my idea wasn't going to work. That sucked. I'm not going to make that mistake this time. However, that means that I have to find out if I can use servos to twist my shower knobs. I'll report back once I have some kind of answer.