Com o início da temporada de verão, havia uma necessidade de proteger a casa de campo. Eu queria fazer um alarme simples, mas confiável, com um sinal transmitido para um telefone celular. Foi decidido montar um dispositivo com transmissão de alarme em um telefone celular baseado em eletrônico placas de circuito compradas no Aliexpress. Como se costuma dizer barato, mas alegre. Os principais elementos desse design são o módulo GSM SIM800L e a placa Arduino (você pode usar qualquer um - Nano, Uno, Pro Mini e similares).
O dispositivo possui cinco entradas de alarme para sensores de contato. Um ou vários sensores conectados em série podem ser conectados a cada entrada.Em um esboço, atribua um nome a cada loop de segurança (por exemplo, uma porta de entrada, janela 1, janela 2 e assim por diante). O dispositivo de segurança funciona assim: quando o circuito elétrico do primeiro loop é interrompido, a unidade faz uma chamada para o primeiro telefone do assinante, depois para a chamada e também para o número 2. O número 2 é necessário, visto que, de repente, o primeiro assinante está offline ou a bateria e outros problemas estão ligados). Se o loop após o primeiro for acionado, uma mensagem SMS será enviada com o nome do loop que funcionou, no mesmo caso, para os dois números de assinante.
Enumeração de ferramentas e materiais.
bateria de íon de lítio de um telefone antigo 3.7V \ 1600mA-1pc
fios de conexão;
ferro de soldar;
testador;
- caixa plástica transparente -1pcs;
pagamento Arduino Nano -1 pcs;
-resistores 10kOhm-7pcs;
- tábua de pão feita de textolite de papel alumínio;
- interruptor de alimentação 1pcs;
- módulo SIM800L -1pcs;
- placa abaixando 1-2A -1pcs;
- conectores terminais.
Primeiro passo. Montagem de um circuito de um dispositivo de segurança GSM.
Esquema de foto.
Soldamos blocos de plug-in para o módulo GSM SIM800L e o módulo Arduino na placa de ensaio, isso simplifica a instalação e facilita a substituição dos módulos, se necessário. Resistores de solda e outras conexões. Os resistores do pino RX do módulo SIM800L são conectados à entrada digital do Arduino D3 para corresponder à tensão das entradas dos dois módulos. As entradas do Arduino D4-D8 são puxadas através de resistores. O comutador está montado no espaço da fonte de alimentação do módulo SIM800 GSM e na placa Arduino para armar todo o sistema. O uso de uma bateria, que permitirá que o dispositivo funcione por dois três dias na ausência de uma rede de 220 V. No meu caso, o conversor de tensão da tensão de 12 V produz uma tensão de 4,2 V e, ao mesmo tempo, carrega a bateria (você pode usar outra placa, por exemplo, TP4056 com proteção).
Segundo passo. Programação de dispositivos.
No cartão SIM, os códigos PIN e todas as funções desnecessárias devem ser excluídas.Ainda assim, primeiro você precisa configurar o módulo SIM800L. Existem muitos vídeos sobre esse tópico na rede, não há nada de complicado nisso. No esboço, indicamos seus números de telefone, ajustamos os nomes das zonas de segurança, você pode definir o tempo para monitorar o sistema (se o dispositivo estiver funcionando corretamente após um tempo especificado, um SMS de controle será fornecido). Preencha o esboço no Arduino e verifique o funcionamento do dispositivo.
Esboço:
String numberCall_1 = "79123456789"; // Número do assinante №1 para uma chamada
Número da sequênciaSMS_1 = "+79123456789"; // Número do assinante nº 1 para SMS (difere apenas no sinal +)
String numberCall_2 = "79123456782"; // Número do assinante 2 para uma chamada
Número da sequênciaSMS_2 = "+79123456782"; // Número do assinante nº 2 para SMS (difere apenas no sinal +)
String textZone_1 = "Alarme! Zona1"; // Seu nome está em latim.
String textZone_2 = "Alarme! Zona2"; // Seu nome está em latim.
String textZone_3 = "Alarme! Zona3"; // Seu nome está em latim.
String textZone_4 = "Alarme! Zona4"; // Seu nome está em latim.
#include
SoftwareSerial mySerial (2, 3);
#define pinSensor_0 4
#define pinSensor_1 5
#define pinSensor_2 6
#define pinSensor_3 7
#define pinSensor_4 8
void initGSM (void) {
atraso (2000);
mySerial.begin (9600); // Defina a velocidade de comunicação com o módulo GSM 9600 Baud / s.
mySerial.println ("AT + CLIP = 1");
atraso (300);
mySerial.println ("AT + CMGF = 1");
atraso (300);
mySerial.println ("AT + CSCS = \" GSM \ "");
atraso (300);
mySerial.println ("AT + CNMI = 2,2,0,0,0");
atraso (300);
}
/ * Envio de SMS * /
void sendSMS (texto da string, telefone da string) {
mySerial.println ("AT + CMGS = \" "+ telefone +" \ "");
atraso (500);
mySerial.print (texto);
atraso (500);
mySerial.print ((char) 26);
atraso (2500);
}
timerTemp longo não assinado = 0;
uint8_t horas = 0;
uint8_t flagSensor_0 = 0;
uint8_t flagSensor_1 = 0;
uint8_t flagSensor_2 = 0;
uint8_t flagSensor_3 = 0;
uint8_t flagSensor_4 = 0;
configuração nula () {
mySerial.begin (9600);
initGSM ();
pinMode (pinSensor_0, INPUT);
pinMode (pinSensor_1, INPUT);
pinMode (pinSensor_2, INPUT);
pinMode (pinSensor_3, INPUT);
pinMode (pinSensor_4, INPUT);
timerTemp = millis ();
}
loop vazio () {
if (millis () - timerTemp> = 3600000) {timerTemp = millis (); horas ++;}
if (hours> = 144) {// Altere o tempo de controle do sistema para o nosso, 144 hours. número de horas.
sendSMS (String ("O sistema funciona normalmente.OK"), numberSMS_1);
atraso (10000);
sendSMS (String ("O sistema funciona normalmente.OK"), numberSMS_2);
atraso (10000);
horas = 0;
timerTemp = millis ();
}
if (flagSensor_0 == 0 && digitalRead (pinSensor_0) == 0) flagSensor_0 = 1;
if (flagSensor_1 == 0 && digitalRead (pinSensor_1) == 0) flagSensor_1 = 1;
if (flagSensor_2 == 0 && digitalRead (pinSensor_2) == 0) flagSensor_2 = 1;
if (flagSensor_3 == 0 && digitalRead (pinSensor_3) == 0) flagSensor_3 = 1;
if (flagSensor_4 == 0 && digitalRead (pinSensor_4) == 0) flagSensor_4 = 1;
if (flagSensor_0 == 1) {
Comando String;
command = "ATD +" + numberCall_1 + ";"
mySerial.println (comando);
atraso (20000);
mySerial.println ("ATH");
atraso (1000);
command = "ATD +" + numberCall_2 + ";";
mySerial.println (comando);
atraso (20000);
mySerial.println ("ATH");
atraso (1000);
flagSensor_0 = 2;
}
if (flagSensor_1 == 1) {
sendSMS (textZone_1, numberSMS_1);
atraso (10000);
sendSMS (textZone_1, numberSMS_2);
atraso (10000);
flagSensor_1 = 2;
}
if (flagSensor_2 == 1) {
sendSMS (textZone_2, numberSMS_1);
atraso (10000);
sendSMS (textZone_2, numberSMS_2);
atraso (10000);
flagSensor_2 = 2;
}
if (flagSensor_3 == 1) {
sendSMS (textZone_3, numberSMS_1);
atraso (10000);
sendSMS (textZone_3, numberSMS_2);
atraso (10000);
flagSensor_3 = 2;
}
if (flagSensor_4 == 1) {
sendSMS (textZone_4, numberSMS_1);
atraso (10000);
sendSMS (textZone_4, numberSMS_2);
atraso (10000);
flagSensor_4 = 2;
}
if (flagSensor_0 == 2 && digitalRead (pinSensor_0)! = 0) flagSensor_0 = 0;
if (flagSensor_1 == 2 && digitalRead (pinSensor_1)! = 0) flagSensor_1 = 0;
if (flagSensor_2 == 2 && digitalRead (pinSensor_2)! = 0) flagSensor_2 = 0;
if (flagSensor_3 == 2 && digitalRead (pinSensor_3)! = 0) flagSensor_3 = 0;
if (flagSensor_4 == 2 && digitalRead (pinSensor_4)! = 0) flagSensor_4 = 0;
}
Passo três. Verificando a integridade do dispositivo.
Quando a energia é aplicada, enquanto o módulo SIM800L e a placa Arduino estão carregando, você tem cerca de 20 segundos para sair da sala protegida. No módulo SIM800L, o LED indica atividade da rede; geralmente procura uma rede; uma vez a cada cinco segundos indica operação da rede. Quando o dispositivo encontrar uma rede, desconecte as entradas de segurança correspondentes; depois disso, haverá uma discagem ou envio de SMS. Portanto, o dispositivo está funcionando bem.
Foto SMS. Será possível incluir quaisquer detectores de segurança com saídas na forma de contatos, relés de atuadores, apenas de acordo com suas necessidades e imaginação. Em geral, fabricamos um dispositivo simples de segurança. Um vigia caseiro pode ser feito para organizar a proteção de qualquer objeto. Para ligar o dispositivo de alarme, você precisa fornecer 4,2 Volts através do comutador no SIM800 e no Arduino. Na primeira entrada, uma chamada será transferida para o assinante nº 1, após o que passará para o nº 2. O nº 2 adicional é fornecido para duplicação. O número de malha aberta 2,3,4,5 efetua a emissão de SMS com o nome específico da malha interrompida, respectivamente, nos dois telefones. Colocaremos todas as placas em qualquer uma delas. Em geral, acho que este é um bom dispositivo interessante que pode ser mais desenvolvido - adicione as funções de um soquete GSM, controle DMTF e muito mais.
Mais detalhes podem ser vistos no vídeo
Desejo-lhe toda a saúde e sucesso na vida e no trabalho!