Índice:
- Suprimentos
- Etapa 1: suprimentos
- Etapa 2: conecte o Ardunio e os módulos conforme mostrado na imagem
- Etapa 3: adicionar bibliotecas necessárias ao IDE do Arduino
- Etapa 4: em seguida, precisamos obter os códigos para seus sensores
- Etapa 5: modelo de código do Arduino
- Etapa 6: cole os códigos obtidos na etapa 5 no esboço do Arduino do modelo
- Etapa 7: Carregue o.ino Amended em seu Arduino e teste
- Etapa 8: Definir a hora no módulo RTC e alterar os tempos de arme e desarme
- Etapa 9: notas adicionais
Vídeo: Sistema de alarme sem fio Arduino usando sensores existentes: 9 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
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
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
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
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
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
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:
Robô Arduino sem fio usando módulo sem fio HC12: 7 etapas
Robô Arduino sem fio usando módulo sem fio HC12: Olá pessoal, bem-vindos de volta. Em meu post anterior, eu expliquei o que é um circuito de ponte H, L293D motor driver IC, pegando carona L293D Motor driver IC para dirigir drivers de motor de alta corrente e como você pode projetar e fazer sua própria placa de driver de motor L293D
Remoto sem fio usando módulo 2.4 Ghz NRF24L01 com Arduino - Nrf24l01 Receptor transmissor de 4 canais / 6 canais para Quadcopter - Helicóptero Rc - Avião Rc usando Arduino: 5 etapas (com imagens)
Remoto sem fio usando módulo 2.4 Ghz NRF24L01 com Arduino | Nrf24l01 Receptor transmissor de 4 canais / 6 canais para Quadcopter | Helicóptero Rc | Avião Rc Usando Arduino: Para operar um carro Rc | Quadcopter | Drone | Avião RC | Barco RC, sempre precisamos de um receptor e transmissor, suponha que para RC QUADCOPTER precisamos de um transmissor e receptor de 6 canais e esse tipo de TX e RX é muito caro, então vamos fazer um em nosso
Monitoramento de integridade estrutural de infraestruturas civis usando sensores de vibração sem fio: 8 etapas
Monitoramento da saúde estrutural de infraestruturas civis usando sensores de vibração sem fio: A deterioração do antigo edifício e da infraestrutura civil pode levar a situações fatais e perigosas. O monitoramento constante dessas estruturas é obrigatório. O monitoramento de integridade estrutural é uma metodologia extremamente importante na avaliação de
Faça você mesmo de microfone sem fio para sistema de guitarra sem fio: 4 etapas
Faça você mesmo de microfone sem fio para sistema de guitarra sem fio: Tenho assistido a alguns vídeos e bandas e quase todas usam um sistema sem fio na guitarra. Enlouquecer, mover-se, caminhar e fazer o que quiserem sem o cabo, então sonho em ter um .. Mas .. para mim agora é muito caro então eu vim para isso
Transforme uma campainha sem fio em um interruptor de alarme sem fio ou botão liga / desliga: 4 etapas
Transforme uma campainha sem fio em um interruptor de alarme sem fio ou botão liga / desliga: recentemente construí um sistema de alarme e o instalei em minha casa. Usei interruptores magnéticos nas portas e os conectei através do sótão. As janelas eram outra história e fiação direta não era uma opção. Eu precisava de uma solução sem fio e isso é