The design of this GREENHOUSE CONTROLLER consists of two units, the microcontroller/transmitter (uC/xmit) and the microcontroller/receiver (uC/recv).
The uC/xmit unit is located in the greenhouse while the uC/recv is located in the house about 75 feet from the greenhouse.
The uC/xmit units gathers data from temperature sensors and based on this data operates two vents, heater and a fan. The unit then transmits the temperature data and the state of the vents, heater and fan utilizing the license free 433.9MHz band.
This information is also displayed on a 4x20 LCD in the unit. The uC/recv unit receives and displays the same information on a similar LCD. This process is repeated every 10 seconds.
The uC/xmit unit employs three temperature sensors whose outputs are monitored by the ADC within the AT90S8535 uC.
The TOP temperature sensor, located near the top of the greenhouse, determines the state of the vents while the BOT temperature sensor, located near the bottom of the greenhouse, determines the state of the heater. The state of the fan is dependent on the state of the vents and the TOP temperature.
The uC/xmit unit utilizes potentiometers so that both the temperature at which the vents open and the heater turns on are adjustable.
The vents open temperature range is from 69 deg F to 105 deg F. The vents will shut 15 deg F below the set vents open temperature. The heater on temperature range is from 24 deg F to 50 deg F and the heater will turn off 10 deg F above the set heater on temperature.
The fan will turn on 10 deg F above the vents open temperature and turn off 5 deg F above the vents open temperature. Presently the uC/xmit is powered by a 12 volt battery, which is also monitored by the uC/xmit unit.
The monitored range is from 0 to 18.8 volts. There is also a temperature sensor, OUT, mounted outside the greenhouse. Both the battery voltage and OUT temperature is also transmitted to the uC/recv. The soil moisture in a test container is monitored as either High or Low. The uCxmit unit will send an emergency message to the uC/recv if either of the following occurs and at which time the uC/recv, which utilizes the AT90S2313 uC, will turn on a buzzer, flash the display and turn on an LED. This condition will persist until the condition is corrected. During normal reception, the LED only blinks after valid data is received.
1) if TOP <= 32deg OR => 110deg
2) if BOT <= 32deg OR => 99deg
3) if Battery voltage < 9.1 volts
Both the uC/xmit and uC/recv units display the same information in the following format.
TOP=102 VENT76-91=O
BOT=99 M=H FAN=ON
OUT=106 BATT=12.8
HTR=47-57 HEAT=OFFx
The following is an explanation of the data displayed.
TOP, BOT and OUT are the respective sensor temperature readings in degrees Fahrenheit.
VENT76-91=O indicates that the pot for the vents is set to open the vents when TOP temperature is =>91 deg F and 15 deg less (76) the vents will shut, the O indicates that the vents are open.
M=H FAN=ON indicates High soil moisture in the test container and the fan is on since the TOP temperature is greater than 10 deg F above the vents open temperature (91).
The BATT=12.8 indicates that the voltage of battery supplying power to the uC/xmit unit is 12.8 volts.
HTR=47-57 indicates that the pot for the heater is set to turn on the heater at 47 deg F and 10 deg greater (57) the heater will turn off.
HEAT=OFFx indicates that the heater is off since the BOT temperature (99) is greater than the heater turn off temperature (57). The "x" is a number from 0 to 9 that is transmitted and displayed on the uC/recv display so that it can be determined whether sequential transmissions are being received.
BASCOM-AVR software was used to write and compile the programs for both units. The uC/xmit program has statements so that the fan will not turn on if the vents are shut and the heater will not turn on if the vents are open.
The uC/recv program has a safe guard in that it will not accept data unless a "Synch" code is received.
An RS232 interface (MAX233) is provided in both units so that data can be sent (with program modifications) to a PC for processing. The uC/xmit was built on 2 Radio Shack proto boards, one for the uC, RS233 interface, 5v reg and 2.5v ref and one for the 3 motor controller chips Allegro 3955 while the uC/recv was built on one board. The solid state relays were mounted in a separate box with an AC receptacle for the fan and heater.
Download source code in an113.zip
Download files in an113files.zip