Ciao, chiedo aiuto per la risoluzione di questo inconveniente:
tramite il codice sotto invio via sms il valore letto dall' ingresso analogico A0.
RIvevo l'sms però vedo un valore strano letto dall' ingresso A0 es:
Temperature: -12321.12133
Ho sbagliato qualcosa sull'impostazione della variabile t alla riga??
(sms.SendSMS("numerocell",string));
Se stampo il valore delle temperatura con serialprint vedo il valore correttamente.
Grazie per l'aiuto
#include "SIM900.h"
#include <SoftwareSerial.h>
//If not used, is better to exclude the HTTP library,
//for RAM saving.
//If your sketch reboots itself proprably you have finished,
//your memory available.
//#include "inetGSM.h"
//If you want to use the Arduino functions to manage SMS, uncomment the lines below.
#include "sms.h"
SMSGSM sms;
//To change pins for Software Serial, use the two lines in GSM.cpp.
//GSM Shield for Arduino
//www.open-electronics.org
//this code is based on the example of Arduino Labs.
//Simple sketch to send and receive SMS.
int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];
char string[160];
int LM35=0;
float t;
void setup()
{
//Serial connection.
Serial.begin(9600);
Serial.println("GSM Shield testing.");
//Start configuration of shield with baudrate.
//For http uses is raccomanded to use 4800 or slower.
if (gsm.begin(2400)){
Serial.println("\nstatus=READY");
started=true;
}
else Serial.println("\nstatus=IDLE");
};
void loop()
{
if(started){
t= analogRead(LM35)*0.488;
sprintf(string,"Temperature: %d.%d", t);
if
(sms.SendSMS("numerocell",string));
Serial.println("\nSMS sent OK");
//Read if there are messages on SIM card and print them.
if(gsm.readSMS(smsbuffer, 160, n, 20))
{
Serial.println(n);
Serial.println(smsbuffer);
}
delay(60000);
}
};
se provo a lanciare un normale sketch di acquisizione e stampa dell' ingresso A0 vedo il valore corretto con Serial.println(t); quindi escludo il problema sull' ingresso A0
se provo da questo sketch il valore di t dell' sms è stranissimo...una serie di numeri che non capisco
dove sbaglio?
grazie
Ho provato ma non funziona, se provo a stampare le due temperature su sms vedo solo:
Temperatura1: 266.0 un valore completamaente fuori... forse è un problema di sintassi?
Ho risolto con: strcat andando a concatenare le stringhe e successivamante convertendo il valore delle variabili temperatura in char infine ho richiamato message per l'invio sms.
es. ottengo Temperatura1 val=22 Temperatura2 val=25
string[0]='\0';
strcat(string,"Temperatura1, VAL=");
itoa(temperatura1,temp1convertita,10); //converto il numero della temperatura in char
itoa(temperatura2 ,temp2convertita,10); //converto il numero della temperatura in char
strcat(string,temp1convertita);
strcat(string,"Temperatura2, VAL=");
strcat(string,temp2convertita);
sms.SendSMS(numero cell,message);
Una cosa che però non riesco a fare è avere il valore con 2 cifre decimali es:
VAL= 10.23
Sull sms mi arriva solo il valore 10. Come posso fare per risolvere? La variabile l'ho dichiarata float
Come posso fare?
Grazie
string[0]='\0';
strcat(string,"Temperatura1, VAL=");
itoa(temperatura1,temp1convertita,10); //converto il numero della temperatura in char
itoa(temperatura2 ,temp2convertita,10); //converto il numero della temperatura in char
strcat(string,temp1convertita);
strcat(string,"Temperatura2, VAL=");
strcat(string,temp2convertita);
sms.SendSMS(numero cell,message);