HydroBot is a modular control system for automating hydroponic gardens.
To make the experience fit your profile, pick a username and tell us what interests you.
NFT Hydroponic System
As the world population continues to grow and become increasingly connected, more attention is being focused on the disparity in living conditions across the globe. The further technology advances, the harder it is to believe that people in many parts of the world still struggle with attaining basic human necessities such as access to clean water and sustainable nutrition, and yet these issues remain unresolved. Addressing these problems will require collaboration from the global community, and I believe that hydroponics has the potential to be at least one part of the solution. Let’s look at the reasons why hydroponic gardening is superior to traditional agricultural methods.
The biggest downside to hydroponic gardening is the cost and complexity of the system required to support it – and that’s where HydroBot comes in.
HydroBot looks to solve the problem of controlling a complex hydroponic system through automation, simple interfaces, and flexible design. Automation will be accomplished through the use of an embedded computer that will handle all the feedback control loops and scheduled tasks. The embedded computer will communicate with a server to provide data logging and an easily accessible remote interface. The server will also host a webpage with data graphs and user controls, and have to ability to send out critical system alerts. To make the system flexible, a modular architecture will be used for all functions that interact with the physical world, such as sensors and actuators. Each function will have a corresponding module to carry out that specific task and report back to the embedded computer, which will act as a central hub for these modules. A multi-drop communication network will be used to connect the modules to each other and to the central hub. A block diagram of this system architecture can be found below.
HydroBot Block Diagram
Although each module will be developed separately as the need arises, there are some high level system design decisions that will dictate the requirements for the modules. CAN has been chosen as the primary communication network for HydroBot, because it meets the multi-drop requirement, works well over relatively long distances, is very robust to environmental noise, handles errors gracefully, and has built-in arbitration and message priority. Support for additional communication protocols may be added in the future as needed – for instance, if an application requires wireless communication. To make the system as flexible as possible in a variety of applications, both 12V and 24V power will be supported. Modules will also be daisy-chain-able and allow up to 1A of pass-through current. To keep connectors consistent, JST ZH series has been chosen for module connections when possible. To keep a consistent code base and shared libraries across modules, STM32 microcontrollers will be used as the standard for module processing.
Several key modules have been identified to fulfill the basic functions required in most hydroponic systems:
ProtoModule is a HydroBot module designed to easily develop and test new monitoring or control functions that may someday go into a HydroBot module. It has 11 GPIO pins and the power rails broken out on a 0.1” pin header for easy breadboarding or interfacing with ribbon cables. The provided pins give access to a variety of digital and analog I/O, as well as digital communication peripherals, to allow for many flexible design options.
Since it is intended to be used as a development board, this module has no predefined behavior. The 11 GPIO pins were selected to provide a broad range of functionality and can be used as analog, digital, or frequency inputs, digital, or pwm outputs, SPI, I2C, or UART communication ports, timer/counter channels, and more. This flexibility enables interfacing with a variety of sensors and actuators, which will be useful in testing out new HydroBot features before integrating them into dedicated modules.
All source can be found in the HydroBot repository, including firmware source code and hardware files. The BOM and generated gerber files are also included for easy replication.
HydroHub is a HydroBot module designed to connect together HydroBot modules in a star topology. The hub provides power and CAN connectivity to a total of eight channels. It has a DC barrel jack for connecting an external power supply, as well as selectable termination for the CAN bus.
HydroHub Features:JST-PA Series Connectors
This design introduces the switch to JST-PA series connectors for HydroBot modules. These connectors, although somewhat bigger and more expensive than the JST-ZH connectors used previously, will allow for lower gauge wiring and much higher currents than before. The new connectors support 22-28 gauge wiring and up to 3A per pin. All new module designs going forward will use JST-PA connectors and existing modules will be updated as part of the next revision cycle. The first module that has been updated to include the new connectors is the AirSense module, which has also added a light sensing feature. Other HydroHub features to note include a constant current driver for the power indication LED to keep brightness consistent over the entire input voltage range, and a CAN bus termination resistor that can be selected using a simple jumper to accommodate the needs of various network topologies.
All source can be found in the HydroBot repository. The BOM and generated gerber files are also included for easy replication.
RelayDrive is a HydroBot module designed to drive relays and other electro-mechanical devices. It consists of 4 low-side outputs, each rated for 1A continuous current, as well as 4 digital inputs, and is controlled over CAN. This module is intended to drive mechanical relays, solid state relays, and solenoids for controlling devices such as lights, pumps, heaters, fans, and valves in a HydroBot hydroponic system.
RelayDrive Features:
Each of the outputs of the RelayDrive module can be controlled as discrete on/off switches, or can be configured as PWM outputs. Each of the inputs can also be independently configured as digital inputs or frequency inputs. Frequency inputs are measured in Hz and can currently read input signals up to 1KHz. The default firmware uses a CAN baud rate of 500K. It sends out status messages on ID 0x204, with digital or frequency input readings, and receives command messages on 0x203 to control outputs and set input and output configuration.
IMG_2503
Because many devices in a hydroponic system run on mains power and require relays for control, I packaged up 4 solid state relays in a 2 gang electrical box. This keeps all the relays together without exposing any hot wires, and the 4 controlled outlets match up nicely with a single RelayDrive module.
All source can be found in the HydroBot repository, including firmware source code and hardware files. The BOM and generated gerber files are also included for easy replication.
AirSense is a HydroBot module designed to measure air temperature, relative humidity, and barometric pressure. It uses the Bosch BME280 atmospheric sensor to take measurements and sends the results out over CAN. The module can measure temperatures from 0 to +65°C with ±1°C accuracy, humidity from 0 to 100% with ±3% accuracy, and pressure from 300 to 1100 hPa with ±1 hPa accuracy. Three LEDs indicate device status, CAN activity, and error states.
AirSense Features:The default firmware uses a CAN baud rate of 500K and sends out messages on ID 0x201. Temperature is recorded with 0.01°C resolution, and is sent in bytes 3 and 4 of the CAN message data. Humidity is recorded with 0.01% resolution and is sent in bytes 5 and 6. Pressure is recorded with 0.1 hPa resolution and sent in bytes 7 and 8. By default, sensors readings are taken every 100ms, and a message containing averaged measurement data is sent out once every second. Future firmware work will add module configuration over CAN with settings including CAN baud rate, CAN id, data frequency, sensor calibration, and more.
All source can be found in the HydroBot repository, including firmware source code and hardware files. The BOM and generated gerber files are also included for easy replication.
Create an account to leave a comment. Already have an account? Log In.
to follow this project and never miss any updates