Ola galera estou fazendo um medidor de energia, que simula o recebimento de creditos, nesse caso é um medidor pre pago... e estou com uma dificuldade de juntar dois codigos que eu fiz separados, um que é do medidor e outro que é do shield GSM,.. Fiz uma programação, o GSM inicializa e tambem consigo visualizar os valores do medidor, mas quando eu enviou um SMS para o meu shield ele nao aparece na tela, e ai que esta o problema, caso alguem consiga me ajudar, fico grato
Programaçao a seguir
//Programa : Medidor de energia elétrica com Arduino e SCT-013
//Baseado no programa exemplo da biblioteca EmonLib
//Carrega as bibliotecas
#include "EmonLib.h"
#include <LiquidCrystal.h>
#include<SPI.h>
//SMS receiver // libraries
#include <GSM.h>
EnergyMonitor emon1;
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
float consumo;
float consumo_aux;
float tarifa = 0.58; //0,58 kW.h
float kwhTotal;
float kwhacumulado;
//*************** gsm variaveis ****************
float desconto;
float resul_desconto;
float resul;
char c;
// PIN Number
#define PINNUMBER ""
// initialize the library instance
GSM gsmAccess; // include a 'true' parameter for debug enabled
GSM_SMS sms;
char remoteNumber[20]; // Holds the emitting number
String TextoAcumulado = "";
// ****************************************
//Tensao da rede eletrica
int rede = 220.0;
//Pino do sensor SCT
int pino_sct = 1;
void setup()
{
// ****************** setup gsm **********************
Serial.begin(9600);
Serial.println("SMS Concessionaria");
// connection state
boolean notConnected = true;
// Start GSM shield
while(notConnected)
{
if(gsmAccess.begin(PINNUMBER)==GSM_READY)
notConnected = false;
else
{
Serial.println("Não Conectado");
delay(1000);
}
}
Serial.println("GSM Inicializado");
//Serial.println("Waiting for messages");
resul_desconto=0;
//******************************************************
//******************** lcd ****************************
lcd.begin(16, 2);
lcd.clear();
//Serial.begin(9600);
//Pino, calibracao - Cur Const= Ratio/BurdenR. 1800/62 = 29.
emon1.current(pino_sct, 29);
//Informacoes iniciais display
lcd.setCursor(0,0);
lcd.print("Corr.(A):");
lcd.setCursor(0,1);
lcd.print("Pot. (W):");
}
void loop()
{
//Calcula a corrente
double Irms = emon1.calcIrms(1480);
char c;
//Mostra o valor da corrente
Serial.print("Corrente : ");
Serial.print(Irms); // Irms
lcd.setCursor(10,0);
lcd.print(Irms);
//Calcula e mostra o valor da potencia
Serial.print(" Potencia (W) : ");
Serial.println(Irms*rede);
lcd.setCursor(10,1);
lcd.print(" ");
lcd.setCursor(10,1);
lcd.print(Irms*rede,1);
//Calculo kWh
kwhTotal = (((Irms*220.0)/1000.0) * (1/3600.0 )); // calculo o khw gastos
kwhacumulado = kwhacumulado + kwhTotal;
Serial.print("kwhTotal Acumulado: ");
Serial.println(kwhacumulado,10);
//Calculo do consumo
consumo_aux = (kwhTotal) * 0.58;
consumo = consumo + consumo_aux;
Serial.print ("R$: ");
Serial.println (consumo,10); // imprime valor em reais
c = 'aa';
Serial.println(c);
//************ gsm ******************************************
// If there are any SMSs available()
if (sms.available())
{
Serial.println("Mensagem Recebida");
// Get remote number
sms.remoteNumber(remoteNumber, 20);
Serial.println(remoteNumber);
// Messages starting with # should be discarded
if(sms.peek()=='#')
{
//Serial.println("Discarded SMS");
sms.flush();
}
// Read message bytes and print them
Serial.println("Voce Recarregou (R$):");
while(c=sms.read())
{
Serial.print(c);
TextoAcumulado += c;
delay(10);
}
sms.flush();
// Desconto do valor da msg
int resul = TextoAcumulado.toInt();
desconto = (resul-5);
resul_desconto = resul_desconto + desconto;
Serial.print("Valor recebido com 5 reais descontado: ");
Serial.println(desconto,10);
Serial.print("Valor acumulado: ");
Serial.println(resul_desconto,10);
}
else{
Serial.println("Sem mensagem recebida");
}
delay(1000);
TextoAcumulado = "";
//************************************************************
}
Tags:
Ah, mas vc vai ter que dar mais detalhes dessa ideia pois é muito legal. Qual o shield gsm você usa?
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por