Forum Members section Show your controller My build.

My build.


Post Number:#41 Post Thu Feb 05, 2015 7:43 pm
Posts: 70
Topics: 12
Images: 3
Solve rating: 0
Joined: Tue Oct 28, 2014 11:06 am
Topics: 12
Age: 46
Gender: None specified
National Flag:
Netherlands

Post Number:#42 Post Thu Feb 05, 2015 7:46 pm
Posts: 1699
Topics: 38
Images: 301
Solve rating: 233
Joined: Mon Mar 03, 2014 5:59 pm
Topics: 38
Age: 40
Location: São Paulo
Gender: Male
National Flag:
Brazil


Post Number:#43 Post Thu Feb 05, 2015 8:11 pm
Posts: 70
Topics: 12
Images: 3
Solve rating: 0
Joined: Tue Oct 28, 2014 11:06 am
Topics: 12
Age: 46
Gender: None specified
National Flag:
Netherlands
Tnx it took me a while before i figured out you have to run these commands with the stamp testcode. But it worked it is running at 38400 now :)

Post Number:#44 Post Fri Feb 06, 2015 1:13 pm
Posts: 1699
Topics: 38
Images: 301
Solve rating: 233
Joined: Mon Mar 03, 2014 5:59 pm
Topics: 38
Age: 40
Location: São Paulo
Gender: Male
National Flag:
Brazil

Hi!

Just to clarify,

Atlas have changed the default baud rate to 9600. I'm sorry was looking to old datasheet.

Image


Best regards.
Post your doubts on forum because it can help another user too. Just PM me for support if it's absolutely necessary.

Post Number:#45 Post Fri Feb 06, 2015 3:49 pm
Posts: 70
Topics: 12
Images: 3
Solve rating: 0
Joined: Tue Oct 28, 2014 11:06 am
Topics: 12
Age: 46
Gender: None specified
National Flag:
Netherlands

Post Number:#46 Post Tue Feb 24, 2015 6:31 pm
Posts: 70
Topics: 12
Images: 3
Solve rating: 0
Joined: Tue Oct 28, 2014 11:06 am
Topics: 12
Age: 46
Gender: None specified
National Flag:
Netherlands
Everything is still working great. I added a ph stamp. I can now make my aquarium cooler fan run when it get's to hot. And i added a 433 transmit module to the ferduino so I can switch on my wireless power sockets in my home (klik aan klik uit). I can now switch on remote my hd-camera to have a nice life feed of my aquarium, and see if my flow pump is running. I am actually done now. Evertything is working exactly how i want it too. So what i have is:
3 temp probes running
1 ezo ph stamp running
1 cooler fan running when it get's to hot.
1 float switch that get's triggerd if my return pump stops (send an ph reactor alert to my e-mail)
1 433 wireless communication to power sockets that now controll my hd internet camera.

So fernando thank you for bringing this awesome product.

Post Number:#47 Post Tue Feb 24, 2015 6:36 pm
Posts: 1699
Topics: 38
Images: 301
Solve rating: 233
Joined: Mon Mar 03, 2014 5:59 pm
Topics: 38
Age: 40
Location: São Paulo
Gender: Male
National Flag:
Brazil

Hi!

Some pictures and video should be nice. :)

Best regards.
Post your doubts on forum because it can help another user too. Just PM me for support if it's absolutely necessary.

Post Number:#48 Post Tue Feb 24, 2015 7:13 pm
Posts: 70
Topics: 12
Images: 3
Solve rating: 0
Joined: Tue Oct 28, 2014 11:06 am
Topics: 12
Age: 46
Gender: None specified
National Flag:
Netherlands
I will see if i can make some nice pictures tomorrow. I have one thing i would like to fix but it is just for the niceness of it. I still have a littebit noise on my ph readings (see picture or click link):
https://dyp.im/fIiN6fj5w9
Image



The max of those reading is correct i testes this with my other ph measurement. So i would want to take say 10 readings and then only use the max of those 10 readings. That way I would filter out the noise. Any tips on how to go with that idea, or maybe you have a different idea?

Post Number:#49 Post Tue Feb 24, 2015 9:56 pm
Posts: 1699
Topics: 38
Images: 301
Solve rating: 233
Joined: Mon Mar 03, 2014 5:59 pm
Topics: 38
Age: 40
Location: São Paulo
Gender: Male
National Flag:
Brazil

Some time ago I did a code to remove delay and use a average of 8 values but, I had not good results using all stamps together.

Maybe it can help you.

The code is to stamps V 4.x, adjust for EZO.

The code take 23 values but, discards 15.

[codebender]https://codebender.cc/embed/sketch:87876[/codebender]
Post your doubts on forum because it can help another user too. Just PM me for support if it's absolutely necessary.

Post Number:#50 Post Wed Feb 25, 2015 10:39 am
Posts: 70
Topics: 12
Images: 3
Solve rating: 0
Joined: Tue Oct 28, 2014 11:06 am
Topics: 12
Age: 46
Gender: None specified
National Flag:
Netherlands
I am trying all day but I can't get your code to work with the ezo stamps. This is my modified code. I first only want to use ph so i removed all the extra code. Plus don't mind all the println, I use those to test how far my code goes.

const int multiplexadorS0Pin = 16; // S0
const int multiplexadorS1Pin = 17; // S1

byte ph1 = 0; // Y0
byte ph2 = 1; // Y1
byte orp = 2; // Y2
byte ec = 3;  // Y3

int ORP = 0;
int DEN = 0;
float PHA = 0.0;
float PHR = 0.0;
long millis_antes = 0;

void setup()
{                                                             
  Serial.begin(38400);                                                     
  Serial3.begin(38400);
  Serial.println("I'm alive!");
  Serial.println();
  pinMode(multiplexadorS0Pin, OUTPUT);
  pinMode(multiplexadorS1Pin, OUTPUT);

  StartStampTankPH();
}

void loop()
{
  if((millis() - millis_antes) >= 10000)
  {
     Serial.println("testing loop");
    CheckTankPH();
    millis_antes = millis();
    Serial.println("  ******************************  ");
    Serial.println();
  }
}

void CheckTankPH()
{
  boolean done = false;
  char inData[150];
  char *inParse[150];
  int index = 0;
  int contador = 0;
  boolean stringComplete = false;
  char *str;   
  int count = 0;
  Serial.println("stage1");
 
  do{
    Open_channel(ph1);
    delay(50);

    while(Serial3.available())
    {
      char c = Serial3.read();
    }
    Serial3.print('\r');
    Serial.println("stage2");
    delay(1000);

    Serial3.print("R"); // Envia um comando.
    Serial3.print('\r');
    Serial.println("stage3");
    delay(1000);
     Serial.println("stage4");
   
    if (Serial3.available()>3)
    {
      char inChar = Serial3.read();
      inData[index] = inChar;
      index++;   
      Serial.println("stage5");
      if (inChar == '\r')
      {
        contador ++;
      }
      if(contador == 23)
      {
        inData[index] = '\0';
        contador = 0; 
        stringComplete = true;
      }
    }
  while(stringComplete == false);
   Serial.println("stage6");
  for (int i= 0; i <= index; i++)
  {
    if (inData[i] == '\r')
    {
      inData[i] = ',';
    }
  }

  char *p = inData;

  if (stringComplete == true)
  {

    while ((str = strtok_r(p, ",", &p)) != NULL)
    {   
      inParse[count] = str;
      count++;     
    }
    PHA = 0;
    for(int i= 13; i < 21; i++)
    {
      PHA += atof(inParse[i]);
    }
    PHA /= 8;

    Serial.print("Tank pH: ");
    Serial.print(PHA);
    Serial.print(", Values = [");
    Serial.print(inParse[13]);
    Serial.print(", ");
    Serial.print(inParse[14]);
    Serial.print(", ");
    Serial.print(inParse[15]);
    Serial.print(", ");
    Serial.print(inParse[16]);
    Serial.print(", ");
    Serial.print(inParse[17]);
    Serial.print(", ");
    Serial.print(inParse[18]);
    Serial.print(", ");
    Serial.print(inParse[19]);
    Serial.print(", ");
    Serial.print(inParse[20]);
    Serial.println("]");
    Serial.println();
   }
 }
 while (done == true);
}

void StartStampTankPH()
{
  Open_channel(ph1); // Open channel for tank pH
  delay(50);
  Serial3.print("R"); // To get a value
  Serial3.print('\r');
  delay(1000);

  Serial3.print("C,0"); // To stop continuous reading
  Serial3.print('\r');
  delay(1000);

  Serial3.print("L,0"); // To turn off the LEDs of debug
  Serial3.print('\r');
  delay(1000);

  Serial3.print("RESPONSE,0"); // To disable response code
  Serial3.print('\r');
  delay(1000);
}

void Open_channel(short channel)
{
  switch (channel)
  {
  case 0:
    //open channel Y0
    //S0=0
    //S1=0
    digitalWrite(multiplexadorS0Pin, LOW);
    digitalWrite(multiplexadorS1Pin, LOW);
    break;

  case 1:
    //open channel Y1
    //S0=1
    //S1=0
    digitalWrite(multiplexadorS0Pin, HIGH);
    digitalWrite(multiplexadorS1Pin, LOW);
    break;

  case 2:
    //open channel Y2
    //S0=0
    //S1=1
    digitalWrite(multiplexadorS0Pin, LOW);
    digitalWrite(multiplexadorS1Pin, HIGH);
    break;

  case 3:
    //open channel Y3
    //S0=1
    //S1=1
    digitalWrite(multiplexadorS0Pin, HIGH);
    digitalWrite(multiplexadorS1Pin, HIGH);
    break;
  }
  Serial3.print('\r');
  return;
}

Post Number:#51 Post Wed Feb 25, 2015 1:08 pm
Posts: 1699
Topics: 38
Images: 301
Solve rating: 233
Joined: Mon Mar 03, 2014 5:59 pm
Topics: 38
Age: 40
Location: São Paulo
Gender: Male
National Flag:
Brazil

Hi!

Try learn how it works firstly, it isn't copy and paste only.

My code is using reading continuous so, you can't send a "R" on loop or "C,0" on setup.

Try this:

const int multiplexadorS0Pin = 16; // S0
const int multiplexadorS1Pin = 17; // S1

byte ph1 = 0; // Y0
byte ph2 = 1; // Y1
byte orp = 2; // Y2
byte ec = 3;  // Y3

int ORP = 0;
int DEN = 0;
float PHA = 0.0;
float PHR = 0.0;
long millis_antes = 0;

void setup()
{                                                             
  Serial.begin(38400);                                                     
  Serial3.begin(38400);
  Serial.println("I'm alive!");
  Serial.println();
  pinMode(multiplexadorS0Pin, OUTPUT);
  pinMode(multiplexadorS1Pin, OUTPUT);

  StartStampTankPH();
}

void loop()
{
  if((millis() - millis_antes) >= 10000)
  {
     Serial.println("testing loop");
    CheckTankPH();
    millis_antes = millis();
    Serial.println("  ******************************  ");
    Serial.println();
  }
}

void CheckTankPH()
{
  boolean done = false;
  char inData[150];
  char *inParse[150];
  int index = 0;
  int contador = 0;
  boolean stringComplete = false;
  char *str;   
  int count = 0;
  Serial.println("stage1");
 
  do{
    Open_channel(ph1);
    delay(50);
   
    if (Serial3.available()>3)
    {
      char inChar = Serial3.read();
      inData[index] = inChar;
      index++;   
      Serial.println("stage2");
      if (inChar == '\r')
      {
        contador ++;
      }
      if(contador == 23)
      {
        inData[index] = '\0';
        contador = 0;
        stringComplete = true;
      }
    }
  while(stringComplete == false);
   Serial.println("stage3");
  for (int i= 0; i <= index; i++)
  {
    if (inData[i] == '\r')
    {
      inData[i] = ',';
    }
  }

  char *p = inData;

  if (stringComplete == true)
  {

    while ((str = strtok_r(p, ",", &p)) != NULL)
    {   
      inParse[count] = str;
      count++;     
    }
    PHA = 0;
    for(int i= 13; i < 21; i++)
    {
      PHA += atof(inParse[i]);
    }
    PHA /= 8;

    Serial.print("Tank pH: ");
    Serial.print(PHA);
    Serial.print(", Values = [");
    Serial.print(inParse[13]);
    Serial.print(", ");
    Serial.print(inParse[14]);
    Serial.print(", ");
    Serial.print(inParse[15]);
    Serial.print(", ");
    Serial.print(inParse[16]);
    Serial.print(", ");
    Serial.print(inParse[17]);
    Serial.print(", ");
    Serial.print(inParse[18]);
    Serial.print(", ");
    Serial.print(inParse[19]);
    Serial.print(", ");
    Serial.print(inParse[20]);
    Serial.println("]");
    Serial.println();
   }
 }
 while (done == true);
}

void StartStampTankPH()
{
  Open_channel(ph1); // Open channel for tank pH
  delay(50);
  Serial3.print("R"); // To get a value
  Serial3.print('\r');
  delay(1000);

  Serial3.print("C,1"); // To enable continuous reading
  Serial3.print('\r');
  delay(1000);

  Serial3.print("L,0"); // To turn off the LEDs of debug
  Serial3.print('\r');
  delay(1000);

  Serial3.print("RESPONSE,0"); // To disable response code
  Serial3.print('\r');
  delay(1000);
}

void Open_channel(short channel)
{
  switch (channel)
  {
  case 0:
    //open channel Y0
    //S0=0
    //S1=0
    digitalWrite(multiplexadorS0Pin, LOW);
    digitalWrite(multiplexadorS1Pin, LOW);
    break;

  case 1:
    //open channel Y1
    //S0=1
    //S1=0
    digitalWrite(multiplexadorS0Pin, HIGH);
    digitalWrite(multiplexadorS1Pin, LOW);
    break;

  case 2:
    //open channel Y2
    //S0=0
    //S1=1
    digitalWrite(multiplexadorS0Pin, LOW);
    digitalWrite(multiplexadorS1Pin, HIGH);
    break;

  case 3:
    //open channel Y3
    //S0=1
    //S1=1
    digitalWrite(multiplexadorS0Pin, HIGH);
    digitalWrite(multiplexadorS1Pin, HIGH);
    break;
  }
  Serial3.print('\r');
  return;
}


Best regrads.
Post your doubts on forum because it can help another user too. Just PM me for support if it's absolutely necessary.

Post Number:#52 Post Wed Feb 25, 2015 2:26 pm
Posts: 70
Topics: 12
Images: 3
Solve rating: 0
Joined: Tue Oct 28, 2014 11:06 am
Topics: 12
Age: 46
Gender: None specified
National Flag:
Netherlands

Post Number:#53 Post Wed Feb 25, 2015 2:43 pm
Posts: 1699
Topics: 38
Images: 301
Solve rating: 233
Joined: Mon Mar 03, 2014 5:59 pm
Topics: 38
Age: 40
Location: São Paulo
Gender: Male
National Flag:
Brazil

Try change the interval maybe 10 seconds isn't enough to EZO stamp.

 if((millis() - millis_antes) >= 10000)
Post your doubts on forum because it can help another user too. Just PM me for support if it's absolutely necessary.

Post Number:#54 Post Wed Feb 25, 2015 3:18 pm
Posts: 70
Topics: 12
Images: 3
Solve rating: 0
Joined: Tue Oct 28, 2014 11:06 am
Topics: 12
Age: 46
Gender: None specified
National Flag:
Netherlands
I got it working now :) . Now to integrate it in the main code.

-------------------------------- Last edited Wed Feb 25, 2015 4:35 pm --------------------------------

For others this is the working code for the newest ph stamp:
const int multiplexadorS0Pin = 16; // S0
const int multiplexadorS1Pin = 17; // S1

byte ph1 = 0; // Y0
byte ph2 = 1; // Y1
byte orp = 2; // Y2
byte ec = 3;  // Y3

int ORP = 0;
int DEN = 0;
float PHA = 0.0;
float PHR = 0.0;
long millis_antes = 0;

void setup()
{                                                             
  Serial.begin(38400);                                                     
  Serial3.begin(38400);
  Serial.println("I'm alive!");
  Serial.println();
  pinMode(multiplexadorS0Pin, OUTPUT);
  pinMode(multiplexadorS1Pin, OUTPUT);

  StartStampTankPH();
  //StartStampReactorPH();
  //StartStampORP();
}

void loop()
{
  if((millis() - millis_antes) >= 10000)
  {
    CheckTankPH();
    //CheckReactorPH();
    //CheckORP();
    millis_antes = millis();
    Serial.println("  ******************************  ");
    Serial.println();
  }
}

void CheckTankPH()
{
  char inData[150];
  char *inParse[150];
  int index = 0;
  int contador = 0;
  boolean stringComplete = false;
  char *str;   
  int count = 0;

  Open_channel(ph1);
  delay(50);
  do
  {
    if (Serial3.available()>3)
    {
      char inChar = Serial3.read();
      inData[index] = inChar;
      index++;     
      if (inChar == '\r')
      {
        contador ++;
      }
      if(contador == 23)
      {
        inData[index] = '\0';
        contador = 0; 
        stringComplete = true;
      }
    }
  }
  while(stringComplete == false);

  for (int i= 0; i <= index; i++)
  {
    if (inData[i] == '\r')
    {
      inData[i] = ',';
    }
  }

  char *p = inData;

  if (stringComplete == true)
  {

    while ((str = strtok_r(p, ",", &p)) != NULL)
    {   
      inParse[count] = str;
      count++;     
    }
    PHA = 0;
    for(int i= 13; i < 21; i++)
    {
      PHA += atof(inParse[i]);
    }
    PHA /= 8;

    Serial.print("Tank pH: ");
    Serial.print(PHA);
    Serial.print(", Values = [");
    Serial.print(inParse[13]);
    Serial.print(", ");
    Serial.print(inParse[14]);
    Serial.print(", ");
    Serial.print(inParse[15]);
    Serial.print(", ");
    Serial.print(inParse[16]);
    Serial.print(", ");
    Serial.print(inParse[17]);
    Serial.print(", ");
    Serial.print(inParse[18]);
    Serial.print(", ");
    Serial.print(inParse[19]);
    Serial.print(", ");
    Serial.print(inParse[20]);
    Serial.println("]");
    Serial.println();
  }
}

void CheckReactorPH()
{
  char inData[150];
  char *inParse[150];
  int index = 0;
  int contador = 0;
  boolean stringComplete = false;
  char *str;   
  int count = 0;

  Open_channel(ph2);
  delay(50);

  do
  {
    if (Serial3.available()>3)
    {
      char inChar = Serial3.read();
      inData[index] = inChar;
      index++;     
      if (inChar == '\r')
      {
        contador ++;
      }
      if(contador == 23)
      {
        inData[index] = '\0';
        contador = 0; 
        stringComplete = true;
      }
    }
  }
  while(stringComplete == false);

  for (int i= 0; i <= index; i++)
  {
    if (inData[i] == '\r')
    {
      inData[i] = ',';
    }
  }

  char *p = inData;

  if (stringComplete == true)
  {
    while ((str = strtok_r(p, ",", &p)) != NULL)
    {   
      inParse[count] = str;
      count++;     
    }
    PHR = 0;
    for(int i= 13; i < 21; i++)
    {
      PHR += atof(inParse[i]);
    }
    PHR /= 8;

    Serial.print("Reactor pH: ");
    Serial.print(PHR);
    Serial.print(", Values = [");
    Serial.print(inParse[13]);
    Serial.print(", ");
    Serial.print(inParse[14]);
    Serial.print(", ");
    Serial.print(inParse[15]);
    Serial.print(", ");
    Serial.print(inParse[16]);
    Serial.print(", ");
    Serial.print(inParse[17]);
    Serial.print(", ");
    Serial.print(inParse[18]);
    Serial.print(", ");
    Serial.print(inParse[19]);
    Serial.print(", ");
    Serial.print(inParse[20]);
    Serial.println("]");
    Serial.println();
  }
}

void CheckORP()
{
  char inData[150];
  char *inParse[150];
  int index = 0;
  int contador = 0;
  boolean stringComplete = false;
  char *str;   
  int count = 0;

  Open_channel(orp);
  delay(50);

  do
  {
    if (Serial3.available()>3)
    {
      char inChar = Serial3.read();
      inData[index] = inChar;
      index++;     
      if (inChar == '\r')
      {
        contador ++;
      }
      if(contador == 23)
      {
        inData[index] = '\0';
        stringComplete = true;
      }
    }
  }
  while(stringComplete == false);

  for (int i= 0; i <= index; i++)
  {
    if (inData[i] == '\r')
    {
      inData[i] = ',';
    }
  }

  char *p = inData;

  if (stringComplete == true)
  {
    while ((str = strtok_r(p, ",", &p)) != NULL)
    {   
      inParse[count] = str;
      count++;     
    }
    ORP = 0;
    for(int i= 13; i < 21; i++)
    {
      ORP += atoi(inParse[i]);
    }
    ORP /= 8;

    Serial.print("ORP: ");
    Serial.print(ORP);
    Serial.print(", Values = [");
    Serial.print(inParse[13]);
    Serial.print(", ");
    Serial.print(inParse[14]);
    Serial.print(", ");
    Serial.print(inParse[15]);
    Serial.print(", ");
    Serial.print(inParse[16]);
    Serial.print(", ");
    Serial.print(inParse[17]);
    Serial.print(", ");
    Serial.print(inParse[18]);
    Serial.print(", ");
    Serial.print(inParse[19]);
    Serial.print(", ");
    Serial.print(inParse[20]);
    Serial.println("]");
    Serial.println();
  }
}

void StartStampTankPH()
{
  Open_channel(ph1); // Tank pH
  Serial3.print("L,0");
  Serial3.print('\r');
  delay(1000);
  Serial3.print("C,1");
  Serial3.print('\r');
  delay(1000);
  Serial3.print("RESPONSE,0"); // To disable response code
  Serial3.print('\r');
 delay(1000);
}

void StartStampReactorPH()
{
  Open_channel(ph2); // Reactor pH
  delay(50);
  Serial3.print("E");
  Serial3.print('\r');
  delay(1000);
  Serial3.print("L0");
  Serial3.print('\r');
  delay(1000);
  Serial3.print("C");
  Serial3.print('\r');
}

void StartStampORP()
{
  Open_channel(orp); // ORP
  delay(50);
  Serial3.print("E");
  Serial3.print('\r');
  delay(1000);
  Serial3.print("L0");
  Serial3.print('\r');
  delay(1000);
  Serial3.print("C");
  Serial3.print('\r');
}
void Open_channel(short channel)
{
  switch (channel)
  {
  case 0:
    //open channel Y0
    //S0=0
    //S1=0
    digitalWrite(multiplexadorS0Pin, LOW);
    digitalWrite(multiplexadorS1Pin, LOW);
    break;

  case 1:
    //open channel Y1
    //S0=1
    //S1=0
    digitalWrite(multiplexadorS0Pin, HIGH);
    digitalWrite(multiplexadorS1Pin, LOW);
    break;

  case 2:
    //open channel Y2
    //S0=0
    //S1=1
    digitalWrite(multiplexadorS0Pin, LOW);
    digitalWrite(multiplexadorS1Pin, HIGH);
    break;

  case 3:
    //open channel Y3
    //S0=1
    //S1=1
    digitalWrite(multiplexadorS0Pin, HIGH);
    digitalWrite(multiplexadorS1Pin, HIGH);
    break;
  }
  Serial3.print('\r');
  return;
}

Post Number:#55 Post Wed Feb 25, 2015 3:36 pm
Posts: 1699
Topics: 38
Images: 301
Solve rating: 233
Joined: Mon Mar 03, 2014 5:59 pm
Topics: 38
Age: 40
Location: São Paulo
Gender: Male
National Flag:
Brazil

This code isn't ready to make what you told above.

You need sort values to discard the bad values.
Post your doubts on forum because it can help another user too. Just PM me for support if it's absolutely necessary.

Post Number:#56 Post Wed Feb 25, 2015 4:02 pm
Posts: 70
Topics: 12
Images: 3
Solve rating: 0
Joined: Tue Oct 28, 2014 11:06 am
Topics: 12
Age: 46
Gender: None specified
National Flag:
Netherlands
Fernando I integrated the code in my main code. And now it looks like my ph readings are steady now. Will monitor the next couple of days. I decided to take the average of 10 readings instead of 8. will monitor with my other ph reader also so i know the offset and incorporate that.

Post Number:#57 Post Thu Feb 26, 2015 7:54 am
Posts: 70
Topics: 12
Images: 3
Solve rating: 0
Joined: Tue Oct 28, 2014 11:06 am
Topics: 12
Age: 46
Gender: None specified
National Flag:
Netherlands
Here are some pics. I use a 3 euro curver storage box that i hacked up. cheap and splash water proof and easy accesible.

Image


Image
Last edited by Fernando Garcia on Thu Feb 26, 2015 9:46 am, edited 1 time in total.
Reason: Image fixed

Post Number:#58 Post Fri Feb 27, 2015 6:17 am
Posts: 70
Topics: 12
Images: 3
Solve rating: 0
Joined: Tue Oct 28, 2014 11:06 am
Topics: 12
Age: 46
Gender: None specified
National Flag:
Netherlands
This is my ph curve after i made the change to the new code, much better :) .

Image
Last edited by Fernando Garcia on Fri Feb 27, 2015 9:17 am, edited 1 time in total.
Reason: Image fixed

Post Number:#59 Post Fri Feb 27, 2015 9:22 am
Posts: 1699
Topics: 38
Images: 301
Solve rating: 233
Joined: Mon Mar 03, 2014 5:59 pm
Topics: 38
Age: 40
Location: São Paulo
Gender: Male
National Flag:
Brazil

Hi!

Glad to hear.

To post images copy link from "Image-URL" instead "Image BBCode".

I'm curious to know what you did to control your webcam using Ferduino.

Best regards.
Post your doubts on forum because it can help another user too. Just PM me for support if it's absolutely necessary.

Post Number:#60 Post Fri Feb 27, 2015 9:40 am
Posts: 70
Topics: 12
Images: 3
Solve rating: 0
Joined: Tue Oct 28, 2014 11:06 am
Topics: 12
Age: 46
Gender: None specified
National Flag:
Netherlands
I bought a 720p wireless ip cam which has a built in webserver. I use ferduino to control it's powersocket throuhg 433 wireless. So i use ferduino to turn the camera off and on from everywhere in het word. I only want the camera to be on when i want to check the tank. For the rest it has to be of.

PreviousNext



Return to Show your controller





Who is online

Users viewing this topic: No registered users and 1 guest