Índice:

Sistema de alarme sem fio Arduino usando sensores existentes: 9 etapas (com imagens)
Sistema de alarme sem fio Arduino usando sensores existentes: 9 etapas (com imagens)

Vídeo: Sistema de alarme sem fio Arduino usando sensores existentes: 9 etapas (com imagens)

Vídeo: Sistema de alarme sem fio Arduino usando sensores existentes: 9 etapas (com imagens)
Vídeo: Projeto Arduino com cartões NFC para controlo e interface de porta ⚡💳 construção e demonstração 2024, Julho
Anonim
Sistema de alarme sem fio Arduino usando sensores existentes
Sistema de alarme sem fio Arduino usando sensores existentes
Sistema de alarme sem fio Arduino usando sensores existentes
Sistema de alarme sem fio Arduino usando sensores existentes
Sistema de alarme sem fio Arduino usando sensores existentes
Sistema de alarme sem fio Arduino usando sensores existentes
Sistema de alarme sem fio Arduino usando sensores existentes
Sistema de alarme sem fio Arduino usando sensores existentes

Este projeto pode ser construído em cerca de meia hora a um custo de cerca de US $ 20,00 se você tiver sensores de alarme sem fio de 433 MHz ou 315 MHz.

Também pode ser um novo projeto completo com sensores de alarme sem fio, como detectores de movimento infravermelho e interruptores reed, disponíveis online de forma fácil e econômica. Basta pesquisar sensores de 433 MHz ou 315 MHz que usam a codificação PT2262 ou EV1527.

Tenho certeza de que existem muitas pessoas como eu que compraram um sistema de alarme GSM / 2G com sensores sem fio e ficaram felizes com ele, no entanto, quando a rede 2G / GSM foi desligada onde eu moro, fiquei com um sistema de alarme que poderia não programe mais ou mesmo defina a hora nele. Um dia, enquanto me perguntava o que poderia fazer para tornar meu alarme funcional novamente, me ocorreu verificar se um Arduino poderia receber sinais dos sensores. Me deparei com um instutável https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ e depois de alguns experimentos, determinei que poderia receber os sinais dos meus sensores existentes. Comecei o processo de construção de um sistema de alarme que poderia substituir meu alarme existente e também forneceria maior funcionalidade. Um dos problemas com o alarme antigo era nunca saber exatamente qual dos 25 sensores disparou. Ao adicionar uma tela LCD à minha nova construção de alarme, agora recebo um texto no LCD indicando exatamente qual sensor foi ativado. O novo alarme ainda pode ser armado manualmente por meus controles remotos sem fio existentes e tem um relógio em tempo real para permitir que seja armado e desarmado automaticamente em horários predefinidos do dia.

Suprimentos

Consulte as notas adicionais no final para garantir o uso da versão correta dessas peças.

Arduino Uno ou similar

Módulo receptor 433 ou 315 MHz para Arduino

Módulo DS3231 Real Time Clock para Arduino

Módulo I2C 16x2 LDC para Arduino

Interruptores de palheta de alarme sem fio, sensores de movimento e controles remotos conforme desejado

Campainha piezoelétrica

LED e resistor de 220 ohms

Placa de ensaio (opcional, mas recomendado)

Fonte de alimentação adequada para Arduino

Fios de ligação etc.

PC com Arduino IDE instalado

Conhecimento básico de Arduino

Etapa 1: suprimentos

Suprimentos
Suprimentos
Suprimentos
Suprimentos
Suprimentos
Suprimentos

Algumas imagens acima dos suprimentos que você vai precisar para este projeto

Etapa 2: conecte o Ardunio e os módulos conforme mostrado na imagem

Conecte o Ardunio e os módulos conforme mostrado na imagem
Conecte o Ardunio e os módulos conforme mostrado na imagem

Piezo entre o pino 5 do Arduino e a terra

LED entre o pino 8 do Arduino e um resistor de 220 ohm, em seguida, para o aterramento

Receptor de 433 ou 315 MHz, VCC para 5V, GND para aterramento e qualquer um dos 2 pinos de dados para pino 2 do Arduino

Módulo I2C 16X2 LCD VCC para 5V, GND para aterramento, pinos SCL SDA para SCL SDA do Arduino (pino A5 é SCL, pino A4 é SDA)

Módulo DS3231 RTC VCC para 5V, GND para aterramento, pinos SCL SDA para SCL SDA do Arduino (há um segundo conjunto localizado acima dos pinos GND e AREF da maioria dos Arduino)

Eu sei que alguns de vocês não precisarão de mais informações do que esta e o esboço anexado abaixo, mas vou entrar em mais alguns detalhes para quem deseja um pouco mais de assistência.

Etapa 3: adicionar bibliotecas necessárias ao IDE do Arduino

Adicionar bibliotecas necessárias ao IDE do Arduino
Adicionar bibliotecas necessárias ao IDE do Arduino
Adicionar bibliotecas necessárias ao IDE do Arduino
Adicionar bibliotecas necessárias ao IDE do Arduino
Adicionar bibliotecas necessárias ao IDE do Arduino
Adicionar bibliotecas necessárias ao IDE do Arduino

O Arduino Sketch para executar o alarme usa algumas bibliotecas que ainda não estão instaladas no Arduino IDE por padrão.

Para adicionar a biblioteca RCSwitch ao IDE do Arduino. Abra o IDE do Arduino no menu superior, selecione "Sketch" e, em seguida, selecione "Incluir biblioteca" e, no próximo menu suspenso, selecione "Gerenciar bibliotecas". Em seguida, na caixa "Filtrar sua pesquisa", digite "RCSW" e, em seguida, clique em instalar para "rc-switch by sui77"

Instruções detalhadas sobre como adicionar bibliotecas em

Enquanto estamos nisso, também precisamos adicionar as bibliotecas chamadas Time, TimeAlarms, DS1307RTC e LiquidCrystal_I2C, o mesmo procedimento acima, mas procurando pelo nome de cada nova biblioteca e instalando. Veja as capturas de tela acima se não tiver certeza de quais bibliotecas usar.

O relógio em tempo real DS3231 é compatível e usa a biblioteca DS1307RTC.

Etapa 4: em seguida, precisamos obter os códigos para seus sensores

Em seguida, precisamos obter os códigos para seus sensores
Em seguida, precisamos obter os códigos para seus sensores
Em seguida, precisamos obter os códigos para seus sensores
Em seguida, precisamos obter os códigos para seus sensores

Forneci o modelo do código do Arduino abaixo, mas você precisará encontrar os valores para cada um de seus sensores e colá-los no código.

Há muitas informações sobre como obter esses códigos em ambos os sites;

www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/

github.com/sui77/rc-switch/wiki

No entanto, aqui está minha versão abreviada;

Para obter os códigos que seus sensores e controles remotos estão enviando, conecte o Arduino montado na etapa 1 a um PC via cabo USB e abra o IDE do Arduino. Em seguida, no IDE do Arduino, vá para a lista suspensa "Arquivo" e, em seguida, vá para "Exemplos", role para baixo na lista de esboços de exemplo até encontrar "RCSWITCH" e selecione o esboço "ReceiveDemo_Advanced" e carregue-o no Arduino. Assim que o sketch for carregado com sucesso, abra o monitor serial do Arduino IDE com ele ainda conectado ao seu PC via USB. Agora acione o primeiro dos sensores para o qual deseja obter o código, a saída do RCSwitch aparecerá na janela do monitor serial. Para este projeto, estamos procurando os códigos decimais conforme destacado na captura de tela 2. Você precisará acionar o sensor várias vezes procurando o valor decimal que aparece com mais frequência, às vezes haverá valores diferentes misturados com o valor verdadeiro, isso é causado por interferência de ondas de rádio aleatórias ou outros dispositivos operando na mesma frequência.

Observe o código decimal do sensor para uso na próxima etapa. Repita para todos os sensores e controles remotos que deseja usar no projeto, mantendo o controle de qual código vai com qual sensor. Se estiver usando o controle remoto para armar e desarmar o alarme, você precisará observar os diferentes códigos para o botão de armar e o botão de desarmar de cada controle remoto.

Etapa 5: modelo de código do Arduino

Abaixo está uma cópia do meu código Arduino como um arquivo.ino chamado Wireless_Alarm. Você pode clicar nele e ele deve abrir no IDE do Arduino. Eu não sou um programador, meu código é montado em parte a partir dos exemplos encontrados no IDE do Arduino, provavelmente não é particularmente elegante, mas funciona e é confiável por um longo período de tempo.

Lembre-se de salvar novamente o esboço depois de fazer as alterações para incluir os códigos de seus próprios sensores.

Etapa 6: cole os códigos obtidos na etapa 5 no esboço do Arduino do modelo

Agora, as etapas para personalizar o código dos sensores e controles remotos que você está usando.

Se você abrir o esboço Wireless_Alarm em seu IDE, verá na linha 111.

if (mySwitch.getReceivedValue () == 115166236) // Código do botão de armar Fob

Onde no código existente se lê 115166236, você precisa substituir esse número pelo código decimal para o botão de armar de seu chaveiro remoto que você gravou na Etapa 5.

Por exemplo, se na etapa 5 você obtivesse um decimal 1154321, você modificaria a linha 111 para ler agora;

if (mySwitch.getReceivedValue () == 1154321) // Código do botão de armar Fob

Siga o mesmo procedimento para a linha 125.

if (mySwitch.getReceivedValue () == 115166234) // Código do botão de desarmar Fob

Substitua 115166234 pelo código do botão de desarmar chaveiro remoto que você gravou na Etapa 5.

Se você quiser usar vários controles remotos para armar e desarmar, copie e cole as linhas de 111 a 136 quantas vezes forem necessárias e, em seguida, altere os valores para se adequar aos outros controles remotos, mas é melhor começar com um controle remoto até ter certeza de que foi modificado o esboço está funcionando.

Agora, para codificar os sensores de alarme no esboço na linha 140

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Ação para armário de escritório do remetente de sinal

Retire 1151640 e insira o valor decimal de um de seus sensores de alarme.

Então, na linha 158.

lcd.print (F ("Armário de escritório")); // imprime mensagem para lcd para saber qual sensor foi ativado (e vá e encontre o ladrão:)

Altere o armário do escritório para o que você gostaria que fosse exibido no LCD para esse sensor. Por exemplo, se você quiser que ele leia kitchendo ou faça com que a linha fique assim;

lcd.print (F ("Kitchendoor")); // imprime mensagem para lcd para saber qual sensor foi ativado (e vá e encontre o ladrão:)

Os nomes não devem ter mais de 16 caracteres.

Entre a linha 165 e 187 está um modelo para copiar e colar quantas vezes forem necessárias nas linhas diretamente abaixo de 187. Substitua o número após mySwitch.getReceivedValue () == pelo decimal de um de seus outros sensores que você registrou na etapa 5 e alterar o nome dentro de "" em lcd.print (F ("sensornamehere")); ao nome que deseja dar ao seu sensor.

Se você não estiver usando keyfobs remotos para armar e desarmar seu alarme, você pode simplesmente ignorar as linhas 111-136 ou colocar // no início de cada uma das linhas indesejadas e o Arduino não as lerá.

Lembre-se de salvar o arquivo depois de fazer as alterações.

Etapa 7: Carregue o.ino Amended em seu Arduino e teste

Carregue o.ino Amended no seu Arduino e teste
Carregue o.ino Amended no seu Arduino e teste
Carregue o.ino Amended no seu Arduino e teste
Carregue o.ino Amended no seu Arduino e teste
Carregue o.ino Amended no seu Arduino e teste
Carregue o.ino Amended no seu Arduino e teste

Com o Arduino ainda conectado ao PC por USB, faça upload do esboço para a placa do Arduino. Assim que o upload for concluído com sucesso, o LCD deve mostrar "Alarme ao desarmado". Pressione o botão de armar em seu controle remoto e o LCD deve mostrar "Alarme ligado armado" e o LED deve estar aceso para que você saiba que está armado, agora acione um sensor enquanto estiver armado, o LCD deve mostrar Alarme seguido por um carimbo de hora e a localização do sensor, o sinal sonoro deve soar por 2 minutos, a menos que você pressione o botão de desarmar. Se você não estiver obtendo esse resultado, verifique novamente os códigos obtidos na Etapa 5 e as alterações feitas no código na etapa anterior, verifique também a fiação de todos os componentes. Se o LCD não estiver lendo nada, há um ajuste de contraste na parte traseira do módulo LCD. Depois que o contraste estiver definido corretamente, se o LCD ainda não estiver lendo, tente alterar o endereço do LCD de 0x3f para 0x27 na linha 12 no esboço. Solução de problemas de LCD aqui I2C LCD tutorial

Etapa 8: Definir a hora no módulo RTC e alterar os tempos de arme e desarme

Esperançosamente, seu RTC já foi configurado com a hora correta, mas se não abrir o IDE, selecione 'Arquivo "e no menu suspenso clique em" Exemplos ", role para baixo até" DS1307RTC "e selecione o esboço" SetTime ", baixe o esboço para o seu O Arduino irá definir o relógio de tempo real com a hora do seu PC. Você precisará recarregar o esboço do Wireless_Alarm no seu Arduino.

O Wireless_Alarm.ino que forneci irá, por padrão, definir o alarme para armar automaticamente às 22h15 todas as noites e desarmar às 6h00 todas as manhãs. Para alterar esses tempos, modifique o Sketch nas linhas 71 e 72. O tempo está entre parênteses após Alarm.alarmRepeat no formato HH, MM, SS. mude para o horário que mais lhe convier.

Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // hora de DESARMAR

Alarm.alarmRepeat (22, 15, 0, EveningAlarm); // hora ARM

Portanto, para alterar o tempo de desarme para 9,15 e o tempo de arme para 17:30, o código ficaria assim

Alarm.alarmRepeat (9, 15, 0, MorningAlarm); // hora de DESARMAR

Alarm.alarmRepeat (17, 30, 0, EveningAlarm); // hora ARM

Se você não quiser que o alarme arme e desarme automaticamente, coloque // na frente das 2 linhas e elas não serão usadas.

//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // hora de DESARMAR

//Alarm.alarmRepeat(22, 15, 0, EveningAlarm); // hora de armar

O tempo para o qual o alarme soa pode ser alterado modificando a linha 22

intervalo longo const = 120000; // para atraso de milis para a duração do alarme sonoro

O intervalo é em milissegundos, então 120000 = 120 segundos, mudar 120000 para 30000 faria o alarme soar por 30 segundos.

Um solenóide para acionar uma sirene, luz estroboscópica, sinal sonoro de alto volume, etc. também pode ser conectado ao pino 7 ou pino 9 e funcionará durante o "intervalo" definido acima. Lembre-se de que a carga máxima para um pino Arduino não deve exceder 40mA.

Etapa 9: notas adicionais

Ao selecionar um módulo receptor de 433 ou 315 MHz para o Arduino, você deve escolher a frequência para corresponder aos sensores de alarme que pretende usar. Eu sugiro comprar um módulo que vem com uma pequena antena helicoidal em espiral para melhor desempenho, como alternativa, uma antena de fio reto de 17,3 mm também aumenta o desempenho.

Com o módulo LCD 16x2, você deve usar um LCD I2C de 4 pinos para usar as instruções e o código que forneço aqui, ele poderia ser feito com um LCD padrão de 16 pinos, mas não funcionará com a fiação ou código aqui.

Interruptores de palheta de alarme sem fio, sensores de movimento e controles remotos devem ser 433Mhz ou 315Mhz para combinar com o receptor que você pretende usar e devem usar a codificação PT2262 ou EV1527.

O alarme é expansível e adaptável, já adicionei um cartão SD para registrar quando os sensores são acionados, modifiquei o LCD para acender apenas quando um botão é pressionado e adicionei uma sirene de 100dB, mas não incluí detalhes aqui para manter o artigo como curto e simples possível. Espero que compartilhar o trabalho que fiz com este alarme seja de alguma utilidade para outras pessoas.

Feliz em responder quaisquer perguntas.

Obrigado.

Recomendado: