Eu quero acionar dois leds pelo arduino, por sms. Tenho dois códigos funcionando perfeitamente. Um recebe e lê sms. O outro aciona os leds por comandos de texto no monitor serial.O que quero é: UNIR ESSES DOIS CÓDIGOS, QUE AO INVÉS DE ACIONAR OS LEDS PELO SERIAL MONITOR, QUANDO RECEBER UM SMS, ELE ACIONAR O LED.

CÓDIGO DE LEITURA E RECEBIMENTO DE SMS

#include<SoftwareSerial.h>
#include “sms.h”

SMSGSM sms;
boolean started=false;
char posicao_sms;
char num_fone[20];
char texto_sms[10];
int i;

void setup(){
Serial.begin(9600);
Serial.println(“Testando Sistema…”);
if (gsm.begin(4800)){
Serial.println(“\nSistema Pronto!”);
started=true;}
else
Serial.println(“\nsSistema Inativo!”);};

void loop(){
if(started){
for(i=1;i<=20;i++){
sms.DeleteSMS(i);}
posicao_sms=sms.IsSMSPresent(SMS_UNREAD);
if (posicao_sms){
Serial.print("Posicao do SMS:");
Serial.println(posicao_sms,DEC);
sms.GetSMS(posicao_sms, num_fone, texto_sms, 10);
Serial.println(num_fone);
Serial.println(texto_sms);}
else{
Serial.println("Sem novos SMS's. AGUARDANDO!");}
delay(1000);}};

CÓDIGO DE ACIONAMENTO PELO SERIAL MONITOR

int led1 = 41;
int led2 = 40;

void setup(){
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
Serial.begin(9600);}

String lerstring(){
String conteudo = “”;
char caractere;

while(Serial.available() > 0){
caractere = Serial.read();
if (caractere != ‘\n’){
conteudo.concat(caractere);}
delay(10);}

Serial.print(“Comando: “);
Serial.println(conteudo);
return conteudo;}

void loop() {
if (Serial.available() > 0){
String recebido = lerstring();
if (recebido == “v1on”){
digitalWrite(led1, HIGH);}
if (recebido == “v1off”){
digitalWrite(led1, LOW);}
if (recebido == “v2on”){
digitalWrite(led2, HIGH);}
if (recebido == “v2off”){
digitalWrite(led2, LOW);}}}

Exibições: 968

Responder esta

Respostas a este tópico

Muito obrigado pelas dicas vou testar depois posto aqui .

confirma para mim como e a ligaçao pois esta dando erro

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço