I'm an old hardware tech and web programmer but a pretty much a newbie with these new microprocessors. I'm starting a new Aquaponics business and want to automate some of the repetitive tasks using open source hardware. Below is a list of the tasks I'd like to eventually automate. First, can any of the Arduino type microprocessors handle the inputs/outputs and programming logic to act as a stand alone controller? If so, which one should I use? I'm more concerned about picking a platform that I can learn and stick with, rather than one that is extremely easy to learn or extremely cheap to start using. Any suggestions?
Thank you for your time. Have a great day!
Open or close shade cloth and insulated cover cloth:
if time > sunrise + X, open insulated cloth cover
if time > sunrise + X and magnetic swith not made, set alarm
if time > sunset - X, close insulated cloth cover
if time > sunset - X and magnetic swith2 is not made, set alarm
if air temp > X, close shade cloth
Turn exhaust fan on or off:
if air temp > X, power exhaust fan
if air temp < X, power heat pump, set alarm
Turn pump on or off or divert water:
if water temp > X, power three solenoids
if water flow < X (or water pressure < X), remove power from circulation pump, set alarm
if trough1 water level < X, remove power from circulation pump, set alarm
if trough2 water level < X, remove power from circulation pump, set alarm
if trough1 water level > X, remove power from circulation pump, set alarm
if trough2 water level > X, remove power from circulation pump, set alarm
if tank1 water level > X, remove power from circulation pump, set alarm
if tank2 water level > X, remove power from circulation pump, set alarm
if filetr tank water level > X, remove power from circulation pump, set alarm
Every 5 mins send seven temps to a server
Looks like 16 IO needed, with 2 IO for motors that open & close?
Uno will do that.
If need more than 20 but well under the 54 of a Mega, than a '1284 based system will do 32.
An Uno and a shift register might be used for motor controls too, need inputs for a motor H -bridge that will be on inone direction (wait-wait-wait for open) or the other (wait-wait-wait for close), and same for fan (on, or off) and pump (on, or off).
Looks like 8, 9 analog level inputs? Maybe I2C devices? Or a mix of the 2? Uno has 6, 1284 has 8, you need to define what those will be.
Either of these 1284 boards could be adapted to add chips for motor drivers, transistors for pumps, fans.
Same for a 328 board.
Ah - server - in that case, use a board that an ethernet shield can plug onto for network access as well.
Thank you for the comments. After counting through my estimates again, I can probably get by with 8 digital outputs, 9-10 digital inputs, 2-3 analog inputs and a rtc.
You didn't mention the feasibility of fitting the coding to control these into the platform memory. Maybe you could just give your opinion of something along the lines of whether it is likely a good programmer could easily fit such a program in the existing memory, or a poor programmer is VERY unlikely to be able to do so :).
My main goal with this is to avoid putting the programming logic on a web server or PC or similar that needs a constant connection. I would like the final version to be able to run off the grid for several days since I often lose power several times a year for up to several days.
8+10+3 = 21. 1 too many.
Codewise, very small.
I coded a fencing scoring machine, it was spread across 7 tabs of the IDE, and I'm a bit of a hack when it comes to programming (not a single function in the whole thing!) and it only used 13K of memory.
You're gonna do some analog readings, set an output high or low.
Make some time readings (internally created or from battery backed RTC) and set an output high or low.
Codewise, that is bordering on trivial even for me.
I'm a bit of a newbie so mianly reading these threads to learn. I didn't think the Arduinos had a real time clock. Won't that be an issue for keeping time over long term? If you have a clock/calendar then you would know sunset,... Based on date.
What about dealing with the shades based on light level. Isn't that the real variable of interest?