Com o módulo GSM GPRS SIM800L você pode efetuar ligações, enviar SMS e até mesmo conectar-se à internet. Neste post, vamos usar o SIM800L para montar um sistema de alarme por SMS juntamente com um sensor magnético reed switch.
O projeto que vamos mostrar efetua a leitura contínua do estado de um sensor magnético conectado ao Arduino. Caso o sensor seja acionado, um SMS é enviado para o número de celular cadastrado na memória do microcontrolador.
Material para o projeto
Para montar esse projeto você vai precisar do seguinte material:
- Arduino Uno
- Sensor magnético Reed Switch
- Módulo GSM GPRS SIM800L com antena SMA
- Fonte ajustável protoboard
- Fonte de alimentação (com corrente mínima de 1A)
Aqui no Arduino e Cia postamos recentemente um tutorial mostrando como você pode controlar o Arduino atráves do recebimento de mensagens SMS usando o SIM800L (clique aqui para ler).
Já o sensor magnético reed switch é um componente que funciona como uma chave magnética: aproxime um ímã do sensor e os contatos são fechados, permitindo a passagem da corrente elétrica.
A fonte para protoboard é um item importante (eu diria até indispensável neste caso), pois vai fornecer corrente suficiente para o correto funcionamento do módulo SIM800L. Sem ele, você pode enfrentar desde travamentos do módulo até um reset inesperado.
Circuito com Arduino Uno
O circuito abaixo mostra o sensor magnético ligado na porta analógica A1 do Arduino. Junto ao sensor temos um resistor de 330ohms servindo como pull-down. O módulo SIM800L está conectado nas portas 10 e 11, que funcionarão como uma porta serial graças à biblioteca SoftwareSerial.
No plug P4 da fonte da protoboard eu liguei uma fonte de alimentação 9V/2A. No nosso circuito ela vai servir exclusivamente para alimentação do SIM800L. Na fonte da protoboard, não esqueça de selecionar a tensão de 5V por meio dos jumpers.
Programa alarme por SMS com reed switch e SIM800L
O programa abaixo usa a biblioteca SIM800L (download). Descompacte a biblioteca e coloque-a na pasta LIBRARIES da IDE do Arduino. Vamos usar também a biblioteca SoftwareSerial, que já está embutida na IDE.
Coloque no slot do módulo um cartão SIM válido, desbloqueado e com créditos suficientes para realizar chamadas e enviar SMS.
No programa, configure na linha 8 o texto que será enviado via SMS quando o sensor magnético reed-switch for acionado. Na linha 9, coloque o número do celular que receberá a mensagem de texto, enviada na linha 29 pelo comando Sim800l.sendSms().
//Programa: Envio de SMS com SIM800L //Autor: Arduino e Cia #include <Sim800l.h> #include <SoftwareSerial.h> Sim800l Sim800l; char* texto = "Sensor acionado!"; char* numero = "04111987654321"; #define pino_sensor A1 int valor; void setup() { Serial.begin(9600); pinMode(pino_sensor, INPUT); Sim800l.begin(); // initializate the library. Serial.println("Aguardando acionamento do sensor..."); } void loop() { valor = digitalRead(pino_sensor); if (valor != 0) { Serial.println("Sensor acionado! Enviando SMS..."); Sim800l.sendSms(numero, texto); Serial.println("SMS Enviado..."); while (digitalRead(pino_sensor) != 0) { delay(100); } Serial.println("Aguardando novo acionamento"); } }
Aproxime um ímã do sensor magnético reed switch e aguarde o recebimento do SMS no seu telefone celular/smartphone. Verifique o funcionamento do programa por meio do serial monitor:
Você pode adaptar facilmente este circuito para utilização com outros sensores como sensores ultrassônicos, infravermelho, indutivo e sensor de presença, entre outros.