Bom pessoal, como eu disse no review dessa placa, vamos começar uma serie de posts, falando mais sobre Arduino+GSM e alguns outros fatores.
Nesse primeiro projeto aplicado vamos fazer a leitura de um sensor de temperatura LM35, e enviar esses dados de tempos em tempos a um numero especifico de celular.
A primeira parte é a montagem, o sensor LM35 varia 10mV a cana grau na sua saída. O WS Bridge tem disponível em sua placa entradas analógicas, onde G= GND, V=VCC e S=entrada. Então para fazer essa conexão com o LM35 com sua face para frente temos VCC - OUT - GND como na imagem a seguir:
Assim é feita as conexões no WS Bridge:
Conexões feitas:
Agora vamos para programações, temos que fazer o seguinte, configurar a comunicação serial Arduino-GSM, para isso vamos usar a biblioteca softwareserial. Logo depois temos que iniciar o modem e configurar a leitura como modo texto, para isso enviamos o comando AT+CMGF=1.
Com modem configurado vamos ao laço loop, fazemos a leitura da temperatura, e convertemos essa valor float para uma String, logo depois concatenamos na String a frase que queremos enviar ex:
Temperatura atual: X.
Dessa forma podemos enviar apenas a String que já tem todos dados completos, se não ficou facil de entender aqui vai o programa para WS Bridge.
Lembrando que temos que colocar o numero de celular onde esta indicado no código:
- #include <SoftwareSerial.h>
- SoftwareSerial mySerial(3,2);
- float temperatura;
- String data;
- void setup()
- {
- mySerial.begin(19200);
- mySerial.println("\r");
- delay(1000);
- mySerial.println("AT+CMGF=1\r");
- delay(1000);
- }
- void loop()
- {
- if (mySerial.available())
- {
- temperatura = (5.0 * analogRead(A0) * 100.0) / 1024;
- int tempC1 = temperatura;
- int tempC2 = (temperatura - tempC1) * 100;
- char msg[24];
- sprintf(msg, "%i.%i", tempC1,tempC2);
- data+="Temperatura atual: ";
- data+=(msg);
- mySerial.println("AT+CMGS=\"+NUMERO CELULAR\"\r");
- delay(1000);
- mySerial.println(data);
- delay(1000);
- mySerial.println((char)26);
- data="";
- }
- delay(60000);
- }
Dessa forma de 1 em 1 minuto vamos receber no celular a temperatura atual lida pelo Arduino usando sensor LM35:
É isso ai pessoal, qualquer duvida so deixar nos comentários, logo mais teremos outro projeto aplicado para essa placa!!
OLA... estou trabalhando com o sim908 e gostaria de pegar as coordenadas GPS e enviar para um celular..
ResponderExcluirpara solicitar a coordenada eu utilizo o comando AT+CGPSINF=32, com isso ele me retorna algo desse tipo:
32,200421.000,A,2323.891622,S,5158.630559,W,0.00,0.00,270813,,E,A
OK
então gostaria de pegar os valores que vão de 2323 até ..559, antes do W e enviar esses valores para o celular....
Você poderia me explicar como faço para pegar esse valor para depois enviar???
mt obrigado
Fala guilherme, para filtrar esses dados pesquise sobre a biblioteca TextFinder, nela voce pode criar delimitadores e filtrar essa string. Ou então da pra fazer manualmente lendo a scring inteira e quebrar por exemplo nas virgulas para separar os dados, nos posts anteriores sobre SIM900 eu uso essa tecnica nos codigos, de uma olhada.
ExcluirAbs!