Google Search

Monday, 30 September 2013

Empty CO2 Bottle Detection

Basic observation is obviously one of the most straightforward skills you need when looking after an aquarium, but recently its taken me the best part of a week to discover that the pressurised CO2 bottle on my planted tank has been empty for several days!

A few factors contributed to this...

  1. My CO2 drop checker had gone AWOL in the tank, the suckers had let go and it had vanished down the back of some of my decor!
  2. Not checking in on the Apex app often enough.
  3. A lapse in observation and maintenance recently due to a few personal issues.

But on the eve of my writing this post and following a decent maintenance session the day previously, i duly checked in on my now retrieved drop checker to see how the CO2 levels were doing. To my surprise the checker was dark blue, indicating a lack of CO2 diffused into the system.

On looking at the diffuser, and the power head that creates current around the general diffuser area, the power head was on and running, but no bubbles rising through the tower.

So the most obvious cause, which also turned out to be the solution, was the CO2 bottle was now empty.

Not too much of an issue, as i have a couple more full ones on standby ready to go, so swapped the regulator and was up and running again within no time.

So now i checked in on the Apex web login to see where and when it dropped out, hoping it would have been within the last 7 days...

Apex pH Graph

Thankfully it had gone within the last 7 days! Running out sometime on the 23rd Sept, as the following days pretty much just show the pH shift based on the lighting cycle.

So this got my thinking… how can i create an automatic warning to tell me that the bottle has ran out in future.

My first thoughts were to employ a pressure switch on the CO2 supply line and use one of the Apex's Switch inputs to detect when the pressure switch enters a low state, or when the pressure in the line drops significantly to suggest the bottle is empty.

While this should work, it means i need to start searching for an ideal switch and then start the process of integrating it into the system.

After a little more thought i worked out that this can be done through programming alone with no added expense.

A quick explanation on how my CO2 system works

The Apex controls my CO2 injection through the use of a pH probe and a series of 'Virtual Outlets' dialled into different KH levels.

A further 'Control' virtual outlet has the final say as to when the power head and solenoid will activate and inject CO2.

If the desired pH/KH ratio is reached, the Control outlet picks up on this and injects until a lower pH is achieved.

I determined the pH levels through a bit of experimentation, various reading and drop check tests.

The following shows my Apex dashboard with the Control and KH Virtual Outlets and the two physical outlets for the Solenoid and the Power Head.

In this instance, the KH of the water, post water change and buffer, would have been 6DKH, so the relevant VO is enabled. As the pH is above a current limit, to maintain the CO2 level at that KH the Control VO is 'ON' so the power head and solenoid are both running.

Screen Shot 2013 09 30 at 19 26 58

Below is the details for the C4_CO2_KH6 Virtual Outlet

Screen Shot 2013 09 30 at 19 30 18

This is the Control Virtual Outlet

Screen Shot 2013 09 30 at 19 31 29

The physical outlets for the solenoid and power head just have basic commands to turn them on, if the Control VO is 'ON' with Defer commands so the power head comes on momentarily before the solenoid is opened.

So whats the FREE way of making an empty CO2 Bottle alarm

The Control VO only comes on when any of the KH VO's are 'ON'… AND… if the time is between 10:00 to 23:00 during the day (to coincide with the lights, with an hour or so to get going first off)

So the Control VO during any day will only be on for a maximum of 13 hours. Before the time constraints shut it back down.

The solution was to create another VO, one that will effectively time the 'ON' status of the Control VO.

Screen Shot 2013 09 30 at 19 43 13

Ignore the actual naming, thats just a convention i use to put them in order on the iOS apps. :)

So now this Alarm outlet will go 'ON' if the Control VO is ON, however the Defer statement will only allow that if the Control outlet has been 'ON' for 720minutes… or 12 hours.

My CO2 injection cycles up and down several times per day, but in this case it would never be more than 48 hours without CO2, in which case my tank can survive quite happily.

So why 48 hours? Well, if the bottle were to run empty on a Monday at say 15:00 in the afternoon, the Control VO would try to run the injection system, and eventually shut down at 23:00. In which case the Alarm VO would have been live for around 8 hours and would have not triggered.

However on the following Tuesday, the Control VO will try to start the injection system at 10:00 and will trigger the Alarm, but will never reach the desired pH, so eventually 12 hours later the Alarm VO will go 'ON' which i can then use to trigger alarms or email alerts.

I could dial the Alarm VO trip time down several hours and potentially catch a dwindling CO2 supply quicker, but as i have no plants that are absolutely critical that they have CO2 all the time, i feel the daily time span is adequate.

As there is no 'SET' command in the Alarm VO, this will of course require manual intervention when it is enabled. I manually set the VO to 'OFF' then return the slider to 'AUTO' so it lies in wait. If the 12 hour (720min) condition is met, the Alarm VO will go 'ON' and stay 'ON' until i manually reset it.

Hope that explains it!

Have any cool Apex programming ideas? Let me know!

No comments:

Post a Comment