Auto Feed routine

Requests for new functions or software apps
Post Reply
Spotted
Posts: 101
Joined: Thu May 10, 2012 5:46 am
Location: Sunny (and hot) South Florida

Auto Feed routine

Post by Spotted »

Ok, so is there any way to get the system to kick into feeding mode and then trigger an automatic feeder? I understand we can hack a couple of different auto feeding systems to work with a wall wart to trigger it, but is there any way to trigger feed mode a couple minutes before triggering the feeder?
Image
Spotted
Posts: 101
Joined: Thu May 10, 2012 5:46 am
Location: Sunny (and hot) South Florida

Re: Auto Feed routine

Post by Spotted »

Or alternately, if I add in this line, and coordinate it with an auto fish feeder will that work too?

Code: Select all

if ((now()%SECS_PER_DAY==64800)) //if it is 6 pm
{
ReefAngel.FeedingModeStart(); //START FEEDING MODE
}
Do I need an esle statement for if it is not 6PM?
Image
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Auto Feed routine

Post by lnevo »

Nope. That will trigger the feeding mode to start at 6. You'll need to add a second one when you want to trigger the relay for your auto-feeder. That would should have an else to make sure the relay turns off.
Spotted
Posts: 101
Joined: Thu May 10, 2012 5:46 am
Location: Sunny (and hot) South Florida

Re: Auto Feed routine

Post by Spotted »

Well yes that was the basic idea, to get my RA to go into feed mode. Then the auto feed wohld start a minute or 2 later, but manuall on its own, not through my RA. Im on a time crunch and wont have enough time to mod the feeder before I leave. So I figure automate what I could, use the feeder as is and have it feed 2 minutes after feed mode starts in my RA.
Image
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Auto Feed routine

Post by lnevo »

Either way :) But sounds like you have the jist of it.
Spotted
Posts: 101
Joined: Thu May 10, 2012 5:46 am
Location: Sunny (and hot) South Florida

Re: Auto Feed routine

Post by Spotted »

Code: Select all

if ((now()%SECS_PER_DAY==64800)) //if it is 6 pm
{ReefAngel.FeedingModeStart(); //START FEEDING MODE}
I'm trying to understand what is going on here. Let me know if I'm on the right track.
The first line checks to see if the time is 6PM. If it is then executes the commands in the brackets. Right?
If I add a second time of day will this work too?

Code: Select all

if ((now()%SECS_PER_DAY==28800)) //if it is 8 AM
{ReefAngel.FeedingModeStart(); //START FEEDING MODE}
if ((now()%SECS_PER_DAY==64800)) //if it is 6 PM
{ReefAngel.FeedingModeStart(); //START FEEDING MODE}
If I got this the code should kick my RA into feed mode at 8AM and 6PM.
Is that right? This should go into the loop section of the sketch also, right?

:(
Image
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: Auto Feed routine

Post by rimai »

Yeap, you got it :)
Roberto.
Spotted
Posts: 101
Joined: Thu May 10, 2012 5:46 am
Location: Sunny (and hot) South Florida

Re: Auto Feed routine

Post by Spotted »

YAY!! So this should work and it is in the right spot?

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.Use2014Screen();  // Let's use 2014 Screen 
    // Ports toggled in Feeding Mode
    ReefAngel.FeedingModePorts = Port1Bit | Port3Bit | Port5Bit | Port6Bit | Port7Bit | Port8Bit;
    ReefAngel.FeedingModePortsE[0] = Port1Bit | Port2Bit | Port3Bit;
    // Ports toggled in Water Change Mode
    ReefAngel.WaterChangePorts = Port1Bit | Port3Bit | Port5Bit | Port6Bit | Port7Bit | Port8Bit;
    ReefAngel.WaterChangePortsE[0] = Port1Bit | Port2Bit | Port3Bit;
    // Ports toggled when Lights On / Off menu entry selected
    ReefAngel.LightsOnPorts = Port2Bit | Port4Bit;
    ReefAngel.LightsOnPortsE[0] = Port7Bit | Port8Bit;
    // Ports turned off when Overheat temperature exceeded
    ReefAngel.OverheatShutoffPorts = Port3Bit | Port4Bit | Port5Bit | Port6Bit | Port7Bit | Port8Bit;
    ReefAngel.OverheatShutoffPortsE[0] = Port1Bit | Port2Bit | Port7Bit;
    // Use T1 probe as temperature and overheat functions
    ReefAngel.TempProbe = T1_PROBE;
    ReefAngel.OverheatProbe = T1_PROBE;
    // Set the Overheat temperature setting
    InternalMemory.OverheatTemp_write( 815 );


    // Ports that are always on
    ReefAngel.Relay.On( Port3 );
    ReefAngel.Relay.On( Box1_Port2 );

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

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

void loop()
{
    ReefAngel.SingleATO( true,Port1,120,10 );
    ReefAngel.StandardLights( Port2,19,0,7,0 );
    ReefAngel.StandardLights( Port4,10,0,20,0 );
    ReefAngel.StandardLights( Port5,6,0,22,0 );
    ReefAngel.StandardHeater( Port6,780,805 );
    ReefAngel.Relay.DelayedOn( Port7,5 );
    ReefAngel.Relay.DelayedOn( Port8,3 );
    ReefAngel.DosingPumpRepeat( Box1_Port3,0,60,170 );
    ReefAngel.StandardLights( Box1_Port7,13,0,17,0 );
    ReefAngel.StandardLights( Box1_Port8,12,0,18,0 );
    ReefAngel.PWM.SetDaylight( PWMParabola(13,0,16,0,10,80,10) );
    ReefAngel.PWM.SetActinic( PWMSlope(10,0,18,0,15,95,80,15) );
    ////// Place your custom code below here
    if ((now()%SECS_PER_DAY==28800)) //if it is 8 AM
    {ReefAngel.FeedingModeStart(); //START FEEDING MODE}
    if ((now()%SECS_PER_DAY==64800)) //if it is 6 PM
    {ReefAngel.FeedingModeStart(); //START FEEDING MODE}[/color]
    ////// Place your custom code above here

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


Image
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: Auto Feed routine

Post by rimai »

Looks good to me.
Roberto.
Post Reply