Hello to all DIYers of this forum.
This is my first post in "Planted Tank" although I am following your conversations for a long time.
I'd like to present an open aquarium controller I am working on for some time.
The controller is based on a Raspberry pi B+ and a custom PCB.
It is designed to be completely WEB based. The controller provides the following characteristics :
- Lights controller : 3 channels PWM with configurable output levels + 3 relay switches. The light controller is driven by 3 programmable arbitrary waveform generators and a time scheduler so sunrise/sunset, peak hours and moonlight effects can be easily programmed.
The scheduler gets information from a .ini style file. Among others this file contains the scheduler section. This section looks like this:
Every channel currently supports up to 16 points per day. Between points the controller ramps up or down linearly.
- High quality instrument grade pH sensor 20bit interface with automatic temperature compensation.
- CO2 controller with programmable set point, hysteresis, alarm points etc
- High quality RTD (pt100) 20 bit temperature sensor.
- Temperature controller with programmable set point,hysteresis,alarm points etc and separate outputs for heaters and coolers/fans etc.
- on board RTC (DS1307) with battery backup (in the case of internet connection failure).
- Three (3) auxiliary 20bit differential analog inputs for other sensors (TDS, pressure, level etc )
- Two One-Wire interface conectors wit 3/5V interface. I am currently using one of them to interface an AM2302 Temperature/humidity sensor.
- i2c and I/O expansion connector for future upgrades like more pwm channels,extra i/o etc.
- On board buzzer for alarms.
- Mysql database logging.
The main controller app is programmed in plain ansi C. It is still under development but it is fully operational. What is missing is the WEB part.
I abanoned my initial idea to base the web part on Apache/PHP server and I am currently working on a NodeJS version. Since my experience in web programming is limited, this is gonna take some time
I was hopping to find people willing to contribute in coding but I am still working on it alone.
Currently I am using the .ini file to configure the controller. You can download the current snapshot of the code from my GIT repository here
The hardware part of the controller is based on a custom board called piAquarium shield.
You can download the pcb files from my piAquarium site here
. I admire that it's assembly is not for the fainthearted but I am sure that many people here are able to build it successfully.
Feel free to comment.