<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Controllertron</title>
	<atom:link href="http://uniquesigns.org/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://uniquesigns.org</link>
	<description>An aquarium automation computer from a complete moron</description>
	<lastBuildDate>Sun, 08 Jan 2012 20:41:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Controlling multiple temp sensors with 1-wire</title>
		<link>http://uniquesigns.org/?p=14</link>
		<comments>http://uniquesigns.org/?p=14#comments</comments>
		<pubDate>Sun, 08 Jan 2012 20:41:06 +0000</pubDate>
		<dc:creator>evan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://uniquesigns.org/?p=14</guid>
		<description><![CDATA[Through a lot of fun reading, it appears that the most commonly used temperature sensors in these controllers is called a Dallas (now maxim apparently) DS18B20. These use a proprietary one wire communication that allows you to hook up as many of these as you want with only one data wire. The sensors have 3 [...]]]></description>
			<content:encoded><![CDATA[<p>Through a lot of fun reading, it appears that the most commonly used temperature sensors in these controllers is called a Dallas (now maxim apparently) DS18B20. These use a proprietary one wire communication that allows you to hook up as many of these as you want with only one data wire. The sensors have 3 pins on them. Power, ground and data. There are a couple of ways to hook these up, but as far as I am concerned you might as well use the straight forward method to reduce confusion, besides, its only one more wire! To be able to run on one wire, every sensor has a unique address (ex: 0&#215;28, 0xDF, 0&#215;00, 0&#215;43, 0&#215;03, 0&#215;00, 0&#215;00, 0&#215;72). There is no listing that comes with these sensors (usually) so you will have to get the address on your own. Luckily I found a bit of code <a title="One wire sensor address finder" href="http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html">here</a> that you can use to pull the address out of each one of your sensors. You will have to look the addresses up one at a time in order to read them properly, so I recommend doing this before you start building.</p>
<p>Once you have all of your addresses (I have 5 in my case) you may want to label each sensor with coloured tape, a post it, or a giant flashing light. This ensures that you will remember which one goes where. To wire these guys up is pretty simple, how you choose to make it pretty is up to you. For the basics, hook power up to power, ground to ground and data to data, on top of this you will need to run a 4.7kohm resistor in between power and data as well, Pretty simple stuff. If you are running multiples, it is a good idea to make yourself a circuit board that will distribute all of your wires down to one connection to go back to the main board. Now you have it built, time to make it pretty.</p>
<p>In my case I want a modular and easily replaceable way to connect temp sensors to a sensor box. This way if one fails, isn&#8217;t needed or I need more they are plug and play when it comes time to the physical install. To do this I have enlisted the help of a very common connector, the TRS connector. A TRS connector is also what is commonly known as a headphone jack, while in a headphone the wires are used as left, right and ground. In my case they will be power, data and ground. Nice and simple and it keeps it pretty. TRS connectors are also ideal because of the extremely low cost and wide selection of options. Now I just need to find some nice 3 conductor wire to run to the sensors, and a nice way to waterproof them.</p>
<p>The code (that someone else smarter than me made) that is available actually brings light to how simple it is to program one of these bad boys (or five) into your controller.</p>
<blockquote><p>// This Arduino sketch reads DS18B20 &#8220;1-Wire&#8221; digital<br />
// temperature sensors.<br />
// Tutorial:<br />
// http://www.hacktronics.com/Tutorials/arduino-1-wire-tutorial.html</p>
<p>#include &lt;OneWire.h&gt;<br />
#include &lt;DallasTemperature.h&gt;<br />
#include &lt;LiquidCrystal.h&gt;</p>
<p>// Connections:<br />
// rs (LCD pin 4) to Arduino pin 12<br />
// rw (LCD pin 5) to Arduino pin 11<br />
// enable (LCD pin 6) to Arduino pin 10<br />
// LCD pin 15 to Arduino pin 13<br />
// LCD pins d4, d5, d6, d7 to Arduino pins 5, 4, 3, 2<br />
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);</p>
<p>int backLight = 13; // pin 13 will control the backlight</p>
<p>// Data wire is plugged into pin 8 on the Arduino<br />
#define ONE_WIRE_BUS 8</p>
<p>// Setup a oneWire instance to communicate with any OneWire devices<br />
OneWire oneWire(ONE_WIRE_BUS);</p>
<p>// Pass our oneWire reference to Dallas Temperature.<br />
DallasTemperature sensors(&amp;oneWire);</p>
<p>// Assign the addresses of your 1-Wire temp sensors.<br />
// See the tutorial on how to obtain these addresses:<br />
// http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html</p>
<p>DeviceAddress insideThermometer = { 0&#215;28, 0x3C, 0xF2, 0xA7, 0&#215;02, 0&#215;00, 0&#215;00, 0xCB };<br />
DeviceAddress outsideThermometer = { 0&#215;28, 0&#215;20, 0&#215;04, 0xA8, 0&#215;02, 0&#215;00, 0&#215;00, 0x4D };</p>
<p><span style="color: #ff0000;">Add more here if you want more than two sensors</span></p>
<p>void setup(void)<br />
{<br />
// Start up the library<br />
sensors.begin();<br />
// set the resolution to 10 bit (good enough?)<br />
sensors.setResolution(insideThermometer, 10);<br />
sensors.setResolution(outsideThermometer, 10);</p>
<p><span style="color: #ff0000;">Dont forget to add another line here for more sensors</span></p>
<p>pinMode(backLight, OUTPUT);<br />
digitalWrite(backLight, HIGH); // turn backlight on. Replace &#8216;HIGH&#8217; with &#8216;LOW&#8217; to turn it off.<br />
lcd.begin(16,2); // columns, rows. use 16,2 for a 16&#215;2 LCD, etc.<br />
lcd.clear(); // start with a blank screen<br />
}</p>
<p>void printTemperature(DeviceAddress deviceAddress)<br />
{<br />
float tempC = sensors.getTempC(deviceAddress);<br />
if (tempC == -127.00) {<br />
lcd.print(&#8220;Error&#8221;);<br />
} else {<br />
lcd.print(tempC);<br />
lcd.print(&#8220;/&#8221;);<br />
lcd.print(DallasTemperature::toFahrenheit(tempC));<br />
}<br />
}</p>
<p>void loop(void)<br />
{<br />
delay(2000);<br />
sensors.requestTemperatures();<br />
lcd.setCursor(0,0);<br />
lcd.print(&#8220;In: &#8220;);<br />
printTemperature(insideThermometer);<br />
lcd.setCursor(0,1);<br />
lcd.print(&#8220;Out: &#8220;);<br />
printTemperature(outsideThermometer);</p>
<p><span style="color: #ff0000;">again, duplicate these to display more on screen. </span><br />
}</p></blockquote>
<p>&nbsp;</p>
<p>I also recommend changing the name of all of the sensors so that you can easily identify where they go. I would like to think that there will be an easier way of adding sensors at some point, but I dont have my hopes up just yet.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://uniquesigns.org/?feed=rss2&#038;p=14</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Controllertron: Parts list</title>
		<link>http://uniquesigns.org/?p=12</link>
		<comments>http://uniquesigns.org/?p=12#comments</comments>
		<pubDate>Sun, 08 Jan 2012 04:47:32 +0000</pubDate>
		<dc:creator>evan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://uniquesigns.org/?p=12</guid>
		<description><![CDATA[This is a loose list, things will be added as I go but I wont remove anything I dont use. I tend to buy in larger numbers to support screw ups as well. Over time I may even fill out where I got the parts from. -Float switch x4 -Temp sensor x6 -ENC28j60 ethernet module [...]]]></description>
			<content:encoded><![CDATA[<p>This is a loose list, things will be added as I go but I wont remove anything I dont use. I tend to buy in larger numbers to support screw ups as well. Over time I may even fill out where I got the parts from.</p>
<blockquote><p>-Float switch x4</p>
<p>-Temp sensor x6</p>
<p>-ENC28j60 ethernet module x1</p>
<p>-DS1307 Real time clock x1</p>
<p>-1/4w resistors (1k, 10k, 100k) x100 of each</p>
<p>-atmega 1280-16au x1</p>
<p>-5v 8 channel relay board x1</p>
<p>-HD44780 20&#215;4 LCD x1</p>
<p>-2N2222 transistor x10</p>
<p>-PH Probe x1</p>
<p>-Opto isolated relay board x2</p>
<p>-10 contact idc socket connector x4</p>
<p>-10 pin shrouded male header x1</p>
<p>-BNC female panel mount x5</p>
<p>-10 conductor ribbon cable 5Meters</p>
<p>-piezo buzzer x1</p>
<p>-assortment of hex standoffs for mounting</p>
<p>-50x 3w 20k white</p>
<p>-50x 3w 455nm RB</p>
<p>-16x aluminium pcb (holds 6leds each)</p>
<p>-16 ft 1.5&#215;3/4 aluminium U channel</p>
<p>-6ft 3/4&#8243; aluminium L channel</p>
<p>-solder down ATX connectors</p>
<p>-5x bread board</p>
<p>-a piss ton of male and female pin headers</p>
<p>-solder down 10k pot&#8217;s</p></blockquote>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://uniquesigns.org/?feed=rss2&#038;p=12</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Controllertron: Features list</title>
		<link>http://uniquesigns.org/?p=8</link>
		<comments>http://uniquesigns.org/?p=8#comments</comments>
		<pubDate>Sun, 08 Jan 2012 04:45:10 +0000</pubDate>
		<dc:creator>evan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://uniquesigns.org/?p=8</guid>
		<description><![CDATA[Well, everyone can say that they want a miracle device, I do. Here is my list of tentative features. As time passes, I will mark off what I have actually succeeded at. Items in Green are what has been accomplished &#160; Features List SENSORS Temp -Sump -Auto shut off heater if too high, Sound siren [...]]]></description>
			<content:encoded><![CDATA[<p>Well, everyone can say that they want a miracle device, I do. Here is my list of tentative features. As time passes, I will mark off what I have actually succeeded at. Items in Green are what has been accomplished</p>
<p>&nbsp;</p>
<blockquote><p>Features List</p>
<p>SENSORS</p>
<p>Temp</p>
<p><span style="color: #00ff00;">-Sump</span></p>
<p><span style="color: #00ff00;">-Auto shut off heater if too high</span>, Sound siren</p>
<p>-indicator light for siren</p>
<p>-Lights</p>
<p>-Temp per strip, auto shut off if too high, control fans to regulate temperature, siren if too high</p>
<p>-indicator light for siren</p>
<p>PH</p>
<p>-Sump</p>
<p>-Monitor, Siren if too high/low</p>
<p>-indicator light for siren</p>
<p>Salinity</p>
<p>-Sump</p>
<p>-Monitor, Siren if too high/low</p>
<p>-indicator light for siren</p>
<p>Water levels</p>
<p>-Sump low</p>
<p>-activate top up for x seconds or until top sensor trigger</p>
<p>-Sump high</p>
<p>-deactivate top up</p>
<p>-Sump emerg level</p>
<p>-deactivate protein skimmer, sound siren</p>
<p>-indicator light for siren</p>
<p>-ATO bucket</p>
<p>-siren if too low, kill top up function</p>
<p>-indicator light for siren</p>
<p>*MEDICATION PUMPS</p>
<p>Iodine</p>
<p>-activate for x seconds daily at x time</p>
<p>-manual override button for priming</p>
<p>Kalkwasser</p>
<p>-activate for x seconds daily at x time</p>
<p>-manual override button for priming</p>
<p>Extra 1</p>
<p>-to be determined</p>
<p>-manual override button for priming</p>
<p>Extra 2</p>
<p>-to be determined</p>
<p>-manual override button for priming</p>
<p>FEED BUTTON</p>
<p>kill all pumps/powerheads for 10 mins then restart</p>
<p>RESET BUTTON</p>
<p>resets system after siren</p>
<p>SILENCE BUTTON</p>
<p>silence alarm for 1 hour</p>
<p>AUTO TOP OFF</p>
<p>-when low, add water until full sensor or x minutes (in case of sensor failure)</p>
<p>-when high, kill pump from ato</p>
<p>-manual override button</p>
<p>*AUTO WATER CHANGE</p>
<p>-manual button to control</p>
<p>-Kill all pumps and power heads</p>
<p>-Auto drain for x minutes (drain to external drain line)</p>
<p>-Auto top up from saltwater source for x minutes(Pre mix barrel)</p>
<p>POWER CONTROL MODULE</p>
<p>-Switched outputs (10A)</p>
<p><span style="color: #00ff00;">-Heater</span></p>
<p>-Lights</p>
<p>-Pump</p>
<p>-Powerheads</p>
<p>-Skimmer</p>
<p>-Refugium Light</p>
<p>-ATO Pump</p>
<p>-Non switched outputs</p>
<p>-GFO Pump</p>
<p>-Carbon Filter Pump</p>
<p>-Power supply for system (control panel, brain, etc&#8230;)</p>
<p>NETWORK OUTPUT</p>
<p>-Output to internet based source that will compile data into 24h, 1d and 30d graphs</p>
<p>-PH</p>
<p>-SALINITY</p>
<p>-Temp (tank/lights)</p>
<p>-Top up (water used)</p>
<p>-Dosing (various chems)</p></blockquote>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://uniquesigns.org/?feed=rss2&#038;p=8</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oh no, not this agian&#8230;</title>
		<link>http://uniquesigns.org/?p=6</link>
		<comments>http://uniquesigns.org/?p=6#comments</comments>
		<pubDate>Sun, 08 Jan 2012 04:40:50 +0000</pubDate>
		<dc:creator>evan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://uniquesigns.org/?p=6</guid>
		<description><![CDATA[Well, yet again Ive gotten myself in far over my head. I am, or should I say was, a bit of an aquarium dabbler. I had a fish tank, I had a few fish and I had no idea what I was doing. Well, the only thing that has changed since then is that all [...]]]></description>
			<content:encoded><![CDATA[<p>Well, yet again Ive gotten myself in far over my head. I am, or should I say was, a bit of an aquarium dabbler. I had a fish tank, I had a few fish and I had no idea what I was doing. Well, the only thing that has changed since then is that all my fish are dead and my aquarium is lonely for attention. After my last aquarium crash I started doing some reading on various saltwater forums. Well, this was a terrible idea as I quickly realized all of the fun stuff I could do (and spend money on). Well awesome, I went to my local fish store, picked up a new pump, overflow, sump, skimmer and a few other goodies, I figured at this point I was ready to take on the world of saltwater. WRONG, apparently I had only merely grazed the surface of this exploration. Now I am looking at water levels and thinking, oh shit, now I&#8217;ve got algae blooms to deal with, strange minerals to test for, skimmers to tune, pumps to maintain, sumps to top up and lots of other fun stuff (NOT).</p>
<p>It wasn&#8217;t long before the internet gods helped me stumble across aquarium controllers. There are many well made, well featured systems on the market that will save me hours a week in testing, light controls, chemical dosing and water testing. Great! Sign me up! oh wait, they are over a thousand bucks by the time you are all set up. As a lowly retail worker, I can&#8217;t afford this. But this is where the internet gods shine again, I&#8217;ve now found a group of like minded (though significantly smarter than I) individuals that share my expense woes. These people are building their own controllers at a fraction of the cost. The catch, these builds are highly hands on as you will be building your own circuit boards, soldering your connections, writing your codes to program the unit, etc&#8230; Well this is going to be a lot of work, but hell, we will have fun with it and learn along the way. Heck, I might even learn a thing or two.</p>
<p>Well now it is time to write myself a list and figure out what the hell I want this thing to do for me.</p>
]]></content:encoded>
			<wfw:commentRss>http://uniquesigns.org/?feed=rss2&#038;p=6</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

