Ola pessoal,
estou usando o código abaixo para enviar sms. Mas preciso usar o numero de telefone como uma variável e não consigo.
Tentei algo como criar a variável. String numero = "+551198151034"; e substituir a linha do telefone mySerial.print("AT+CMGS="+5511981510340"\r"); por
Já tentaste:
mySerial.print("AT+CMGS=+5511981510340\r");
ou sem o + ?
À proposito, estou interessado em comprar um Arduino.
Saberia me dizer o que posso fazer com ele. Assim, quais são os limites dele, se tenho que comprar muitas peças externas à placa.
Este seu código, por exemplo, você está usando somente o Arduino ou teve que comprar algum "add-on" ?
Não fizeste referência se o programa funciona quando não usas o número de telefone como uma variável. Eu assumo que sim, mas não faço ideia.
Outra coisa, este código que deixaste tem coisas estranhas.
Para que serve esta linha:
mySerial.print("\r"); ??
Porquê os delays entre envios de dados para o módulo GSM? Já apareceram aqui vários exemplos sem delays que aparentemente estavam a funcionar.
Finalmente, não me parece correcto que coloques o código a enviar SMSs sem condições no loop... de 4 em 4 segundos o módulo GSM vai tentar mandar SMSs... já viste se tens saldo no cartão? Coloca algo como:
if (Serial.available() > 0) {
if (Serial.read() == 'S') {
//Código para envio de mensagens...
}
}
Assim sempre que enviares um S pela Serial, o módulo manda a SMS. Muito mais controlado e simples.
Ahh e experimenta o programa depois de teres desligado tudo e voltado a ligar.
mkbu95:
À proposito, estou interessado em comprar um Arduino.
Saberia me dizer o que posso fazer com ele. Assim, quais são os limites dele, se tenho que comprar muitas peças externas à placa.
Este seu código, por exemplo, você está usando somente o Arduino ou teve que comprar algum "add-on" ?
Por favor, coloca isto numa mensagem separada, ou procura no fórum... isto está escrito e descrito em várias threads.
O arduino é uma plataforma que apenas comunica com o computador e mexe com os pinos desse processador. Irás sempre precisar de add-ons para fazer coisas nele.
mySerial.print("AT+CMGS=\"+5511981510340\"\r"); por
Aqui indicas para onde vai a SMS e o corpo dela ?
Logo a seguir a esse comando tens de indicar o texto e depois termina la com o CTRL+Z para que desta forma seja terminada o envio !!
Se apenas escreveres isso no modem passado uns segundos se ele nao receber o corpo da "ERROR"
Aconselho te a ligares o modem atravez de um cliente de hiperterminal no teu pc e testares la e depois passares para o arduino
De salientar que tambem deves por o modem em modo texto usando o comando AT+CMGF=1
Aqui tens um pouco de texto retirado do modem da Siemens mc35i que usa a mesma estrutura
AT+CMGF=1
AT+CMGS="####" where #### is the phone number you want to send the message to followed by a CR which will give you a prompt.
You can then type the message you want then follow it with a CTRL+Z (that is CONTROL button and Z button pressed together)