Aquarium Controller Update

Posted on 2015-03-24 in aquarium • 2 min read

Intro

It's been a while since I've updated this blog, but there has actually been quite a bit happening and hopefully I'll be able to actually detail out the steps of the things I've worked on, but I'll talk about the things I have accomplished so far

Overall Design

My design is going to use a single control module that expands with extra pods to handle the other tasks. So there will be probes, power, and possibly motors (for auto feeders or dosing). This made sense to me because I'm not going to be able to afford to do everything at once, and it will also allow me to deploy portions of it while I'm designing the rest.

As it turns out (though I didn't know it when I started down this path) Neptune Systems has a similar design in their Apex line. So I guess I'm on the right path since someone else has already done it :)

Temperature Sensing

One of the key, basic things I wanted was temperature sensing. I was able to get the Dallas 1-wire (DS18B20) working, though at this point just in a test capacity. You can see my temps.py code.

The 1-wire interface generates a unique ID for each temperature sensor. In the code linked above, they are hard-coded. I am rewriting the code now to scan through the directory and pick up whatever is attached so that it will eventually just be a process like:

  1. Plug in a device
  2. Assign it to a location

The 1-wire temperature modules (in parasitic mode) need 3 wires (2 for power and one for data). Due to this, I decided to use rj11 phone wires. The connectors are small, readily available, and can be split so that I can use one connector on the controller side and have many sensors on the front side. Though I only plan on using 2 for my installation, it should be extendable up to whatever 1-wire protocol supports.

In the process of moving my breadboard design over to a soldered perfboard, I managed to miss a connection. So I need to fix that and then I should have temperature measurements working.

Relays

Another key component of this whole solution is controlling power, so getting a bunch of relays to control outlets was the best option here. I was looking at components and was prepared to build the circuits myself, especially because I thought I was limited to 3V coil relays. As it turns out, the BeagleBone does have 5V on the board, so I ended up getting this SainSmart 8 Channel Relay.

As soon as I figure out how to make fancy diagrams I'll show how I got this connected. In the mean time, I do have a youtube video showing my relaytest.py in action.

Chat has been disabled for this post