The Automatic Chicken Coop Heater is actually pretty simple:
Essentially 2 lights (1 halogen and 1 florescent bulb) triggered on an off by temperatures. There are 2 different chicken heater systems:
- Coop Interior: to heat the interior of the coop
- Coop Exterior: to keep the exterior water pipe from freezing/cracking.
Interior Coop Heater
Encased in a concrete block positioned near the water fount
A small concrete block with a single light socket (with a halogen bulb) mounted to a bottom brick cap and the is capped with another concrete cap. (actually I’ve replaced the concrete cap (pictured) with a section of thinner tile. Now the heat is distributed quicker. It is wired to the Arduino via the same temperature sensor, which triggers the relay (on/off) in the outlet installed in the EPPNOC (El Pollo Palace Network Operations Center). The heater outlet is triggered on when the temp goes below 40 degrees F and off at any temperature above that.
The Chicken Coop Interior Heater Images
Exterior Coop Heater
Located under the ladder, I installed a simple 2′ florescent work light, which when triggered turns on and throws just enough heat above the pvc water pipe with nipples, to prevent freezing. It is wired to the Arduino via the same temperature sensor, which triggers the relay (on/off) in the outlet installed in the EPPNOC. The heater outlet is triggered on when the temp goes below 40 degrees F and off at any temperature above that.
The Chicken Coop Exterior Heater Images
(to prevent freezing of the water system)
Automatic Chicken Coop Heater Parts
Masonry Block:
1) 6″ Block
2) Solid 6″ Caps
(found at any builder’s supply)
Code for Automatic Chicken Coop Heater
[callout font_size=”13px” style=”limegreen”]
I’m hoping that if you use or modify my code or ideas, you will share *your* coop project with me and the world (pictures, whatever) I’m big on sharing.
Cheers,
//D [/callout]
/* * Copyright 2016, David Naves (https://daveworks.net, https://davenaves.com) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 3 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301, USA. */ /* * I'm hoping that if you use/modify this code, you will share your * coop project with me and the world (pictures, whatever) * I'm big on sharing. * Cheers, * //D */ // libraries #include // load the SimpleTimer library to make timers, instead of delays & too many millis statements #include // load the onewire library for thermometer #include // load the liquid crystal library // print debug messages or not to serial const boolean SerialDisplay = false; // pins assignments const int thermometer = 3; // thermometer DS18S20 on digital pin 3 const int relayHeat = 5; // heat lamp relay set to digital pin 5 const int relayFan = 6; // exhaust fan relay set to digital pin 6 // variables // SimpleTimer objects SimpleTimer coopPhotoCellTimer; // temperature check delay long lastTempCheckTime = 0; long TempCheckDelay = 600000; // 10 minutes // temperature chip i/o OneWire ds(thermometer); // thermometer on digital pin 3 // chicken cam servo // Servo chickenCamServo; // servo object to control chickenCam // int chickenCamServoPos = 0; // chickenCamServoPosition var // lcd LiquidCrystal lcd(38, 37, 36, 32, 33, 34, 35); // lcd pin assignments int backLight = 13; // pin 13 controls backlight /* LCD Pin > arduino Pin lcd pin 1 VSS > gnd arduino pin lcd pin 2 VDD > +5v arduino pin lcd pin 3 VO(contrast) > 330 ohm resistor to gnd arduino pin lcd pin 4 RS arduino pin 38 lcd pin 5 R/W arduino pin 37 lcd pin 6 Enable arduino pin 36 lcd pin 7 - lcd pin 8 - lcd pin 9 - lcd pin 10 - lcd pin 11 (Data 4) > arduino pin 32 lcd pin 12 (Data 5) > arduino pin 33 lcd pin 13 (Data 6) > arduino pin 34 lcd pin 14 (Data 7) > arduino pin 35 lcd pin 15 Backlight + > arduino pin 13 (built-in resistor) lcd pin 16 Backlight > arduino gnd pin */ // ************************************** the setup ************************************** void setup(void) { Serial.begin(9600); // initialize serial port hardware // welcome message if (SerialDisplay) { Serial.println(" Processes running:"); } // coop hvac pinMode(relayHeat, OUTPUT); //set heat lamp relay output pinMode(relayFan, OUTPUT); //set exhaust fan relay output } // ************************************** functions ************************************** // coop hvac void doCoopHVACHeat() { float temperature = getTemp(); // create temperature variable float tempF = (temperature * 9.0) / 5.0 + 32.0; // convert celcius to fahrenheit if (SerialDisplay) { Serial.print(" Coop Temperature:"); // print out coop temperature Serial.println(tempF); // print out the temperature } if ((millis() - lastTempCheckTime) > TempCheckDelay) { // check temperature every 10 minutes // if cold, turn on heat lamps if (tempF <= 40) { // if temp drops below 40F turn on heat lamp(s) relay digitalWrite(relayHeat, HIGH); } else if (tempF > 40) { digitalWrite(relayHeat, LOW); // if temp remains above 40F turn off heat lamp(s) relay } } } // if hot, turn on cooling fans void doCoopHVACCool() { float temperature = getTemp(); // create temperature variable float tempF = (temperature * 9.0) / 5.0 + 32.0; // convert celcius to fahrenheit if (SerialDisplay) { Serial.print(" Coop Temperature:"); // print out coop temperature Serial.println(tempF); // print out the temperature } if ((millis() - lastTempCheckTime) > TempCheckDelay) { // check temperature every 10 minutes if (tempF >= 83) { // if temp rises above 85F turn on cooling fan(s) relay digitalWrite(relayFan, HIGH); } else if (tempF < 83) { digitalWrite(relayFan, LOW); } } } // credit: bildr.org/2011/07/ds18b20-arduino/ // DS18S20 digital thermometer stuff float getTemp(){ //returns the temperature from one DS18S20 in DEG Celsius byte data[12]; byte addr[8]; if ( !ds.search(addr)) { //no more sensors on chain, reset search ds.reset_search(); return -1000; } if ( OneWire::crc8( addr, 7) != addr[7]) { Serial.println("CRC is not valid!"); return -1000; } if ( addr[0] != 0x10 && addr[0] != 0x28) { Serial.print("Device is not recognized"); return -1000; } ds.reset(); ds.select(addr); ds.write(0x44,1); // start conversion, with parasite power on at the end byte present = ds.reset(); ds.select(addr); ds.write(0xBE); // Read Scratchpad for (int i = 0; i < 9; i++) { // we need 9 bytes data[i] = ds.read(); } ds.reset_search(); byte MSB = data[1]; byte LSB = data[0]; float tempRead = ((MSB << 8) | LSB); //using two's compliment float TemperatureSum = tempRead / 16; return TemperatureSum; } // lcd void doLcdMsg() { float temperature = getTemp(); // create temperature variable float tempF = (temperature * 9.0) / 5.0 + 32.0; // convert celcius to fahrenheit pinMode(backLight, OUTPUT); // backlight pin set as output digitalWrite(backLight, HIGH); // backlight on lcd.begin(16, 2); // columns, rows lcd.clear(); // start with blank screen lcd.setCursor(0, 0); // set cursor to column 0, row 0 lcd.print("Coop Temp:"); // show "Temp" lcd.print (tempF) ; // show temperature of interior coop lcd.print("F"); // show "F" } // ************************************** the loop ************************************** void loop() { doCoopHVACCool(); doCoopHVACHeat(); doLcdMsg(); }
I guess this is what my Alzheimers will feel like. I really wanted to understand this and perhaps use it or a variation thereof for my greenhouse but I just didn’t understand it. I haven’t programmed in 35 years and even though I worked with electronics for 20 years, it seems without a wiring diagram I am pretty much lost anymore and I don’t understand what Arduino is. I get the idea that it’s for teaching or learning electronics, but I am just not sure what it actually is, books? parts? programming? Sorry, I honestly had hoped, but I really feel old right now. I am glad you enjoyed building your project, it does look interesting.
Hi Marty,
Yeah, I just haven’t had time to document all elements with a wiring diagram (only the door) BUT, if you look closely at the code you can follow the pin numbers of just the heater element and paste that into a new sketch. It’s actually the simplest part of the coop project. It’s just a pin triggering a high voltage relay that turns a lightbulb on and off. (truly)
As time permits, I’ll try to document everything.
Sorry, Bro… doing the best I can.
Cheers!
Instead of using a halogen light bulb that uses 50 watts it might mess with the chicken sleep by the light in the coop. I use a reptile heat lamp. it is a black heat source that only emits heat, not light. It only requires 25 watts instead of 50 watts. A nice energy savings!
Great idea! Love it.
Thanks for the share
Hello, my DIY heater is a light hook to an old thermostat which then plug in the outlet with an extension cord. Easy an cheap…
Sweet!
But where’s the fun in that? =)
my husband has chickens and i wonder how hot the brick would get if one of them got on it. would it get hot enough to burn their feet. right now he uses a infrared heater
Great question…
I placed a tile on top of the block and with the outside cold (I have mine triggered to switch over at 40 degrees F) it never gets hot enough to hurt them. Also, I placed it under their watering system (to help protect from freezing) so they can’t even really stand on it comfortably)
Cheers!
I bought a ceramic wall heater for $100. comes with a temp gage and goes on and off at designated temps. I hung mine on the wall where my chickens roost, Toasty warm.
Howdy,
Yeah, there are plenty of pre-built devices out there. This project is for us DIY’er Chicken Nerds. =)
Cheers!
Why would a florescent light keep the water pipes from freezing? I don’t understand, please explain. Thank you.
Hi Susan,
In Northern CA, we do get some freezing weather (probably down to 25 degrees F) and these bulbs, located directly above the insulated pipes/nipples, kick off just enough heat to keep them from bursting. It doesn’t take much heat to prevent a complete freeze.
Cheers!
This is great information. I appreciate all the pictures, list of components and most of all, the code you’ve shared. I don’t know how to program but will try based on the detailed description you’ve provided. I’m curious about the additional components you used for this heater and how you’ve wired it together into your arduino set up. Any help would be appreciated. I’m also curious about your LCD display as you’ve only outlined how to automate the door but it’d be nice to have all the bells and whistles!
Thanks, Gordon.
I appreciate the kind words.
Yeah, I just haven’t had the time to create the Fritzing diagram nor the rest… just too busy. But it’s definitely on the way.
Cheers!
I am not a electronics nerd but am a chicken nerd who lives in the NE. Will your block heater help my girls in sub zero temps? What is an EPPNOC and can I simply use a Farm Innovators Model TC-3 Cold Weather Thermo Cube Thermostatically Controlled Outlet – to make the bulb come on and go off? Also what wattage halogen? Thanks
Hi Sue,
Thanks for the questions…
1) Yes, the block heater can help in sub-zero temps. (although how much it will help completely depends on how big your coop is and how drafty, etc etc.)
2) The EPPNOC = The El Pollo Palace Network Operations Center. =) Ahtankya!
3) Sounds like that outlet type is very similar to what I built. So yeah, I’d say it would.
4) I use a 50 watt bulb
The fact is that chickens can live in very cold weather… they are wearing down coats. I just like to spoil my girls. =)
Cheers,
//D