Skip to content
/ orca Public

A simple Raspberry Pi based Aquarium Controller & Cloud Based Website

License

Notifications You must be signed in to change notification settings

mstelz/orca

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Orca

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.

Features (Current and Upcoming)

  • 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

Controller

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.

Upgrade NodeJS on Pi

  1. sudo apt-get update
  2. sudo apt-get dist-upgrade
  3. curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
  4. sudo apt-get install -y nodejs
  5. node -v to verify you have the correct version
  6. If you get /usr/local/bin/node not found:
  • ln -s /usr/bin/node /user/local/bin/node

Install and Enable BlueZ (BLE Support)

  1. cd ~
  2. wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.50.tar.xz
  3. tar xvf bluez-5.50.tar.xz
  4. cd bluez-5.50
  5. sudo apt-get update
  6. sudo apt-get install -y libusb-dev libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev
  7. ./configure
  8. make
  9. sudo make install
  10. sudo systemctl start bluetooth
  11. systemctl status bluetooth Should see Active status
  12. sudo systemctl enable bluetooth
  13. Reboot the pi
  14. sudo nano /lib/systemd/system/bluetooth.service
    • Add --experimental to the end of ExecStart line
  15. sudo systemctl daemon-reload
  16. sudo systemctl restart bluetooth

Global Part List (Needed for all)


Temperature Sensor

Information

Integrate with the power strip to achieve heater control based on temperature. More information to come.

Parts List

Schematic

DS18B20 Wiring Schematic

Setup

  1. Enable 1-Wire Mode.
    1. Via Raspberry-Pi Configuration:
      • Go to Raspberry-Pi Configuration -> Interfaces -> and Enable 1-Wire
    2. Manually:
      • sudo apt-get update
      • sudo apt-get upgrade
      • sudo nano /boot/config.txt
      • Add dtoverlay=w1-gpio on the bottom line
      • CTRL-X then Y then RETURN
      • sudo reboot
  2. Find your 1-Wire Device running ls /sys/bus/w1/devices/ in shell
  3. Copy /controller/rasperry-pi/piMonitor to your rasberry-pi
  4. Setup a cron task to automatically run at the time interval you want
    • */15 * * * * python /var/www/piMonitor.py (this runs every 15 minutes)

Atlas Scientific Conductivity Sensor

Parts List

Setup

  1. Change EZO Circuit from UART to I2C

    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 and Cyan then the circuit is configured in UART mode
    • If Circuit is blinking Blue and Cyan 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

    1. Connect (shortcut) these two pins: * PGND pin to the TX pin
    2. Power the EZO Circuit (GND, +5V)
    3. Wait for LED to change from green to blue (UART->I2C) or from blue to green (I2C->UART).
    4. Remove the jumper wire from the PGND (or PRB respectively) pin to the TX pin
    5. Remove power (GND, 5V)
    1. Do not plugin your Tentacle T3 to the PI yet, boot the PI
    2. sudo raspi-config
    3. Enable I2C
    4. Reboot your PI
    5. Upgrade PI with sudo apt-get update & sudo apt-get upgrade
    6. Install I2C Tools with sudo apt-get install python-smbus & sudo apt-get install i2c-tools
    7. Reboot the PI
    8. Test I2C sudo i2cdetect -y 1
    9. You should see 64 in the table

Power Strip (v1)

Information

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

Parts List


Wireless Power Strip (v2)

Information

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

Parts List

Setup

  1. Open the power unit carefully by drilling out the rivets using a bit slightly larger than the hole in the rivet
  2. Remove the outlet on the far end from the power switch
  3. 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
  4. 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
  5. Unscrew the front of the outlets to allow you to move them around a little
  6. Use pliers to break the gold connection tab on the hot side. Leave the white side in tact
  7. Use a wire nut to connect the incoming white wire to a short piece of wire to reach the first outlet (white side)
  8. 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

Auto Top Off System

Information

  • 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)

Parts List


Video Camera

Parts List

Setup

  1. Follow the instructions at: https://www.linux-projects.org/uv4l/installation/ to install UV4L