Let's create an open source GrowBox!

Boxman

420 Member
Hi I have studied about indoor growing and I have tried to create a DIY automated controller for indoor grow with arduino. I have seen a lot of projects that they try to do that but all of them is either old or they have a lot of bugs and it is difficult to scale the code if you want to do something extra. Also the controllers in the market are to expensive for me so I will invest some of my time to try to create something cheaper and better. I can imagine a community that try to create a open source Indoor Grower that it is eazy to use and cheaper from the others.I can imagine to open an app, select the configuration you want and generate the code to arduino connect the arduino with the sensors and the relays and you are ready. Of course if you want you control it you can communicate either from a raspberry pi or a website or what ever you want because you will have a API that makes the communication with the controller easy and fast. Also can image that people share 3d printed parts and even full kits that you can assembly and have your own grow box.

What do you think about my thoughts?
How could I start this idea?
Is it anyone here interesting about that?

Sorry if my English isn't the best it is not my native language.
 
Hi I have studied about indoor growing and I have tried to create a DIY automated controller for indoor grow with arduino. I have seen a lot of projects that they try to do that but all of them is either old or they have a lot of bugs and it is difficult to scale the code if you want to do something extra. Also the controllers in the market are to expensive for me so I will invest some of my time to try to create something cheaper and better. I can imagine a community that try to create a open source Indoor Grower that it is eazy to use and cheaper from the others.I can imagine to open an app, select the configuration you want and generate the code to arduino connect the arduino with the sensors and the relays and you are ready. Of course if you want you control it you can communicate either from a raspberry pi or a website or what ever you want because you will have a API that makes the communication with the controller easy and fast. Also can image that people share 3d printed parts and even full kits that you can assembly and have your own grow box.

What do you think about my thoughts?
How could I start this idea?
Is it anyone here interesting about that?

Sorry if my English isn't the best it is not my native language.

Welcome to our little virtual village :welcome:.

I like your idea, but I'm worried about scalability. Some people will only want certain features, where others will want more. Having the ability to "add" more functions make the price much higher, and the design much more complicated. I'm am a PCB designer and a builder so I understand the complications of doing so.....

I just don't think there is enough call to make something that would be cheaper than what is available. When you start adding things, the price gets high pretty quick, with low run boards, and a small quantity of parts, the suppliers do not give discounts on the parts.

Also, the interface would need to cover a wide range of different operating systems or devices. It makes for a very large project.

Interested to see if you go forward with this.......

This is all my opinion only......

I do hope you will stick around and be a participant in the community....we always want more people......read, ask questions and belong....
 
The problem with open source anything is your relying on everyone to do things exactly the same coding wise. Your project sounds great and very similar to what I've been working on. Biggest difference is I plan to sell mine to all the lazy growers out there. Most people that bother to put in the time it would take to polish these small scale applications upsize before it's much more than an experiment.

Sourcing components to maintain environmentals in small scale applications is a pain in the butt and usually take up as much area as your trying to grow in.

Lighting source options are getting better but still limited to diy builds to get appropriate coverage in the height constraints of most "grow box" applications.

The thought of a centralized app for people to download sounds cool but more like a nightmare for development. Having adjustable settings and listed recipes on a website or ebook would be far simpler.

It's an ambitious goal, I have a background in commercial HVACR, I'll help where I can if you continue with it.
 
Welcome to our little virtual village :welcome:.

I like your idea, but I'm worried about scalability. Some people will only want certain features, where others will want more. Having the ability to "add" more functions make the price much higher, and the design much more complicated. I'm am a PCB designer and a builder so I understand the complications of doing so.....

I just don't think there is enough call to make something that would be cheaper than what is available. When you start adding things, the price gets high pretty quick, with low run boards, and a small quantity of parts, the suppliers do not give discounts on the parts.

Also, the interface would need to cover a wide range of different operating systems or devices. It makes for a very large project.

Interested to see if you go forward with this.......

This is all my opinion only......

I do hope you will stick around and be a participant in the community....we always want more people......read, ask questions and belong....




I understand what are you trying to say but there are possible solutions for that problem.For example as a first step I could be a very basic prototype that can use a average grower and then try to scale it.The cost on the other hand (yes it goes up if you buy the hardware) but you can create a really good software that can use the data from the controller to do make some statistics for example with zero cost (except for your time ) .

As for the deferent operating systems I was thinking 2 possible solutions.Fist you have a servers connected to the arduino and take all the data from there or you connect the arduino to a raspeberry pi and have a API to help you take data from the raspberry pi to the application (what ever os you have).In addition there are some programming language that have no problem to work both linux and windows or ios.
 
I understand what are you trying to say but there are possible solutions for that problem.For example as a first step I could be a very basic prototype that can use a average grower and then try to scale it.The cost on the other hand (yes it goes up if you buy the hardware) but you can create a really good software that can use the data from the controller to do make some statistics for example with zero cost (except for your time ) .

As for the deferent operating systems I was thinking 2 possible solutions.Fist you have a servers connected to the arduino and take all the data from there or you connect the arduino to a raspeberry pi and have a API to help you take data from the raspberry pi to the application (what ever os you have).In addition there are some programming language that have no problem to work both linux and windows or ios.

I hope you do continue...it would be nice to have an open source grow controller. I just wanted to make sure you understood all the pitfalls. Many think of projects like these and do not look at all that is involved.

I hope you document your efforts here.....I'm interested in reading and possibly building one in the future.. :thumb:
 
Lets try and be more specific.I will try to explain the general plan that I was thinking.The hardware that will be used :
-1 arduino uno (or mega). It could be a good idea to have a wifi module.
-1 raspeberry pi (could be any OS).
-some sensors (e.x temperature, humidity)
-some relays.

The project would have three sections.The first part will be the main program that will run in arduino.The second will be the program that will talk with the raspberry pi and it will be possible to control the arduino from the internet.(May be will be possible to have and other ways to communicate).And the third will be a program that will produce different versions of the program that will run on the arduino.


The program in arduino, is going to contain these parts:
-It will set up the sensors and do the configurations that are needed for the sensors and relays.Also it will start a communication with the raspberry through wifi and will check if everything is working well.
-It will have a main class that is going to contain all the information that the raspbery may need (e.x. temp, humidity,time scedule)
-A set of functions that will be triggered when that lights or the water should be on and off.

The program in raspberry, is going to contain:
This is the part that it gets funky because you can do a lot of versions.But the main idea is to have a very solid and well structured communication protocol that any one can take that data and do any calculations he wants.


And the the other program will have a ui that will give to the user the ability to generate the code from the arduino automatically and let him configure the model of the sensors or the pins of the relay and this kind of stuff.

What is your opinion? What did I miss? Every help or suggestion is welcome.


Sourcing components to maintain environmentals in small scale applications is a pain in the butt and usually take up as much area as your trying to grow in.
Sorry I did not understand exactly what you are trying to say.

Also It could be a experiment that if it succeeds can have very good uses.
 
The only part I see is an interface. Some people will not have a computer available to interface with the system. There will need to be an interface for input to change settings and some kind of display. I would make that standard and let the builder decide if they want a computer interface or a direct interface.

This is all my opinion though....
 
Sorry I did not understand exactly what you are trying to say.

Also It could be a experiment that if it succeeds can have very good uses.

What equipment will you use for de/humidifying, heating or cooling the space?

I've built a couple of these things.
Space buckets
 
The only part I see is an interface. Some people will not have a computer available to interface with the system. There will need to be an interface for input to change settings and some kind of display. I would make that standard and let the builder decide if they want a computer interface or a direct interface.

This is all my opinion though....

You are kind of right.
The main class will give you all you need to create what ever interface you want. The problem is that every screen in arduino is working different and you have to know how to code that. The idea is to have a very good API so the developer can use it and do what ever he wants. If the user has not a computer for sure he has a mobile phone with internet connection.So the best practice maybe is that arduino creates a webserver and you controlling from there.
 
What equipment will you use for de/humidifying, heating or cooling the space?

I've built a couple of these things.
Space buckets

for de/humidifying and cooling It could use the fans and for heat may be a heatbed.You can control the fans though a dimmer. I have seen that some they buy some devices that they spray water to the air but it is to expensive to start with. What do you using for that?Does it work well?
 
You have a lot of design work ahead of you.

You can not add moisture to a space with a fan.

I know what your thinking, turn the fan off humidity will rise. Doesn't work like that. Stop the fan and temps rise too which will lower your Rh. You need to add moisture to the air.

Long story short what your looking for is a huge project that needs a truck load of money to get it off the ground. I've been developing my chamber for a few years now and have wasted thousands of$$ and countless hours on the few prototypes I have.


Customer purchase point, production availability, cost of components, shipping costs. Soo much stuff goes into a marketable product. Will it be fully plug and play or a diy projects? One ships cheaper than the other but diy parts are available to everyone else at the same price as you unless you can afford to order massive quantities.

If you've got the pockets I have designs id be willing to sell. :p

@Niwashi has done a bit with automation and arduinos, he's trying to establish a baseline language for coding the controls so they can be easily shared. Maybe find his thread and take a look.
 
You are kind of right.
The main class will give you all you need to create what ever interface you want. The problem is that every screen in arduino is working different and you have to know how to code that. The idea is to have a very good API so the developer can use it and do what ever he wants. If the user has not a computer for sure he has a mobile phone with internet connection.So the best practice maybe is that arduino creates a webserver and you controlling from there.

I think the wireless webserver would be the best control interface, if very simple. Most older guys can be technically challenged. So using a phone or laptop would be a great way to save on hardware needed.

You have a lot of design work ahead of you.

You can not add moisture to a space with a fan.

I know what your thinking, turn the fan off humidity will rise. Doesn't work like that. Stop the fan and temps rise too which will lower your Rh. You need to add moisture to the air.

Long story short what your looking for is a huge project that needs a truck load of money to get it off the ground. I've been developing my chamber for a few years now and have wasted thousands of$$ and countless hours on the few prototypes I have.


Customer purchase point, production availability, cost of components, shipping costs. Soo much stuff goes into a marketable product. Will it be fully plug and play or a diy projects? One ships cheaper than the other but diy parts are available to everyone else at the same price as you unless you can afford to order massive quantities.

If you've got the pockets I have designs id be willing to sell. :p

@Niwashi has done a bit with automation and arduinos, he's trying to establish a baseline language for coding the controls so they can be easily shared. Maybe find his thread and take a look.

Turbo, I think he is talking about an open source project, not a prebuilt controller. There is a lot of design and programming to be done, but he only has to do it enough to get one running. Then the design is posted. Revisions would be done from people building the design and suggesting changes. Like a beta test system.

Wouldn't cost a lot, but the amount of work is significant. Getting everything to be friendly and work together is usually the hurdle with most projects.

It is doable.....just more work than I'm interested in getting into..... teaming up with Niwashi would be a great benefit for both of them...... split the work load...
 
@Boxman I have had some luck using homeassistant running on a raspi with a couple sensors on it. Homeassistant can take the data from the sensors and send commands to various smart outlets.

I’ve actually found that with my tent, using the native scheduling and circulate functions on the outlets gives a better result for lights, pumps and fans.

I would like to get auto PH control eventually, that’s my biggest desire for the raspi/Adurino setup.

Looking forward to see what you come up with.
 
@Niwashi I have try to connect varius sensors with raspberry pi and I noticed that rasp could not read always the currect value.I think that the cpu of the rasp cant read the signals from the sensor but I am not sure.
How did you do it with Homeassistant? What is the main problem that you can not control PH with that?
Also what it is native scheduling and circulate functions I cant tell that I understood exactly.
 
Here Is a very simplified diagram.

The arduino has 2 main functions. The setup and the loop.
In the setup fuctions there are some jobs that has to be done.
First It has to check if there are previous settings if yes just configure with them.If the are not previous settings it has to wait to get the settings.
I research a little bit and I found MQTT( MQTT) it seems that this is the best way to let arduino communicate with other devices. So it will wait a message from the server to give it the settings( e.x how much time the light on/off, water etc.).I found This video very usefull to understand MQTT btw.

An other problem that I think about is what happens when the arduino goes off? What happens when the power goes on again?
Also It will need a clock that never stops count.If you have a other idea please tell me, I could not found a better way to do it.

Finally, What functions are needed to be done from the arduino to grow the plan and make the life of the grower easier?
For example how do you like to set up the light on/off program?

This is just some thoughts. Any opinion is helpfull.
 
@Boxman I have managed to wire up an air temp/humidity sensor and water temp sensor. I agree that its not the best interfacing directly to the raspi. I have wanted to explore the adurino a bit more, but I want to use multiple adurinos. One for the sensors to interface with, one for the relays to interface with and a separate one to control a ph sensor, TDS sensor and two small pumps for PH up and PH down. Then allow home-assistant on the raspi to handle the logic.
 
@Niwashi I think that you need to learn about MQTT. It allows you exactly that.You create a Broker and then different devices can exchange messages on topics. For example lets say that I have an arduino with relay for lights and a other one for the water each one can listen to the topic that they want. And if you have 2 arduino for the lights then both can listen to the same topic and do stuff.
 
@Niwashi If you have Sonoff smart outlets it is possible to run a MQTT server I can she here. Probably you will not need to play with high voltage. You can look in github here but I am not proud of it. I think that has a lot of problems and may be will be usefull for some parts of code. In the next days I will start a new github and try again :p
 
Back
Top Bottom