First let me start with, I wish I had found DietPi a few weeks ago when I started this project! (In one clean install, I got everything that I have painfully installed, wasting countless hours!!!)
I am currently developing a controller for the hydroponic farming system that we produce. Our system is designed to grow leafy greens and herbs completely indoors. Just to make it clear from the start, it doesn’t grow the other type of ‘hydroponic herb’ that people smoke. (Not judging anyone who uses it, but our system is designed for small plants with compact root systems. The other herb just doesn’t grow well in our system)
The system is completely vertical and comes in two flavors. Our first system has the lights moving on a track that goes up and down the rows. The other system is like a drycleaner’s rack where the plants move past the lights and harvesting station. The second system was the primary goal from the beginning, but the first system is easier to implement. The eventual goal is to have a robot harvest the crops and greatly reduce the risk of human introduced pathogens into the system. We have already done successful trials with a small robot from Universal Robots.
I had started building the system with Arduino Uno’s and pro mini’s but it is getting too big to handle that. Then I used OpenHab2 running on a openhabian distro. After a painful couple of weeks I eventually got the temperature and humidity data (DHT22 running on a ESP32) to show up in a grafana panel on the touchscreen interface on my Rpi3. It went via a Rpi Zero running a mqtt broker to an influxdb. (I have never programmed in Python before and my linux experience was limited and very rusty).
I like the idea of spreading the load out over multiple SBCs but can’t really decide what should go where. I have the Rpi3 running the openhab2 instance, a pi Zero W running the mqtt broker and the arduino’s running the low level control of the light motors and turning the pumps/lights/fans on and off. I have a Rpi 2 and 2 more Rpi Zero’s available. I was going to mount a Zero on the end of the robot arm to take pictures of the individual plants for monitoring. The Arduino’s are running on I2C which is basically set up like a very crude MQTT protocol. (If I had known about MQTT beforehand, I might have just set the whole thing up on that)
So my question is, how should I distribute the load? I would like to avoid buying more hardware but I will if I have to. I need to have a touchscreen interface on the front of the control panel. I am currently using a Sainsmart 7" touchscreen which has a resolution of 1124 x 624. Not great, but fine for a HABPanel interface. (I was trying to get my old CUBE GT30 10" tablet to work but it doesn’t want to boot up and I can’t find the original ROMs that I flashed to it years ago.)
I currently have a TP-link colored LED bulb outside the “barn” that is going to change color based on the temperature/humidity/co2 levels in the barn. The Co2 is monitored by a Awair glo which sends data to my android phone but isn’t integrated into the system yet. I have it set up on IFTTT.com but haven’t integrated it to OpenHab yet. The pumps and lights are actually being turned on and off via smart powerstrips running on the Jinvoo smart home app. I just purchased a 4 channel Sonoff pro, to take over that task via MQTT. I need to add water level sensors and more temp/humidity sensors.
I have recently discovered Wyze Cameras which are ridiculously cheap compared to other cameras on the market and the quality is amazing. They have IFTTT integration, but don’t have a process for taking a single photo. You can do it via their app and you can record a video, but not a single photo. The Wyze cameras seem to handle the flicker from the LED lights the best of all the ones we have tried so far.