Arduino Managed Greenhouse - SHProject 6

by DeviceCtrl in Circuits > Arduino

231 Views, 2 Favorites, 0 Comments

Arduino Managed Greenhouse - SHProject 6

PXL_20230817_165157705.jpg
PXL_20230501_184213418.jpg

This project will use an Arduino to help manage a small greenhouse to grow strawberries. It will protect the plants during the cold of winter and from pests and insects during the growing season. Since I have a rain water collection system, I can give them consistent and measured watering. The Arduino monitors the temperature and can activate a heater during cold spells or a large fan if the temperature gets to hot. It also monitors the water tank using horizontal liquid float switch (to prevent the pump from running dry). The water pump uses micro tubing to deliver the right amount of water to each planter.

Supplies

arduino uno pinout.png

Arduino Uno

Arduino Ethernet shield

12vdc to 9vdc power supply

120vac Solid State relay

12vdc Solid State relay

5V Optocoupler relay

12vdc PC cooling fan

12vdc water pump

DHT11 temperature and humidity sensor

DHT22 temperature and humidity sensor

500-Watt Ceramic Small Indoor Space Heater

waterproof project box

planters

small backyard greenhouse

water tank

outdoor wiring

outdoor Ethernet cable

Downloads

Arduino Schematic

greenhouse_Arduino_schematic.png

I like to begin my Arduino projects by mocking up the wiring using bread boards and jumper wires. Adding each component one by one, ensuring that I have hooked them up correctly and they are giving the expected results. So follow the above diagram to construct the device.

Assemble Your Greenhouse

PXL_20230817_165157705.jpg
PXL_20230501_184213418.jpg
PXL_20230429_204521379.jpg

Build or purchase a small to medium greenhouse. I had treated lumber and salvaged window glass and Plexiglas on hand, so I built a simple greenhouse. There are also very nice urban greenhouses on Amazon or at your local garden center.

Micro Tubing Watering System

micro-tubing.png
rv_water-tank.png
DC_water_pump.png
268861346467.jpg
ntp_fittings.png
dc-SSR.png

This next part takes a bit of plumbing. I installed a small 10-15 gallon RV tank at the bottom of the greenhouse. From there I ran PVC piping from the tank branching out to micro tubing at each level of the greenhouse. These small RV tanks are perfect for this kind of project. A small water pump can be attached to the bottom 1/2 inch female NTP opening and the horizontal float level switch can be installed at the 1.5 inch female NTP fitting on the opposite side.

A solid state relay will be used to activate the pump. The Arduino will first check the float switch to ensure that there is water in the tank. This will prevent the pump from running dry.

Heating

ceramic_heater.png
ZGT-40_SSR-AC.jpg
514y0a2sUAL._AC_SL1000_.jpg

To prevent damage or freezing during the coldest part of the winter, I installed a small space heater, that is activated by a solid state relay. It's not necessary to keep the greenhouse at super warm temperatures. It just needs a little heat to keep the interior temperature above freezing. The DHT22 will monitor the temperature and humidity in the greenhouse and be used to determine when to activate/deactivate the heater.

System Unit Cooling

12vdc_PC_fan.png
5vdc_relay.png
dht11.png

The system unit will be outside and subject to very high temperatures during the summer. I recorded temps around 120F/49C deg. So I installed a DHT11 inside the project box. The DHT11 is cheaper and not as accurate as the DHT22, but its good enough to monitor the temp and turn the cooling fan on and off.

Project Box

81xNuT43cNL._AC_SL1500_.jpg
FSDLW3KLXD9SM9L.jpg
ethernet_bulkhead.png

Very important to put all the electronics in a waterproof box with waterproof bulkhead connectors

Arduino Ethernet Shield

61aiitos81L._AC_SL1000_.jpg

While preparing and mounting all the components, don't forget to first mount the Ethernet shield to the Arduino Uno. Make sure the Cat6 Ethernet cable is rated for outdoor use. If you dont want to run cable, Arduino makes a WiFi shield for the Uno.

Polling and Commanding the Unit

FHRDZ5BLXDJ6XWO.png

Since this unit will be installed outdoors, it's not practical to connect a display. Instead, I have my PC poll the system unit every minute and store the readings in a SQL database. This gives me both up-to-date environment data, water level and disposition of the heater and fan.

I decided to use UDP protocol instead of TCP. Arduino's Ethernet/WIFI library include software to communicate using UDP. Every minute my PC sends a timestamp in the form of r2406131422054 - this translate to 2024-06-13 14:22:05 4=Thursday (ie day of the week)

Sending a timestamp to my Arduino devices is very handy. It allows the device to know the date and time (within a second) without any additional code, NTC sync or RTC device.


If the device receives this string, it immediately responds with a tab delimited string of the current sensor readings. like: C\t000\t79\t761\t99\t1\t745\t95\t22300209

This is made up of Temperatures, humidity, water level, pump and fan relays and the current watering schedule.