Controllers and Components


This sections aims to give a broad overview of some controllers and other components you may want to use in your system. It was no intention to provide a complete list, but rather to show the environments and components most used for setting up and running small hydroponic systems at home.


Raspberry PI

Raspberry Pi is a single-chip micro computer invented by the Raspberry Pi Foundation with the goal to ease the start with programming and computer education [45]. Hence, it is also offered for a relatively cheap price of 10 € to 60 € [15] and operates on an open source ecosystem [45]. It has the size of a thicker credit card, and is able to run a complete operating system like Linux or Windows. Furthermore, it offers several digital serial and non-serial pins and ports, enabling to connect with various peripheral devices, boards, modules and sensors and to start most divers projects. It is now in the 4th generation, also having USB-C.

In the realm of hydroponics, the Raspberry Pi is a well capable system, which just needs analog-digital signal converters for some sensors you may want to use. The main programming language on the micro computer is Python, but there are many others you may find suitable for your project as well like, Blender, Crumble, Scratch or HTML and CSS.


Arduino

The Arduino and its IDE was the first widespread open source environment, which was introduced in 2005 [3]. It was initiated to build a community, each working on their private micro-controller based projects but being able to get help from similar minded and interested community contributors. Hence, the community has lead to new hardware and software solutions for many many different fields including monitoring systems, robotics and IoT [8, 15, 34].  Thereby, the community shows its strengths in further developing the Arduino IDE (the software environment, which is based on adapted  C and C++ programming language) and quickly providing libraries to support new analog and digital hardware.

In your hydroponic project you will be able to use Arduino to directly gather and process all sensor data desired. Furthermore, you may find libraries for most hardware, significantly facilitating the programming part. But you may need to include more peripheral devices and modules to support actuators and IoT compatibility than you would have with a Raspberry Pi.


Expansion Boards

There are many different expansion boards for Arduino and Raspberry Pi on the market [15] to help you out with your cable management and electric circuits by providing ready to use connections for specific application of hardware. Hence, beginners will definitely profit from expansion boards. They may also safe you a lot of time connecting all components and including all required libraries, but they don't provide your micro processor with additional functionality. Nonetheless, a clean hardware setup not only looks better and simplifies its management, but also may allow to safe some space.


RTC Module

RTC stands for Real Time Clock, which allows you to track date and time [15]. Wether Arduino nor Raspberry Pi have one included [3, 45], hence you may consider getting a RTC module, if you are saving your data locally on a SD card. If you send your data other devices or services with online connection, they will be able to keep track of date and time through them. But remember, as soon as something goes wrong with your connection and you still require to save the data somehow safely, and RTC module may be unavoidable. There are several libraries available, some even offering features like countdowns, timers, etc. [15].


SD-Card Module

An (micro-)SD Card module is included in some Arduino and Raspberry Pi models, but not all of them [3, 45]. Either way, it comes very handy, if you don't want to have your data somewhere online but rather prefer to store it in your own home network or desire to save your data additionally on the SD in case some online data transfer goes wrong. External SD card modules are connected via digital pins, but there are different connection types available; all of them should be easy to install and to use.


Communication Module

For an hydroponic setup at home, a WiFi module may be the most interesting communication technology out there. It is included in most Raspberry Pi models but only on certain Arduino boards [3, 45]. Nonetheless, there are many different modules available, which you can either connect to the micro controller in order to provide that functionality. Additionally, you may just connect the sensors directly to some WiFi module and upload the data to a specified server. It should be mentioned though, that you may get an WiFi module with an old firmware version which must be updated before being ready for usage – a rather tricky process that requires another wiring and additional software [3, 15].

Other communication modules include NFC (standing for Near Field Communication, with several centimeters of range and close to non power consumption), Bluetooth (range of several meters, high speed transfers and moderate energy consumption), LoRa (standing for (Long Range Communication, with several 100 meters of range, high speed transfers and moderate energy consumption)) and others.


Relays and Actuators

In case you want to automate your hydroponic system, including fertilizer-, water- and pH-adjustment-feeder, nutrient solution circulation, lights or ventilators, you will require relays and actuators [3]. The latter are motors, ventilators or lights,  that convert the provided electrical energy into a different form. Because this process requires more power than the Arduino or Raspberry Pi can deliver by themselves, relays are included as well: they are connected to an additional power source, next to the controller and actuator. For the time period that the controller wants to run the actuator, the relay provides the actuator with sufficient power to fulfill its task [3, 15].


Analog Signal Isolator

And now an hint, that would have solved some people's headaches: In case you have several analog data signals from sensors and co. going to your Arduino, you want to isolate them from each other using an analog signal isolator [15]. That is because otherwise they are going into the same electrical circuit causing interferences and data values being totally off.


Link to References