Pessoal... estou desenvolvendo um medidor de energia com comunicacao por sms.

Esse medidor precisa enviar algumas variaveis do tipo float por SMS como consumo de energia e o valor da fatura relativo ao consumo.

Debatendo em alguns foruns vi que nao era possivel o envio de variaveis do tipo float por sms utilizando o codigo C.

Entao fui recomendado a utilizar a funcao dtostrf() que converte variaveis do tipo float em uma string.

Entao utilizei o codigo abaixo referente quando o medidor recebe um SMS com a palavra "FATURA".

if (textsms.indexOf("FATURA") != -1) {
char mess[100];
double variable = valor_consumo_acc;
dtostrf(variable, 6, 2, mess);
Sim800l_GSM_Module.sendSms("+5531985644009", mess);

O que eu gostaria de fazer seria apenas inserir alguns caracteres como "R$" por exemplo junto do texto que será enviado por SMS, pois do jeito que está ele simplesmente envia algo do tipo: "28.54."

Alguem sabe se é possível fazer isso?

Se sim, como?

Exibições: 6549

Responder esta

Respostas a este tópico

Oi J2PS, boa noite.

Este site explica bem o uso desta função.

http://www.hobbytronics.co.uk/arduino-float-vars

Sugiro que faça assim:

if (textsms.indexOf("FATURA") != -1) {
char mess[100];

String Envio;


double variable = valor_consumo_acc;
dtostrf(variable, 6, 2, mess);

Envio = "R$ ";

Envio += mess;

Sim800l_GSM_Module.sendSms("+5531985644009", Envio);

Rui

boa noite J2PS, ja tentou algo tipo?

String mess,mess2;

if (textsms.indexOf("FATURA") != -1) {
char mess[100];
double variable = valor_consumo_acc;
dtostrf(variable, 6, 2, mess);

mess2="R$"+mess;
Sim800l_GSM_Module.sendSms("+5531985644009", mess2);

Oi J2PS, 

testei este code aqui usando a serial e funcionou.

 Obs :  só vou postar aqui por ser bem pequeno.

   String Envio;
   char mess[100];
   double variable = 500;
   Envio = "R$ ";
   dtostrf(variable, 6, 2, mess);
   Envio += mess;
   Serial.println(Envio);

http://pastebin.com/3e8nR8X0

Rui

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço