RMC's Humble Code Abode

Share you PDE file with our community
Post Reply
RMc
Posts: 7
Joined: Mon Jun 30, 2014 10:02 am

RMC's Humble Code Abode

Post by RMc »

Hi all - this is a preemptive thread to track all future code efforts.

My aquarium is a 92 gallon Bow front corner with 3 strings of LED's (controlled by a small typhoon led controller), a 30g sump + 5g refugium. I dose Kalk in the top off water.

Full tank shot: http://i.imgur.com/SZp7WEP.jpg

Code: Select all

#include <ReefAngel_Features.h>
#include <Globals.h>
#include <RA_Wifi.h>
#include <Wire.h>
#include <OneWire.h>
#include <Time.h>
#include <DS1307RTC.h>
#include <InternalEEPROM.h>
#include <RA_NokiaLCD.h>
#include <RA_ATO.h>
#include <RA_Joystick.h>
#include <LED.h>
#include <RA_TempSensor.h>
#include <Relay.h>
#include <RA_PWM.h>
#include <Timer.h>
#include <Memory.h>
#include <InternalEEPROM.h>
#include <RA_Colors.h>
#include <RA_CustomColors.h>
#include <Salinity.h>
#include <RF.h>
#include <IO.h>
#include <ORP.h>
#include <AI.h>
#include <PH.h>
#include <WaterLevel.h>
#include <Humidity.h>
#include <DCPump.h>
#include <ReefAngel.h>

////// Place global variable code below here


////// Place global variable code above here


void setup()
{
    // This must be the first line
    ReefAngel.Init();  //Initialize controller
    ReefAngel.AddStandardMenu();  // Add Standard Menu

    ReefAngel.Use2014Screen();  // Let's use 2014 Screen 
    ReefAngel.AddPHExpansion();  // pH Expansion Module
    ReefAngel.AddWaterLevelExpansion();  // Water Level Expansion Module
    // Ports toggled in Feeding Mode
    ReefAngel.FeedingModePorts = Port2Bit | Port4Bit | Port5Bit | Port6Bit;
    // Ports toggled in Water Change Mode
    ReefAngel.WaterChangePorts = Port2Bit | Port3Bit | Port4Bit | Port5Bit | Port6Bit;
    // Ports toggled when Lights On / Off menu entry selected
    ReefAngel.LightsOnPorts = Port8Bit;
    // Ports turned off when Overheat temperature exceeded
    ReefAngel.OverheatShutoffPorts = Port8Bit;
    // Use T1 probe as temperature and overheat functions
    ReefAngel.TempProbe = T1_PROBE;
    ReefAngel.OverheatProbe = T1_PROBE;
    // Set the Overheat temperature setting
    InternalMemory.OverheatTemp_write( 869 );


    // Ports that are always on
    ReefAngel.Relay.On( Port4 );
    ReefAngel.Relay.On( Port5 );
    ReefAngel.Relay.On( Port6 );

    ////// Place additional initialization code below here
    

    ////// Place additional initialization code above here
}

void loop()
{
    ReefAngel.StandardFan( Port1,800,810 );
    ReefAngel.Relay.DelayedOn( Port2,10 );
    ReefAngel.DosingPumpRepeat( Port3,0,20,60 );
    ReefAngel.DosingPumpRepeat( Port7,0,20,30 );
    ReefAngel.StandardLights( Port8,11,0,19,0 );
    ReefAngel.PWM.SetDaylight( PWMParabola(8,0,20,30,15,100,15) );
    ReefAngel.PWM.SetActinic( PWMParabola(10,30,20,30,15,100,15) );
    ////// Place your custom code below here
    

    ////// Place your custom code above here

    // This should always be the last line
    ReefAngel.ShowInterface();
}

I'm using the basic Reef Angel Plus package and will start by controlling:
  • (Port 1) Canopy fan when temperature exceeds 81 degrees. Otherwise keep it off to minimize evaporation
  • (Port 2) Skimmer - turn off for water changes / feeding - delay 10 minutes
  • (Port 3) ATO - (External relay / float to prevent overflow) turn on for 1 minute every 20 minutes
  • (Port 4,5,6) Jebao 45 + Jebao 25 + Return - turn off during feeding / water changes
  • (Port 7) a small circulation pump in the sump used to prevent detritus buildup - turn on for 30 seconds every 20 minutes
  • (Port 8) Extra string of LED's which turns on mid day
  • Testing the PWM output with 2 LED strings (blue + white/red/green)
In the future I'd like to:
  • Control the Jebao pumps (softer night mode / alternate modes day to day / simulate storm surges)
  • Add a more powerful DC return pump and vary the flow
  • Add a DC pump to the refugium to decrease flow to a trickle at night
  • Create a chilled + stirred feeder tank and dose cyclopeeze throughout the day
  • PWM Addon: control all lights using the RA + weather pattern / moonlight
  • Wifi Module - monitor the aquarium while away
  • Maybe humidity sensor under the stand with a ventilation fan
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: RMC's Humble Code Abode

Post by rimai »

Awesome!! Tank looks good :)
Roberto.
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: RMC's Humble Code Abode

Post by lnevo »

Move that wifi module up in your priority list! Otherwise great start! You can also save yourself 2 relay ports. You dont *need* the jaebos plugged in.
RMc
Posts: 7
Joined: Mon Jun 30, 2014 10:02 am

Re: RMC's Humble Code Abode

Post by RMc »

Hi Inevo - you're right, I could have the return pump + 2 jebaos on a splitter; however I do want them to turn off during feeding time.

Also, right now I don't have anything else to automate. Hopefully that will change soon ;)

PS: thank you to the mod for fixing my link and not berating me for sneaking a URL past the filter.
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: RMC's Humble Code Abode

Post by rimai »

RMc wrote: PS: thank you to the mod for fixing my link and not berating me for sneaking a URL past the filter.
:)
Yeah, I think it is 5 post. You are almost there!!!
Just to complement what lnevo recommended, you can also turn off the DC/Jebao pumps using only the dimming signal and that way you can always leave them plugged into the wall.
Roberto.
RMc
Posts: 7
Joined: Mon Jun 30, 2014 10:02 am

Re: RMC's Humble Code Abode

Post by RMc »

Believe it or not I just got around to reprogramming my RA...whew...took a little bit of plugging and unplugging and com port foolery and getting the TTL on the right pins...but! the code is in.
RMc
Posts: 7
Joined: Mon Jun 30, 2014 10:02 am

Re: RMC's Humble Code Abode

Post by RMc »

Having some trouble with inconsistent relay activity.

http://pasteboard.co/EExwAhl.png

My ATO (#3 green) and a small circulation pump (#7 blue) are supposed to be turning on for 60/30 seconds every 20 minutes.

ReefAngel.DosingPumpRepeat( Port3,0,20,60 );
ReefAngel.DosingPumpRepeat( Port7,0,20,30 );

However, if you look at the relay activity it seems that they're not consistently doing so. Both are set to "auto" as viewed on the portal.

Any ideas?
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: RMC's Humble Code Abode

Post by lnevo »

You will not see the results in the portal accurately as the portal only sends updates every 5 minutes and the status is sent at the time. If the port is already off you will not see that it was on.

Roberto, I have an idea how we can address this, going to open an issue to discuss the options...
RMc
Posts: 7
Joined: Mon Jun 30, 2014 10:02 am

Re: RMC's Humble Code Abode

Post by RMc »

Another Q: on the portal, is there a way to see PH and temp on separate graphs so that changes are more readily apparent? Both of mine just look like flat lines because of the vertical scaling.
User avatar
cosmith71
Posts: 1437
Joined: Fri Mar 29, 2013 3:51 pm
Location: Oklahoma City

Re: RMC's Humble Code Abode

Post by cosmith71 »

Yup. Just click on the labels at the top to turn them on and off.

--Colin
Post Reply