Pages: [1] 2   Go Down
Author Topic: Home Heating Automation  (Read 1838 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 5
Posts: 181
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

This is my first time posting on the Arduino forums, and I haven't actually gotten an Arduino board yet, but I'm very excited to get into some home automation.  My project idea is very grandiose, as I'm sure everybody's has been at some point, but I'm hoping it's not too daunting.  I would like to put thermo-sensors in every room of my house, and use that data to control the heating/cooling to provide the most control and comfort as possible.  To gain more control over the system I want to use motorized duct dampers to keep the air moving only to where it is needed.  So that's the grand plan, but obviously the devil is in the details.  Since this is such a large project, I may just keep every post in this thread, depending on the etiquette here.  So the first task I want to tackle is making my own motorized duct dampers.
These are my requirements for my motor
-Able to turn to a specific location every time
-Powered off brake (Holding brake)
-Low power usage
-Low maintenance

So after some searching it appears that either a servo motor or a stepper motor is my best bet.  I really like stepper motors because they seem to be more maintenance free in that they don't have any brushes, the only problem I have with them is that they don't have any feedback loop.  Server motors seem like an ideal fit, but I'm not sure of the longevity of those.

The next question would be the powered off brake.  Would it be better to use an EM brake, or using a worm gear.  I'm really liking the idea of using a worm gear since EM brakes can be pricey and the spring ones can be large.

With that said would it be best for me to try to create my own servo using a stepper motor with a feedback loop and a worm gear, or rig a worm gear into an existing servo motor.  I know the gear ratios for a worm gear aren't ideal for most applications but speed is not really a concern with this project.

Thanks for all your ideas.
Logged

Seattle, WA USA
Offline Offline
Brattain Member
*****
Karma: 549
Posts: 46107
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
I really like stepper motors because they seem to be more maintenance free in that they don't have any brushes, the only problem I have with them is that they don't have any feedback loop.
Some do. Some don't. For the don't ones, you can add encoders to provide the feedback.

Quote
Server motors seem like an ideal fit, but I'm not sure of the longevity of those.
The size of the servo motor will be an issue, too. Specifically, the ability to generate the required torque.

Quote
The next question would be the powered off brake.  Would it be better to use an EM brake, or using a worm gear.  I'm really liking the idea of using a worm gear since EM brakes can be pricey and the spring ones can be large.
What do these dampers look like? Do they close (or open) automatically?
Logged

New Jersey
Offline Offline
Faraday Member
**
Karma: 49
Posts: 3420
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Motorized dampers exist, so you could avoid the need to build your own and just concentrate your efforts on sensing and controlling the dampers. A brief search shows that they're not cheap though.
Logged

Offline Offline
Full Member
***
Karma: 5
Posts: 181
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Some do. Some don't. For the don't ones, you can add encoders to provide the feedback.
 Do you happen to have an example of a stepper motor with a feedback loop prepackaged?  I was thinking of using either a pot or rotary encoder for the feedback, but I didn't wan't to overload the arduino board trying to control a bunch of motors, probably 15-20, I haven't actually counted yet.

Quote
The size of the servo motor will be an issue, too. Specifically, the ability to generate the required torque.
That is what I was thinking as well.  Ideally it wouldn't need much torque.  If the duct damper has very low rotational friction, and there isn't any air moving over it, then it won't need much torque.  Any additional torque needed for the worm gear is another story.

Quote
What do these dampers look like? Do they close (or open) automatically?
The motorized dampers on the market are either normally open, or normally closed.  I don't particularly like this idea and would rather be able to set and angle and leave it there for a while.  I have heard from somewhere, and I'd have to confirm is that you don't want to restrict more than 20% of your furnace air flow.  Using a normally opened/normally closed type motorized damper would make this difficult to do and still be able to control the air conditioning in every room.  Would I'd like to do is basically add a motor to a manual damper, something like this http://www.homedepot.com/h_d1/N-5yc1v/R-202907131/h_d2/ProductDisplay?catalogId=10053&langId=-1&keyword=duct+damper&storeId=10051#.UPbV8ifXa64 that I can control the angle of, and having it locked, in a no-power state.
Logged

Offline Offline
Full Member
***
Karma: 5
Posts: 181
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Motorized dampers exist, so you could avoid the need to build your own and just concentrate your efforts on sensing and controlling the dampers. A brief search shows that they're not cheap though.
They are very pricey, easily over $100 and as I mentioned above, they are all either normally opened, or normally closed.  This is less than ideal for what I'm trying to do.
Logged

0
Offline Offline
Tesla Member
***
Karma: 116
Posts: 8938
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

i suggest you get an an arduino, some servos of various sizes, and a 6v power supply, and start experimenting. Also look at hvac dampers that are available to find inexpensive ones that might fit your needs, or get ideas for making your own.
Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

Offline Offline
Full Member
***
Karma: 5
Posts: 181
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
i suggest you get an an arduino, some servos of various sizes, and a 6v power supply, and start experimenting. Also look at hvac dampers that are available to find inexpensive ones that might fit your needs, or get ideas for making your own.
That's what I'm thinking as well.  Not sure if I want to get the uno or maybe a mega.  The reason is that the servo library for the uno is limited to 12 servos.  I'm gonna need 14-15 servos if I ever get this project going.  I've also heard it might be easier and cheaper to just buy 2 unos and link them somehow.  Anyways these are the dampers that are currently in my ducts.
http://malcoproducts.com/product/hvacr/metal-duct/duct-tools/28-gauge-dampers
I have the 6" single bearing model.
Logged

0
Offline Offline
Tesla Member
***
Karma: 116
Posts: 8938
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

For $40 you can get a stand alone servo controller like the ssc-32 (32 servos) to attach to the arduino.
Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

Offline Offline
Full Member
***
Karma: 5
Posts: 181
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So I've found some worm gear boxes over at Pololu:
http://www.pololu.com/catalog/product/69
http://www.pololu.com/catalog/product/73
They are pretty cheap, in both respects, but I think they just might work.  I wanted to just buy my own worm gears, but they get pricey really quick and having to make my own gearbox doesn't sound fun.

I think I'm gonna get this servo
http://www.pololu.com/catalog/product/1057
Its the highest torque one that I could find at a low price point.

I'm thinking I should be able to get these things before the end of the week.  Any other ideas are welcome.

Quote
For $40 you can get a stand alone servo controller like the ssc-32 (32 servos) to attach to the arduino.
Do you know of a good sensor shield, something with 32 I/O pins.  I still might just make my own servo with the arduino and a pot on each motor.
Logged

0
Offline Offline
Tesla Member
***
Karma: 116
Posts: 8938
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Better servo pricing. I suggest you make one damper and get it working before making up a big parts order.

http://www.hobbyking.com/hobbyking/store/__291__189__Servos_Parts-X_Large_Servo_50g_.html
Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

Offline Offline
Full Member
***
Karma: 5
Posts: 181
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks for the link, they have much better pricing.  I plan an spending ~$50, to do a proof of concept, doing a reality check then going on from there.
Logged

Offline Offline
Full Member
***
Karma: 5
Posts: 181
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So I got the Arduino, and battery packs and I'm just waiting for the servo.  I've been looking into the making my temperature sensor wireless nodes.  At first I was thinking that the xbee was going to be my best bet, but after doing some more research, and messaging a few members, I'm thinking that RF will work out well.  I have seen a lot of people using the RFM12, or RFM12B, but I think that I can use the RF-2400 for a good amount less money.  What do you guys think.

I have attached a schematic of what I think should work for a nice low cost, low energy usage RF node.  Is it alright to use the reset pin, P1, for reading the data from the temperature sensor? 

Another question that I have is how long can you sleep the ATTINY85 for, I believe I saw somewhere it was 9s.

Lastly jeelabs uses a p-mosfet to shut down the RFM12.  Would it be worth it to use the ATTINY84 to have more output pins for adding a p-mosfet?

Thanks for taking the time to read my silly questions.



* remote_sensor.bmp (1032.61 KB, 637x553 - viewed 43 times.)
* remote_sensor.sch (224.87 KB - downloaded 6 times.)
Logged

Offline Offline
Full Member
***
Karma: 5
Posts: 181
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I just noticed that the RF-2400 is supposed to be flipped 180°.  I'll fix it when I get home.
Logged

Offline Offline
Full Member
***
Karma: 5
Posts: 181
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Fixed


* remote_sensor.bmp (1042.55 KB, 639x556 - viewed 28 times.)
* remote_sensor.sch (224.89 KB - downloaded 7 times.)
Logged

Offline Offline
Full Member
***
Karma: 5
Posts: 181
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So I finally got the servo motor in the mail today.  I couldn't wait to hook it up.  The setup was really simple, the only thing I found odd was that when I started I was able to drive the servo off of pin 13.  After a couple of demos I couldn't use pin 13 any more.  So I've been using pin 2 to drive the servo now instead.  Any ideas about that? 

This is my very simple code.  I used java to communicate with my COM4 port to test out the servo.  It works great so far.  I'm currently trying to figure out what the range of this servo is, and I haven't found a datasheet for it yet.  I have the TowerPro 9805BB.

So the next step is going to be making this thing wireless I think.  I may even just use my laptop now to take commands over the LAN and send that data over com to the arduino.  That way I can program up an android app for my tablet.

After that I'm gonna start hooking up more servos.  To control all the servos I think I'm gonna buy one of these https://www.adafruit.com/products/815.  Has anybody used this breakout board before?  Any suggestions for what gage wire to used for the 6v and signal wires for 20-30ft before I go look it up?  Also does anybody know what would be a good 6v power supply.  Adafruit sells a 5V 10A power supply but I'd kinda like to supply 6V so I can get the most out of my servos.

Code:
#include <Servo.h>

Servo myServo;

int incomingByte = 0;

int nPulseWidth = 1500 ; // 1500, defined in servo.h


void setup()
{

  myServo.attach(2);
 
  // the library sets all servos to 1500 ms pulse width by default, this is center for a steering servo
  Serial.begin(9600);
  Serial.println("Completed setup"); 
}

void loop()
{
 
  if (Serial.available() > 0) {
    incomingByte = Serial.read();
    if(incomingByte>0 && incomingByte<180){
      nPulseWidth = (int) (incomingByte/90.0*1000 + 500);
      myServo.writeMicroseconds(nPulseWidth);
      Serial.print("Sending Servo: ");
      Serial.println(nPulseWidth,DEC);
    }
  }
 
 
}


* IMG_8716.JPG (2282.55 KB, 2816x1880 - viewed 71 times.)
Logged

Pages: [1] 2   Go Up
Jump to: