Orca is an opensource aquarium controller that uses affordable and easily accessible components such as the raspberry-pi, arduino, and other components frequently found on adafruit. The objective of this project is to create a modular, affordable, DIY aquarium controller to monitor, automate, and simplify maintanence of your aquarium similar to the level of other consumer level controllers. The project consists of a two part system: a cloud/web based monitoring, controller, and backup, as well as an all-in-one physical controller to run and manage your tank(s) when offline.
- Multiple Tank Support
- Auto Top Off System
- Temperature monitoring
- Salinity Monitoring
- Data Graphing to examine data
- Controllable Power Outlets
- Text and Email Notifications/Alerts
- Text and Email Timed Reminders
- User Authentication for Administration
- Standalone and cloud based support
- Fully customizable macros / configuration
This README is to explain how to put together the physical components of the controller. While in development I will be using breadboards and converting them into a soldered pera-board once I feel comfortable with the layout.
sudo apt-get update
sudo apt-get dist-upgrade
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v
to verify you have the correct version- If you get
/usr/local/bin/node
not found:
ln -s /usr/bin/node /user/local/bin/node
cd ~
wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.50.tar.xz
tar xvf bluez-5.50.tar.xz
cd bluez-5.50
sudo apt-get update
sudo apt-get install -y libusb-dev libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev
./configure
make
sudo make install
sudo systemctl start bluetooth
systemctl status bluetooth
Should see Active statussudo systemctl enable bluetooth
- Reboot the pi
sudo nano /lib/systemd/system/bluetooth.service
- Add
--experimental
to the end ofExecStart
line
- Add
sudo systemctl daemon-reload
sudo systemctl restart bluetooth
- Raspberry-Pi Model 3B
- Arduino Uno R3
- Jumper Wires
- Breadboards
- Proto-boards
- Resistors
Integrate with the power strip to achieve heater control based on temperature. More information to come.
- DS18B20 Temperature Sensor
- 4.7k ohms resistor
- Enable 1-Wire Mode.
- Via Raspberry-Pi Configuration:
- Go to Raspberry-Pi Configuration -> Interfaces -> and Enable 1-Wire
- Manually:
sudo apt-get update
sudo apt-get upgrade
sudo nano /boot/config.txt
- Add
dtoverlay=w1-gpio
on the bottom line CTRL-X
thenY
thenRETURN
sudo reboot
- Via Raspberry-Pi Configuration:
- Find your 1-Wire Device running
ls /sys/bus/w1/devices/
in shell - Copy /controller/rasperry-pi/piMonitor to your rasberry-pi
- Setup a cron task to automatically run at the time interval you want
- */15 * * * * python /var/www/piMonitor.py (this runs every 15 minutes)
-
This procedure toggles the protocol between UART and I2C. If the EZO Circuit is in UART mode, this procedure will switch it to I2C. If it is in I2C mode, it will switch it to UART.
- If Circuit is blinking
Green
andCyan
then the circuit is configured in UART mode - If Circuit is blinking
Blue
andCyan
then the circuit is configured in I2C mode
Before starting the procedure, remove the EZO Circuit from the Tentacle (or other carrier boards). Remove power and all connections.
This procedure is easiest using a breadboard and a set of jumper wires
- Connect (shortcut) these two pins: * PGND pin to the TX pin
- Power the EZO Circuit (GND, +5V)
- Wait for LED to change from green to blue (UART->I2C) or from blue to green (I2C->UART).
- Remove the jumper wire from the PGND (or PRB respectively) pin to the TX pin
- Remove power (GND, 5V)
- If Circuit is blinking
-
- Do not plugin your Tentacle T3 to the PI yet, boot the PI
sudo raspi-config
- Enable
I2C
- Reboot your PI
- Upgrade PI with
sudo apt-get update
&sudo apt-get upgrade
- Install I2C Tools with
sudo apt-get install python-smbus
&sudo apt-get install i2c-tools
- Reboot the PI
- Test I2C
sudo i2cdetect -y 1
- You should see
64
in the table
This is a simple arduino controlled power box. Right now being run independently to drive the ATO temperatures. There are 2 normally on outlets and 2 normally off outlets
- Two-Gang Deep Wallbox
- Two-Gang Wallplate
- Sainsmart 4 Channel Relay
- 16 Gauge Wire (Multiple colors if possible)
- 16 Gauge Power Cable
The purpose of this powerstrip is to increase the number of controllable outlets and to incorporate all of the components necessary for control within a standard looking powerstrip. This will be controlled via Bluetooth Low Energy or WIFI
- Belkin Metal Power Strip Surge Protector
- Wago Lever Nuts
- 2x Sainsmart 4 Channel Relay
- AC / DC 85~240V TO 5V/1.2A Isolated Switching Power Supply Converter Module or 5W Apple USB Power Adapter
- USB Type A female connector
- Adafruit Feather 32u4 Bluefruit LE to control via Bluetooth Low Energy
- 14 gauge solid copper wire (black/red)
- Acrylic (optional)
- Open the power unit carefully by drilling out the rivets using a bit slightly larger than the hole in the rivet
- Remove the outlet on the far end from the power switch
- Remove the power switch board, reset, and protected LED carefully keeping the main wires in tact
- Be sure to cut the black and white wire as close to the board as possible
- Remove the black & white wire connections between each outlet (Save these pieces of wire)
- Leave all the green (ground) connections as is since they are nicely soldered already
- Unscrew the front of the outlets to allow you to move them around a little
- Use pliers to break the gold connection tab on the hot side. Leave the white side in tact
- Use a wire nut to connect the incoming white wire to a short piece of wire to reach the first outlet (white side)
- Cut 3 small pieces of acrylic to cover the missing outlet, power switch holes, and reset button hole
- Glue in place using standard super glue
- The ATO has two water sensors (my setup uses 2 float valves) one in the ATO resevior and one in the sump
- The ATO pump will only run for a maximum of 60 seconds before pausing for 30 minutes (Just a simple failsafe)
- Arduino Uno or similar
- Going to replace with the ItsyBitsy 32uv 5V to control over serial
- or Adafruit Feather 32u4 Bluefruit LE to control via Bluetooth Low Energy
- Aqueon QuietFlow Pump
- Vertical Float Switches
- A container for ATO Water
- Small plastic tubing that fits into Pump head
- Acrylic Pieces for mounting floats (optional)
- Heat Gun for bending acrylic pieces (optional)
- Raspberry Pi Camera V2
- Camera Flex Cable 2 Meters (Use a length that works for you)
- Raspberry Pi Camera Case (Choose your own)
- Follow the instructions at: https://www.linux-projects.org/uv4l/installation/ to install UV4L