Sensor ModulesThese modules each consist of a Wemos Mega 2560 which also has a built in ESP8266 WiFi module. This makes each Sensor Module a standalone unit which has 16 Analog I/O pins, and 54 Digital I/O pins. The number of I/O pins makes this an ideal piece of hardware for a Sensor Module, and the built in WiFi module seals the deal. Each Sensor Module writes all it's data to a MySql Database running on a Windows 10 Laptop. Currently there are 2 Sensor Modules deployed in the Grow Room with a third unit ready when needed.
LINK: [Sensor Module - View Detailed Description]
Maintenance ModuleThere is one Maintenance Module in the system, consisting of an ESP-01 Module (ESP8266), and it's job is to maintain database integrity, process sensor data to determine if plants need to be watered, and determine if in fact they were watered.
LINK: [Maintenance Module - View Detailed Description]
Web Server ModuleThe Web Server Module consists of an ESP-01 Module (ESP8266). I could have easily created all web content on a Windows 10 Laptop which I'm using for MySql, but decided to use this tiny little postage stamp sized, $4 microprocessor, and overcome the challenges it would present. I learned a few tricks along the way,
Web Server Module - View Detailed Description
Switch ModuleThe Switch Module, which there currently is one, consists of a Wemos Mega 2560 with built in ESP8266. With 16 Analog and 54 Digital I/O pins, this unit can control many switches which may be relays, transistors, Motor Speed Controllers, Servos, etc. The operation of these switches can be driven from any sensor on the system. This unit also has special code for handling the Grow Lights, including Hot Start prevention for HID lights.
LINK: [Switch Module - View Detailed Description]
Auto Watering ModuleEach Automatic Watering Module is capable of handling up to 54 water pumps, although I am only using one at the moment while I complete testing of this system. I will add two more pumps shortly, but I will need to order more before I can increase that number. Each plant will require one pump, and one relay to drive it. Each water reservoir can contain many pumps, however, consideration must be given to the amount of water available. I'm currently using 20L buckets, with roughly 2L required for each watering. With 2L as the unusable water at the bottom of the barrel (due to pump placement) that means 9 waterings at most from a bucket. I'm planning on using 8 pumps in a bucket, so generally,. one watering... I will be exploring larger reservoirs, however, until I see the system working without incident, only then will I trust a larger volume of water in one place.I'm worried about things like a pump not shutting off, or a leak, etc...
LINK: [Automatic Watering Module - View Detailed Description]
I2C Water Depth ModuleThis is an Arduino Pro/Mini set up as an I2C Slave, using an Ultrasonic Ranging Sensor to determine the depth of the water in the reservoir bucket. Once it knows the dept, it calculates the volume of water remaining. This module is used exclusively by the Automatic Watering Module to determine if there is enough water in the bucket to begin watering a plant, based on it's requirement. Once pumping starts, the remaining volume is monitored until the correct amount has been pumped. This has many advantages over simply turning on the pump for a specified period of time.
LINK: [I2C Water Depth Module - View Detailed Description]
I2C Control ModulesThis is an Arduino Pro/Mini which is set up as an I2C Slave, and currently acts like a sensor module for a single sensor, the DIY Dual Level Soil Moisture Sensor. You simple plug these into the Sensor Module's I2C buss, and using the Sensor ID as the I2C Address, connect and read the two values. This module is part of the Dual Level sensor, and one is currently required for each sensor.
LINK: [I2C Control Module - View Detailed Description]