Oi pessoal,
alguém tem algo de como "acionar" o arduino via comandos SMS?
tenho a shild com sim900.
Obrigado
Abraços
Sérgio
Tags:
Pois é pessoal, achei algo na net, mudei e ficou assim (abaixo), está funcionando, mas alguém poderia comentar o código? Algumas linhas eu tenho dúvida e acho que seria legal para todos...
Abraços.
#include <SoftwareSerial.h>
SoftwareSerial my(2, 3);
//V3 resumido
int ledPin = 13;
char info[400];
char ligarluz[] = "#LL";
char desligarluz[] = "#DL";
char numero[13] = "xxxxxxxxxxx";
String adminPDU = numero;
void setup()
{
pinMode(12,OUTPUT);
pinMode(ledPin,OUTPUT);
Serial.begin(19200);
my.begin(4800);
clear_SMS_Memory();
Serial.println("SMS apagados");
Serial.println("Inicio do Loop");
my.println("AT+CMGF=1");
Serial.println(adminPDU);
}
void loop() //
{
my.println("AT+CMGR=1");
int index = 0;
unsigned long startTime = millis();
while (millis() < (startTime+1000))
{
if (my.available()>0){
info[index] = my.read();
index++; }
}
if (String(info).indexOf("+CMGR:")>0 && String(info).indexOf(",,0")<0)
{
delay(5000);
my.println("AT+CMGR=1");
index=0;
startTime = millis();
while (millis() < (startTime+1000))
{
if (my.available()>0){
info[index] = my.read();
index++; }
}
Serial.println("//Mensagem Recebida:");
Serial.println(String(info));
Serial.println("//Fim da Mensagem\\");
Serial.println("Mensagem do admin");
if (String(info).indexOf(String(ligarluz))>0)
{ LigarLuz();
Serial.println("DEBUG --- dentro do if 1");}
else if (String(info).indexOf(String(desligarluz))>0)
{ DesligarLuz();
Serial.println("DEBUG --- dentro do if 2");}
my.println("AT+CMGD=1");
delay(1000);
while (my.available()>0) my.read();
Serial.println("Mensagem Apagada");
memset( &info, 0, sizeof(info) );
}
}
void LigarLuz()
{
digitalWrite(12,HIGH);
Serial.println("Luz ligada");
delay(1000);
Serial.println("SMS Enviado");
}
void DesligarLuz()
{
digitalWrite(12,LOW);
Serial.println("Luz desligada");
delay(1000);
Serial.println("SMS Enviado");
}
void clear_SMS_Memory(){
unsigned short i = 0;
for(i=1;i<=30;i++){
my.print("AT+CMGD=");
my.println(i);
delay(100);
}
while (my.available()>0) my.read();
}
Provavelmente quem fez esse programa estava trabalhando com módulos para comunicação sem fio por bluetooth ou xbee.A questão aqui qual é a distância que você que atingir sem fios.Se for apenas alguns metros bluetoooth resolve, centenas de metros xbee.Mas se vc que atingir muitos kilometros então via ter que recorrer a outros módulos como o sim que vc acabou de citar.
Sim, estou usando gprs.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por