newbie needing advice

I've heard of Arduino in the past but never really gave it a second thought. Now that I am working on a project someone told me arduino would be perfect for it. So here I am. I will point out what I need my project to do and then if someone would tell me what I need that would be great.

This is for an incubator I am building in a stand up freezer. I need to measure temperature in 3 different zones and humidity over all. It will need to control 2 40watt light bulbs(heat source). It will need to also control the speed of 3 dc fans (2 fans can work together and act as 1), high and low. Also I will need to control a DC drill motor every few hours but every time it switches on it needs to be reverse polarity so it runs the opposite from the last time it ran.( forward one time for a few seconds and shut off, then next time run in reverse for a few seconds and shut off).

Also I will need lcd read out to display each zone temp, over all humidity, and a day counter(count how many days it has been running for).

What arduino components am I looking at needing for this?

You can put multiple 18B20 temperature sensors on a one wire bus. The LM35 analog temp sensor is used quite a bit,too. They are both popular and well covered in the forum. The DHT22 is an inexpensive temperature and humidity sensor. Their accuracy has been questioned so you should investigate if they are good enough for your application. I assume that the bulbs are AC. If so a solid state relay may be the way to go. SSR can be controlled directly by an Arduino digital output. The drill motor will need an H-bridge motor driver for forward and reverse control. You will need to know the stall current spec of the motor to choose a driver. The DC fans can be controlled by appropriate MOSFETs (need to know the currrent). For the LCD I would use one with an I2C interface just because it saves a lot of pins (2 pins versus 6 or 7).

Yes the lights are AC. Even though there are 2 of them they can be turned off and on at the same time. I only use 2 incase 1 burns out in the middle of the night I won't lose the batch of eggs. The fans aren't that big of a deal to control, I could just leave them running and hardwire them into a dc plug if need be. As for the temperature it would need to be between 99.5 and 101.0 ºf. I remember seeing on youtube someone talk about a dht11 and a dht22 used in incubator builds. I am puzzled by what you mean when you say stall current specs on the dc motor. The motor is coming out of an old skill 12v cordless drill. Haven't used it in years so it has been sacrificed to make my egg turner.

I was thinking that instead of running the dc motor for so many seconds couldn't I put in some type of limit switchs? Turn one way until it hits the switch then pauses for an hour or so and then turns the other way until it hits the other switch.

The stall current is the maximum current the motor can draw. You can estimate stall current by measuring the resistance of the motor. Current would be motor voltage divided by the resistance. If you size the motor driver for stall current it will happily handle starting and running current and not be damaged by a stalled motor. In that environment, I would use a slotted photo interrupter to sense platform position (slotted photo interrupter. The combination of heat and humidity could be hard on mechanical switches, long term.

Previous incubator discussions

https://www.google.com/search?ie=UTF-8&oe=UTF-8&q=incubator&btnG=search&domains=http%3A%2F%2Fforum.arduino.cc&sitesearch=http%3A%2F%2Fforum.arduino.cc&gfe_rd=ssl&ei=qbPbVeWDPIGn-AW8qabQDQ

You may find some useful stuff in planning and implementing a program

Develop your program as separate pieces (temperature, humidity, fans, motor etc) and only join the parts together when you know how to do each of them separately

...R

This here looks like it will be a good start. Has the lcd, temp and humidity sensors.

Ebay link to parts

Would the uno be best for this project? I don’t know the difference between the models.

I think the Uno would be a good choice for the project. Plenty of pins for the job. The Uno probably has the most support of any Arduino board in terms of libraries and hardware. I would go with a DHT22 temp and humidity sensor. The DHT22, in my experience. is more accurate and responsive than the DHT11 for humidity although more expensive.

[u]TO DO LIST[/u]

1- Draw and post block diagram of system 2- Draw and post schematic of system 3- Draw and post Truth Table showing what conditions result in what actions 4- Draw and post I/O list (INPUTS:(Analog & Digital) and OUTPUTS) (on separate lists) 5- Post electrical specs for drill motor 6-State your background or experience with electronics & software : NONE, some, etc. 7-Draw and post algorithm which shows program flow and decision making. Google Algorithm for examples. This will be necessary for you to write the code. (Which you will have to do.)

And note that nothing in @raschemmel's list requires a knowledge of programming.

...R

Ok I think I am taking on more than I can handle with this so I am going to simplify it a bit. I'll worry about making the egg turner later but for now I can manually turn all 300 eggs at the same time.

Decided not to control the fans or the dc motor but instead just control temp and humidity. 1 temp reading and 1 humidity reading.

This is what I need it to do. Monitor temp and humidity. If temp falls below 99.5 I want it to trigger the heat source (AC lights) and turn off again when it hits 100. Also monitor the humidity and trigger my humidifier if humidity drops below 55% and shut off when it hits 60%. Needs only to display on the lcd current temp and current humidity.

This is my parts list I believe I need. If someone could take a look and tell me if I'm correct. 1 x adruino uno 1 x lcd 2 x SSR (one for heat source and one for humidifier) 1 x DHT22 sensor

That should be enough to get my started. Shouldn't be too difficult to code I wouldn't think either.

My electronic experience goes as far as being able to install mod chips in game consoles. As for coding I can somewhat understand what is happening by looking at code. I had a course in c programming years ago but i've forgotten most of it as I've never used it.

This is exactly what I need it to do. I can tweak to code to work for my application and inplace of the heat mat I would use light bulbs.

http://www.instructables.com/id/Arduino-Automatic-Temperature-Humidity-Controller-/

This goes a bit beyond running tge Blink example

I would use an SSR for the ac devices. (make sure you understand how to use them before trying)

Judging from the code looks like all I would have to change would be the temLowTrigger and the humLowTrigger values.

#include <LiquidCrystal.h>
#include <DFR_Key.h>
#include "DHT.h"

#define temLowTrigger 9  //Setting the trigger value for the temperture, once the temperture lower than this trigger value, the heater band will start heating
#define humLowTrigger 45 //Setting the trigger value for the humidity, once the humidity lower than this value, start humidification


#define DHTPIN 15     // what pin we're connected to

// Uncomment whatever type you're using!
//#define DHTTYPE DHT11   // DHT 11 
#define DHTTYPE DHT22   // DHT 22  (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)


// Connect pin 1 (on the left) of the sensor to +5V
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 4 (on the right) of the sensor to GROUND
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor

const int relay1 =  18;      // the number of the relay 1 pin
const int relay2 =  19;      // the number of the relay 2 pin



DHT dht(DHTPIN, DHTTYPE);


//Pin assignments for DFRobot LCD Keypad Shield
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); 
//---------------------------------------------

DFR_Key keypad;

int localKey = 0;
String keyString = "";
                 
void setup() 
{ 
  
  pinMode(relay1, OUTPUT);
  pinMode(relay2, OUTPUT);
  lcd.begin(16, 2);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("initializing...");
  lcd.setCursor(0, 1);
  delay(1000);
  
  Serial.begin(9600);
  dht.begin();
  delay(1000);
  lcd.clear();
  
  /*
  OPTIONAL
  keypad.setRate(x);
  Sets the sample rate at once every x milliseconds.
  Default: 10ms
  */
  keypad.setRate(10);
  
  digitalWrite(relay1, HIGH);
  digitalWrite(relay2, HIGH);

}

void loop() 
{ 

  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  // check if returns are valid, if they are NaN (not a number) then something went wrong!
  if (isnan(t) || isnan(h)) {
    Serial.println("Failed to read from DHT");
  } else {
    
    //Display 
    lcd.setCursor(0, 0);
    lcd.print("Hum: ");
    lcd.print(h);
    lcd.print(" %");
    
    lcd.setCursor(0, 1);
    lcd.print("Tem: ");
    lcd.print(t);
    lcd.print(" *C");
    
    if(h < humLowTrigger) //if the humidity lower than the trigger value
      digitalWrite(relay1, LOW); //start humidification
    else
      digitalWrite(relay1, HIGH);
      
     if(t < temLowTrigger)
      digitalWrite(relay2, LOW);//start heating
    else
      digitalWrite(relay2, HIGH);
  }
}

That depends . How much do you know about using LCDs ?

Sounds like you have downsized to a more reasonable starter project. How about ventilation?

I would leave the fan(s) running all the time for air circulation. I would narrow the temp. range (maybe 99.4 - 99.6). I would use a couple other thermometers to test the sections with, and verify that the sensors are working as expected.

Nothing. Is there something wrong with how this will print out?

raschemmel: That depends . How much do you know about using LCDs ?

There are going to be a total of 4 fans running. In the incubator I have running right now I have it running full time so I am going to do the same with this upscaled model. The temp range needs to be 99-102 with 99.5 being ideal. My current incubator I have it bounces from 99.8-100.4 and it works great. I do plan to have other stand alone temp and humidity readouts throughout the incubator. I have a few digital ones laying around to put in there.

[quote author=jack wp link=msg=2373934 date=1440709865] Sounds like you have downsized to a more reasonable starter project. How about ventilation?

I would leave the fan(s) running all the time for air circulation. I would narrow the temp. range (maybe 99.4 - 99.6). I would use a couple other thermometers to test the sections with, and verify that the sensors are working as expected. [/quote]

I believe you will need some ventilation (outside air). How will you handle that?

My current incubator I drilled holes in the side of it to let in air. Seemed to work ok but on the larger scale I'm not sure if that will work. I should probably put in an intake fan on a timer to have it kick on every once in a while.

[quote author=jack wp link=msg=2373961 date=1440710872] I believe you will need some ventilation (outside air). How will you handle that?

[/quote]

That depends . How much do you know about using LCDs ?

Let's try this again. Do you know what a "Constructor " is with regard to LCD display (code) ?

What does this:

 /Pin assignments for DFRobot LCD Keypad Shield
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); 
//---------------------------------------------

DFR_Key keypad;

tell you about what kind of LCD (and switches) is being used with this code ?