Jolynn Awesome
Published © GPL3+


QuaCkibator takes the guess work and headaches out of egg incubation and makes it mobile. Easy to replicate at home or in the classroom.

IntermediateShowcase (no instructions)2 hours278

Things used in this project

Hardware components

SparkFun RedBoard
SparkFun RedBoard
DHT22 Temperature Sensor
DHT22 Temperature Sensor
SparkFun Serial Enabled LCD Kit
SparkFun Serial Enabled LCD Kit
Styrofoam cooler
plastic container
Jumper wires (generic)
Jumper wires (generic)
40 watt light bulb
power cord
Light bulb Socket

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
Art supplies


Read more

Custom parts and enclosures

Sparkfun Display

Sparkfun box comes in handy for a LCD display case. Recycling the Sparkfun box because I love anything sparkfun!


QuaCKibator Diagram

Follow the diagram to connect all the components for your QuaCKibator

QuaCKibator Diagram

Incubator Setup

Add your duck eggs to the incubator as well as water to reservoir to get to the right humidity. 55% humidity to begin the 28 day incubation period. Although not pictured the DHT 22 should lay across the eggs to get an accurate temperature reading. Which I accomplishing by soldering wires to the DHT22 sensor,cutting a circle out, insert the sensor, replace the cutout and solder the end of the wires as shown in the diagram.


The wiring contained in the box when closed


QuaCKibator Code

This code is will turn on and off a heat source, light bulb, depending on the value that is read from the DHT22 Sensor.
 * DHT22 libraries downloaded from Github-Adafruit
 * DHT22 code used in this program was origianally written by Lady Ada
 * QuaCKibator egg Incubator:
 * The following program is for an incubator I decided to build.
 * As of present day Incubators on the market are quite expensive and 
 * lots of times, don't stay at the correct temperature.
 * This results in a very low hatch rate and loss of money.  So I decided to build
 * one to brush up on my programming skills as well as to hatch 
 * a few duck eggs.  I have almost a dozen pet duckies, so why not hatch some more!
 * Ducks are Awesome =)
 * This code is just to get you started it will output the
 * temperature and humidity to an LCD as well as control your heat
 * source.  Which in this case would be a light bulb. Things that it
 * will not do:
 * 1. turn eggs (4x daily)
 * 2. adjust humidity (60-65%)
 * these things should be done manually(version 1 of QuaCKibator)
 * Jista Awesome 5 August 2016
 * Be Awesome!

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

#define DHTPIN 8     // what digital pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
int lightBulb = 13;

//initialize the library with the numbers of the interface
//Pins on the LCD(rs E  d4 d5 d6 d7
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

// Connect pin 1 (on the left) of the sensor to +5V
// NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1
// to 3.3V instead of 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
//Using a Potentiometer instead of 10k Resistor
// Initialize DHT sensor.
// Note that older versions of this library took an optional third parameter to
// tweak the timings for faster processors.  This parameter is no longer needed
// as the current DHT reading algorithm adjusts itself to work on faster procs.

//LCD Setup of amount of characters per row 16 with 2 columns
void setup() {
  //Setup the LCD's number of columns and rows
  dht.begin();  //DHT22 setup
  pinMode(lightBulb, OUTPUT);

void loop() {
  //Read humidity takes about 250 milliseconds
  float h = dht.readHumidity();
  //Read temperature as Fahrenheit (isFahrenheit = true)
  float f = dht.readTemperature(true);

delay(9000);  //9 second delay to avoid lightbulb possibly burning out if it were to turn on in 2 second intervals

//Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
//Setup start location clear screen
lcd.print("Temp: ");
lcd.print(f); //Fahrenheit
lcd.print(" *F ");
lcd.setCursor(0,1); //prints to the next line
lcd.print("Humidity: ");
lcd.print(h); //humidity
lcd.print("%    ");

//Relay Switch information
//Checks to see what currently value stored in "f" and sends a signal to pin 8 which is connected to the relay
if (f <= 99.5) {  // Egg IncubationTemperature value
  digitalWrite(lightBulb, LOW); //set pin to low which turns heatsource on which is a light bulb
} else {
  digitalWrite(lightBulb, HIGH);  //esle turn lightBulb off



Jolynn Awesome

Jolynn Awesome

5 projects • 40 followers
I have a crazy obsession with ducks!