problema compilazione sketch controllo stufa in remoto arduino uno e gsm shield


buonasera, stavo provando studiare un pò questo sketch ma provando verificarlo con l'ide mi restituisce una serie di errori e non riesco capire se è colpa della libreria (anche se non penso visto che è quella che si installa insieme all'ide), lo sketch lo scaricato dal sito quindi penso che sia ok.
allego sketch ed errori, me interessa sapere solo se è un problema di sketch, se è così provero ad arrivarci da solo anche se già che mi fumerà la testa, nel caso fosse invece un problema di libreria vi chiedo la cortesia di darmi una dritta altrimenti rischio di fondere.....


code: [select]

 sms heather remote control
 
 this sketch, designed gsm shield, allows remotely control any
 device connected arduino. sending sms, through keywords,
 it's possible, in case, turn on or off simple heater.
 
 the gsm module, mounted on arduino board, processes message , executes action.
 then, sends notification message containing state of device.
 if message doesn't contain valid keyword, arduino doesn't execute
 operation , message deleted sim card.
 the sketch manages keywords uppercase or lowercase.
 
 circuit:
 * gsm shield , arduino board
 * sim card can send/receive sms
 * relay connected digital pin 12
 
 based on receivesms example javier zorzano / td
 modified federico vanzati & alberto cicchi (03/2013)
 
 */

// include gsm library
#include <gsm.h>

const int heatercontrolpin = 12;

// initialize library instances
gsm gsmaccess;
gsm_sms sms;

// array hold number sms retreived from
char sendernumber[20]= "3488888884"; 

// string hold incoming message
string message = "";

// string contain parsed values message
string commandid, deviceid;

void setup()
{
  // set pin connected relay control heater output
  pinmode(heatercontrolpin, output);

  // initialize serial communications , wait port open:
  serial.begin(9600);
  while (!serial) {
    ; // wait serial port connect. needed leonardo only
  }

  // connection state
  boolean notconnected = true;

  // start gsm connection
  while(notconnected)
  {
    if(gsmaccess.begin()==gsm_ready)
      notconnected = false;
    else
    {
      serial.println("not connected");
      delay(1000);
    }
  }

  serial.println("gsm initialized");

}

void loop()
{
  char c;

  // if there sms available 
  if (sms.available())
  {
    serial.println("message received from:");

    // remote number
    sms.remotenumber(sendernumber, 20);
    serial.println(sendernumber);

    // example of message disposal   
    // messages starting # should discarded
    // anonymous messages starts #
    if(sms.peek()=='#')
    {
      serial.println("discarded sms");
      sms.flush();
    }

    // read message bytes , print them
    while(c = sms.read())
      message += c;

    // cancella message ricevuto
    sms.flush();
    serial.println("message deleted");
  }

  // if there new message start parse command , device control
  if(message != "") {

    // put incoming characters compose message lower case
    message.tolowercase();

    int i=0;

    // deviceid , commandid separated space
    // find , store position in 2 strings
    while(message.charat(i) != ' ') i++;

    commandid = message.substring(0,i);
    deviceid = message.substring(i+1, message.length());

    // check device control
    if(deviceid == "stufetta")
    {
      //check command execute
      if(commandid == "accendi") {
        sendfeedbacksms(sendernumber, deviceid, "on");  // send feedback sender
        digitalwrite(heatercontrolpin, high);
      }
      if(commandid == "spegni") {
        sendfeedbacksms(sendernumber, deviceid, "off"); // send feedback sender
        digitalwrite(heatercontrolpin, low);
      }
    }

    // clear message has been processed
    message = "";
  }

  delay(1000);
}

// function, given phone number , 2 strings representing device ,
// state send feedback text message phone number
void sendfeedbacksms(char remotenum[], string devstring, string devstate) {
  string txtmsg = devstring + " " + devstate;
  serial.println(txtmsg);
  serial.println(remotenum);

  sms.beginsms(remotenum);
  sms.print(txtmsg);
  sms.endsms();
}


gli errori:
code: [select]
  report have more information with
  "show verbose output during compilation"
  enabled in file > preferences.
arduino: 1.0.6 (windows xp), board: "arduino uno"
c:\documents , settings\utente\documenti\arduino\libraries\gsm\gsm3shieldv1modemverification.cpp: in member function 'string gsm3shieldv1modemverification::getimei()':
c:\documents , settings\utente\documenti\arduino\libraries\gsm\gsm3shieldv1modemverification.cpp:72: error: conversion 'int' 'string' ambiguous
c:\documents , settings\utente\desktop\arduino-1.0.6-windows\arduino-1.0.6\hardware\arduino\cores\arduino/wstring.h:61: note: candidates are: string::string(const __flashstringhelper*)
c:\documents , settings\utente\desktop\arduino-1.0.6-windows\arduino-1.0.6\hardware\arduino\cores\arduino/wstring.h:59: note:                 string::string(const char*)

l'attuale libreria gms non funziona con la 1.0.6. o usi la precedente versione 1.0.5 oppure passi alla 1.5.8.
il funzionamento verrà ripristinato nella prossima 1.0.7.


Arduino Forum > International > Italiano > Generale (Moderator: leo72) > problema compilazione sketch controllo stufa in remoto arduino uno e gsm shield


arduino

Comments

Popular posts from this blog

invalid use of void expresion in FlexiTimer2 library

error: a function-definition is not allowed here before '{' token

LED Strip Code