Go Down

Topic: Ethernet to iOS problems (Read 902 times) previous topic - next topic

trvslamm

This code should be sending data to the iphone app Arduino Manager but will not compile, suggestions?

Code: [Select]
#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>
#include <Servo.h>
#include <IOSController.h>
#include <avr/wdt.h>

int Trigger = 600; // value photocell reading must be below to trigger "break"
int CumulativeTotal = -3; //initial value of CumulativeTotal = -3 to account for first "test read" on all sensors

const int LEDpinlowred = 9;//Red LED 1
const int LEDpinmidred = 11; //Red LED 2
const int LEDpintopred = 12;//Red LED 3
const int LEDpinStat = 13;
const int laserPin = 5; //Variable power transmitter


/*
*
* Ethernet Library configuration
*
*/
byte mac[] = {
  0x90, 0xA2, 0xDA, 0x00, 0xC5, 0x79 };  // MAC Address assigned to the board

/*
*
* IP info
*
* Using DHCP these parameters are not needed
*/
IPAddress ip(192,168,1,220);
IPAddress gateway(192,168,1,220);
IPAddress subnet(255,255,255,0);

/*
*
* Initialize the Ethernet server library
*/
EthernetServer server(80);   // Messages received on port 80

#define CHIPSELECT 4;


/*
*
* Prototypes of IOSController's callbacks
*
*
*/


void doWork();
void doSync(char *variable);
void processIncomingMessages(char *variable, char *value);
void processOutgoingMessages();
void deviceConnected();
void deviceDisconnected();

/*
*
* IOSController Library initialization
*
*/

begin.IOSController
void setup()
{
  Serial.begin(115200);

 
   
  pinMode(10, OUTPUT);     // change this to 53 on a mega
  digitalWrite(10, HIGH);  // but turn off the W5100 chip!




  Ethernet.begin(mac, ip, subnet, gateway); 

  server.begin();




  pinMode(A0, INPUT); //Low Photocell
  pinMode(A1, INPUT); //Middle Photocell
  pinMode(A2, INPUT); //High Photocell
  pinMode(2, OUTPUT); //Seven Segment Display 'a'
  pinMode(3, OUTPUT); //Seven Segment Display 'b'
  pinMode(4, OUTPUT); //Seven Segment Display 'c'
  pinMode(5, OUTPUT); //Seven Segment Display 'd'
  pinMode(6, OUTPUT); //Seven Segment Display 'e'
  pinMode(7, OUTPUT); //Seven Segment Display 'f'
  pinMode(8, OUTPUT); //Seven Segment Display 'g'                                                ------------------
  pinMode(9, OUTPUT); //Seven Segment Display 'h'                                               |   /0/1/2/    3    |
  pinMode(LEDpinlowred, OUTPUT); //User interface panel LED 0(Red)  diagonostics A2             |                   }
  pinMode(LEDpinmidred, OUTPUT); //User interface panel LED 1(Red)  diagonostics A1             |                 4 |
  pinMode(LEDpintopred, OUTPUT); //User interface panel LED 2(Red)  diognostics A0                ------------------
  pinMode(LEDpinStat, OUTPUT); //User interface panel LED 3(amber) systems status indicator(blink = uploading serial data)(solid = problem)
  pinMode(laserPin, OUTPUT); //Powers laser transmission pole

  digitalWrite (LEDpinlowred, 0);
  delay(350);
  digitalWrite (LEDpinlowred, 1);
  delay(350);
  digitalWrite (LEDpinmidred, 0);
  delay(350);
  digitalWrite (LEDpinmidred, 1);
  delay(350);
  digitalWrite (LEDpintopred, 0);
  delay(350);
  digitalWrite (LEDpintopred, 1);
  delay(750);
  digitalWrite (LEDpintopred, 0);
  delay(350);
  digitalWrite (LEDpintopred, 1);
  delay(150);
  digitalWrite (LEDpinmidred, 0);
  delay(150);
  digitalWrite (LEDpinmidred, 1);
  delay(150);
  digitalWrite (LEDpinlowred, 0);
  delay(150);
  digitalWrite (LEDpintopred, 1);

  delay(500);
  digitalWrite (LEDpinlowred,0);
  digitalWrite (LEDpinmidred,0);
  digitalWrite (LEDpintopred,0);
  delay(400);
  digitalWrite (LEDpinlowred,1);
  digitalWrite (LEDpinmidred,1);
  digitalWrite (LEDpintopred,1);
  delay(400);
  digitalWrite (LEDpinlowred,0);
  digitalWrite (LEDpinmidred,0);
  digitalWrite (LEDpintopred,0);
  delay(400);
  digitalWrite (LEDpinlowred,1);
  digitalWrite (LEDpinmidred,1);
  digitalWrite (LEDpintopred,1);
  delay(400);
  digitalWrite (LEDpinlowred,0);
  digitalWrite (LEDpinmidred,0);
  digitalWrite (LEDpintopred,0);
  delay(400);
  digitalWrite (LEDpinlowred,1);
  digitalWrite (LEDpinmidred,1);
  digitalWrite (LEDpintopred,1);
}

void loop()
{
  //iosController.loop();
  iosController.loop(500);
}
void doWork() {

  delay (1200); // Most useful for tuning, sensor read time
  if  (analogRead(2) > Trigger){
    (++CumulativeTotal);
  } // if condition is true add 1 to 'The cumulative total' which will be displayed to the seven segment display.
  else // do nothing
  if (analogRead(2) < 600) {
    digitalWrite (LEDpintopred, 1);
  }
  if (analogRead(2) > 600) {
    digitalWrite (LEDpintopred, 0);
  }
  delay(1);


  if  (analogRead(1) > Trigger)  {
    (++CumulativeTotal);
  }  // if condition is true add 1 to 'The cumulative total' which will be displayed to the seven segment display.
  else// do nothing
  if (analogRead(1) < Trigger) {
    digitalWrite (LEDpinmidred, 1);
  }
  if (analogRead(1) > Trigger) {
    digitalWrite (LEDpinmidred, 0);
  }
  delay(1);

  if  (analogRead(0) > Trigger)  {
    (++CumulativeTotal);
  }// if condition is true add 1 to 'The cumulative total' which will be displayed to the seven segment display.
  else// do nothing
  if (analogRead(0) < Trigger) {
    digitalWrite (LEDpinlowred, 1);
  }
  if (analogRead(0) > Trigger) {
    digitalWrite (LEDpinlowred, 0);
  }


  delay(10);
  if (analogRead(0) > Trigger) {
    delay(10000);
  }
  if (CumulativeTotal > 20){
    digitalWrite (LEDpinStat, 1);
  }



  {
    Serial.println ("Total Product Loaded:-");
    Serial.println (CumulativeTotal);
  }
  if (Serial.available()) {

    //read serial as a character
    char ser = Serial.read();

    switch (ser) {
    case '1':
      analogWrite(laserPin, 50);
      break;
    case '2':
      analogWrite(laserPin, 100);
      break;
    case '3':
      analogWrite(laserPin, 150);
      break;
    case '4':
      analogWrite(laserPin, 200);
      break;
    case '5':
      analogWrite(laserPin, 250);
      break;
    case '0':
      analogWrite(laserPin, 0);
      break;
    case 'c':
      (CumulativeTotal = 0);
      break;
    case '+':
      (++CumulativeTotal);
      break;
    case '-':
      (--CumulativeTotal);
      break;
    case 'ul58':
      (CumulativeTotal = -58);
      break;
    }
  }
  void processOutgoingMessages() {



    iosController.writeMessage("Total",CumulativeTotal);


  }

  /**
   *
   *
   * This function is called when the iOS device connects
   *
   */
  void deviceConnected () {

    digitalWrite(CONNECTIONPIN,HIGH);
  }

  /**
   *
   *
   * This function is called when the iOS device disconnects
   *
   */
  void deviceDisconnected () {

    digitalWrite(CONNECTIONPIN,LOW);
  }

}



There is alot of useless code there so let me trim it up. I think the problem is here somewhere
Code: [Select]
#include <IOSController.h>
#include <avr/wdt.h>

int Trigger = 600; // value photocell reading must be below to trigger "break"
int CumulativeTotal = -3; //initial value of CumulativeTotal = -3 to account for first "test read" on all sensors

const int LEDpinlowred = 9;//Red LED 1
const int LEDpinmidred = 11; //Red LED 2
const int LEDpintopred = 12;//Red LED 3
const int LEDpinStat = 13;
const int laserPin = 5; //Variable power transmitter


/*
*
* Ethernet Library configuration
*
*/
byte mac[] = {
  0x90, 0xA2, 0xDA, 0x00, 0xC5, 0x79 };  // MAC Address assigned to the board

/*
*
* IP info
*
* Using DHCP these parameters are not needed
*/
IPAddress ip(192,168,1,220);
IPAddress gateway(192,168,1,220);
IPAddress subnet(255,255,255,0);

/*
*
* Initialize the Ethernet server library
*/
EthernetServer server(80);   // Messages received on port 80

#define CHIPSELECT 4;


/*
*
* Prototypes of IOSController's callbacks
*
*
*/


void doWork();
void doSync(char *variable);
void processIncomingMessages(char *variable, char *value);
void processOutgoingMessages();
void deviceConnected();
void deviceDisconnected();

/*
*
* IOSController Library initialization
*
*/

begin.IOSController
void setup()
{
  Serial.begin(115200);

 
   
  pinMode(10, OUTPUT);     // change this to 53 on a mega
  digitalWrite(10, HIGH);  // but turn off the W5100 chip!




  Ethernet.begin(mac, ip, subnet, gateway); 

  server.begin();

or maybe here
Code: [Select]
void loop()
{
  //iosController.loop();
  iosController.loop(500);
}
void doWork() {

or maybe here
Code: [Select]
void processOutgoingMessages() {



    iosController.writeMessage("Total",CumulativeTotal);


  }

  /**
   *
   *
   * This function is called when the iOS device connects
   *
   */
  void deviceConnected () {

    digitalWrite(CONNECTIONPIN,HIGH);
  }

  /**
   *
   *
   * This function is called when the iOS device disconnects
   *
   */
  void deviceDisconnected () {

    digitalWrite(CONNECTIONPIN,LOW);
  }

}





Be easy on on me I am a complete newbie on ethernet and not exactly a pro with arduino and libraries
Thanks in advance

mixania

What errors does it give in the compiler?

trvslamm

also here are the error codes I have






FarmCount:25: error: expected constructor, destructor, or type conversion before 'void'
FarmCount:81: error: expected unqualified-id before '.' token
FarmCount.ino: In function 'void loop()':
FarmCount:171: error: 'iosController' was not declared in this scope
FarmCount.ino: In function 'void doWork()':
FarmCount:265: error: a function-definition is not allowed here before '{' token
FarmCount:280: error: a function-definition is not allowed here before '{' token
FarmCount:291: error: a function-definition is not allowed here before '{' token

mistergreen

this will solve some of the error, maybe not all

look for
Code: [Select]
{
    Serial.println ("Total Product Loaded:-");
    Serial.println (CumulativeTotal);
  }


two brackets doing nothing but throw errors.

PaulS

Code: [Select]
begin.IOSController
What the heck is this?

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy