Auto Feed routine

Requests for new functions or software apps

Posts: 101
Joined: Thu May 10, 2012 5:46 am
Location: Sunny (and hot) South Florida
PostPosted: Fri Jan 16, 2015 12:14 pm
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

Posts: 101
Joined: Thu May 10, 2012 5:46 am
Location: Sunny (and hot) South Florida
PostPosted: Fri Jan 16, 2015 1:26 pm
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
Posts: 5365
Joined: Fri Jul 20, 2012 9:42 am
PostPosted: Fri Jan 16, 2015 3:01 pm
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.

Posts: 101
Joined: Thu May 10, 2012 5:46 am
Location: Sunny (and hot) South Florida
PostPosted: Sat Jan 17, 2015 5:12 am
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
Posts: 5365
Joined: Fri Jul 20, 2012 9:42 am
PostPosted: Sat Jan 17, 2015 6:37 am
Either way :) But sounds like you have the jist of it.

Posts: 101
Joined: Thu May 10, 2012 5:46 am
Location: Sunny (and hot) South Florida
PostPosted: Mon Jan 19, 2015 7:27 am
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

Posts: 12327
Joined: Fri Mar 18, 2011 6:47 pm
PostPosted: Mon Jan 19, 2015 9:02 am
Yeap, you got it :)
Roberto.

Posts: 101
Joined: Thu May 10, 2012 5:46 am
Location: Sunny (and hot) South Florida
PostPosted: Mon Jan 19, 2015 9:22 am
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

Posts: 12327
Joined: Fri Mar 18, 2011 6:47 pm
PostPosted: Mon Jan 19, 2015 9:45 am
Looks good to me.
Roberto.

Return to Requests

Who is online

Users browsing this forum: No registered users and 1 guest

cron