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.....
gli errori:
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.
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
Post a Comment