Introduction: Automated Bean Sprouter
Sprouts are rich in minerals and vitamins and can be eaten in soups, salads and stir-fry. It also tastes great on burgers and is the easiest way to add nutrients to a meal. Sprouts is a super-food, it is very young plants that is harvested shortly after germination.
Sprouting seeds are easy, in short, the seeds get soaked in water for a few hours, I normally do mine overnight. This softens the outer shell of the seed and start the germination process. After that it is rinsed and placed in a container, it is rinsed at regularly until it is ready for harvest. This process can take anything between two and five days, depending on the type of seed.
This automated sprouter does the watering bit for you, every hour the water pump switches on for 10 seconds, long enough to cover the seeds in the drawer with water.
50g of mung seeds gives us a yield of over 400g within 3 days, that is excluding the soak time.
I've uploaded the time-lapse video to YouTube, you can see it here: https://youtu.be/5WorX91dOWY
Supplies
I used the Ender 3 to print the parts. I've printed it with normal PLA, the only color that really matters is that of the drawer, there I used transparent PLA to allow a bit of light into the drawer, and also to easier see how the sprouts are growing. 3d printer files
As commented below, PLA is not the best filament for food safe prints. Although it is food safe, there are many caveats, and PETG would be a better option for the drawer and the reservoir specifically. Alternatively, you can also coat the inside of the parts with food safe epoxy, just remember to keep the holes at the bottom of the drawer open.
Here is some more information about PLA and food safety:
- https://all3dp.com/2/is-pla-food-safe-what-you-really-need-to-know/
- https://the3dprinterbee.com/pla-food-safe/
Electronic parts:
- Arduino Uno REV3
- Breadboard
- Water pump
- 5V Relay Module
- 16x2 Character Digital LCD Module Board 5V For Arduino
- Temperature and Humidity Sensor
- Real-Time Clock Module
- Jumper Wires
- Water Pipe
Step 1: Assemble the Reservoir
I've coated the reservoir with epoxy to make sure it doesn't leak. So I would suggest to fill the reservoir with water and make sure it doesn't leak, if it does, epoxy does a great job of sealing it.
Make sure the supports is removed from the reservoir. Connect the water pipe with the water pump and place in the reservoir. The water pump goes into the back of the reservoir into the cage printed for it. The slid at the top is for excess water to run off, and typically goes to the back of the sprouter.
Step 2: Assemble the Middle
The middle part is where the drawer with the seeds will fit in, so the open side should face the front. The water pipe and electric wire of the water pump will run up in the back of the middle part. It is a tight fit over the reservoir, so make sure the parts is properly cleaned.
Step 3: Assemble the Top
The top part is where the electronics go. The bigger gap is where the display goes and should ideally face the front. In the middle of the top part is a hole for the water pipe to go through.
Don't try and put the electric cable through the hole in the back, that will be done in the next step. This step is just to put the top on and to feed the water pipe through the hole in the middle of the top component.
If you are not comfortable or confident with the electronics, you can use a timer switch and connect the water pump with that. The water pump needs to go on for 10 seconds every hour to water the sprouts. The electronics part is cool, but not essential.
Step 4: Connect the Relay
The relay is used to switch the water pump on and off, and if you are in a hurry, this is the only electronics you would need. It won't be pretty, but it will work and grow the sprouts.
I'm still finding my way with electronics, so I used this tutorial to figure out how to connect the relay. Instead of a light I connected the water pump, I did not connect the lcd display yet, and I've put the on and off function of the relay on a timer. The important part here is that the default start of the relay is OFF.
Step 5: Connect the Other Components
This step is optional, but it does make the sprouter a lot better. Here are some tutorials on putting them together:
16x2 Character Digital LCD Module Board 5V For Arduino, some great coding examples in this tutorial. The data wires must be connected to pins 2, 3, 4, 5, 6 and 7.
Temperature and Humidity Sensor tutorial, the data wire must be connected to pin 8.
Real-Time Clock Module tutorial, follow the instructions for the DS1307 module.
Don't put the electronics in the top part yet, the next step is to upload the source code. First test this before the electronics is added.
Step 6: The Source Code
#include <RTClib.h> #include <LiquidCrystal.h> #include "DHT.h" #define DHTPIN 8 DHT dht(DHTPIN, DHT22); RTC_DS1307 rtc; LiquidCrystal lcd = LiquidCrystal(2, 3, 4, 5, 6, 7); boolean pumping = false; const int PUMP = 10; const int PUMP_ACTIVE = 10; const int PUMP_WAIT = 60 * 60; int ledStatus = LOW; int ledTimer = 5000; int timer = 0; void setup() { pinMode(LED_BUILTIN, OUTPUT); pinMode(PUMP, OUTPUT); dht.begin(); rtc.begin(); rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); lcd.begin(16, 2); } String displayCountdown() { if (timer < 1 && pumping == true) { digitalWrite(PUMP, HIGH); timer = PUMP_WAIT; pumping = false; lcd.begin(16, 2); } else if (timer < 1 && pumping == false) { digitalWrite(PUMP, LOW); timer = PUMP_ACTIVE; pumping = true; lcd.begin(16, 2); } else { timer -= 1; } String timerDisplay = ""; if (timer < 60) { timerDisplay = String(timer) + " sec"; } else { int displayMinute = timer / 60; timerDisplay = String(displayMinute) + " min"; } return String(padFront(timerDisplay, 10)); } String formatTemp(int humidity, float temperature) { int hic = dht.computeHeatIndex(temperature, humidity, false); if (isnan(humidity) || isnan(temperature) || isnan(hic)) { return "Temp read error"; } return padBack("Hum: " + String(humidity) + ", " + String(hic) + "C", 3); } String formatTime(DateTime now) { String timeString = ""; int hour = now.hour(); if (hour < 10) { timeString += "0"; } timeString += String(hour) + ":"; int minute = now.minute(); if (minute < 10) { timeString += "0"; } timeString += String(minute) + " "; return timeString; } String padBack(String input, int padding) { String output = input; for (int i=0; i<padding; i++) { output += " "; } return output; } String padFront(String input, int length) { String output = input; for (int i=0; i < length - input.length(); i++) { output = " " + output; } return output; } void loop() { int h = dht.readHumidity(); float t = dht.readTemperature(); DateTime now = rtc.now(); lcd.setCursor(0, 0); lcd.print(formatTime(now)); lcd.setCursor(6, 0); lcd.print(displayCountdown()); lcd.setCursor(1, 1); lcd.print(formatTemp(h, t)); delay(1000); }
Step 7: Placing the Electronics
When everything works, place the electronics in the top part. It is a tight squeeze, and the wires should keep the lcd display in place.
I haven't created a PCB board yet, once that has been done I will update the instructable. But for now it works with the breadboard.
For now I'm using the usb cable to power the arduino, and a separate power cable for the water pump. I'm not confident enough yet to create a single power supply. With the PCB design I will create a single power supply for the sprouter.
Once the electronics is put into the top part and tested that it works, add the lid to the sprouter.
Step 8: Conclusion
As mentioned in the introduction, mung beans is a great seed to test the sprouter.
Soak 50g of mung beans overnight, and put it in the drawer in the morning and start the sprouter. I start every batch with fresh water, and the growth cycle for the mung beans is short enough that I don't have to replace the water. I would suggest that if your growth cycle is longer than 3 days to replace the water with fresh water. You can off course refresh the water as often as you like.
Happy sprouting!

Runner Up in the
First Time Author Contest
13 Comments
1 year ago
My mom used to own an Asian grocery store in Georgia and would grow her own soy beans, making tofu from some soy beans, too. She used clean Rubbermaid garbage cans with lids. I remember it having lots of water but no smells!
Reply 1 year ago
My first sprouter was a coffee bottle, I bought the brand especially for the bottle, had a nice cap that I could cut and glue the mesh to. It was in lockdown, so had enough time to water and rinse the sprouts, now it is more difficult, hence the automation :)
Still think my coffee bottle worked better than a lot of the commercial products I've tried since then.
Question 1 year ago on Introduction
Any youtube video? A timelapse would be ideal!
Answer 1 year ago
I've uploaded the timelapse to YouTube, here is the link to the video:
Thanks for your question, I've also added the link to the text :)
Reply 1 year ago
I've never programmed or used an Arduino or Raspberry Pi. I AM an avid woodworker w/ skills in that area. Is this something I could likely do / figure out, or likely difficult for someone w/o programming or Arduino/Pi experience?
Reply 1 year ago
In my opinion it is not too difficult, but I am a software engineer, so I don't think I'm the best person for an opinion on that :)
I think your easiest option would be to connect the water pump to a timer socket, that way you can set the watering cycle on the timer itself and don't need any of the electronics.
But then, try the electronics, it might be easier than you think :)
1 year ago
I'd be concerned about using normal PLA in something you're using to hold food. There are food safe plastics available... I've had good printing results using the food safe PETG from filaments.ca. They have a PLA version as well, but I haven't used it yet.
Reply 1 year ago
Thanks for your comment, I had a quick look and it seems that although PLA is food safe, there are many caveats. PETG is a better filament to use, I will update the text accordingly.
Reply 1 year ago
Hi.
In general, the raw plastic is not enough reference for knowing if it is food safe (only for knowing it is not) the thing you print is a polymer with a great collection of additives; so a safe PETG is worth nothing if the color additive is carcinogenic. See for example Prusa's note on somme of their plastics, some colors are forbidden for food contact.
PLA is perfectly ok, if the manufacturer says so. PET the same story.
Question 1 year ago
I grow sprouts. Doesn't the reservoir of water get a bit grungy after 3 days? I would have thought using fresh water is a better idea.
Answer 1 year ago
The mung beans that I grow is normally ready in just more than 2 days, so I'm able to replace the water between batches. I would say it's a good idea to refresh the water at least every three days.
Thanks for your question, I did update the text with the answer.
1 year ago
Thanks for sharing!
You should consider entering the First Time Author Contest :)
Reply 1 year ago
Thanks :) I will enter the contest :)