Sensor de movimento para Arduino 12 volts. Alarme residencial ou usando sensor de movimento e monitor LCD com Arduino

A primavera, como vocês sabem, vem acompanhada de todo tipo de agravamentos, e agora a principal “exacerbação” saiu de seus buracos para a rua para se apropriar do que não lhe pertence. Isso significa que o tema proteção de sua propriedade está se tornando mais relevante do que nunca.
O site já conta com diversas resenhas de caseiros. É claro que são funcionais, mas todos têm característica geral- dependência da tomada. Se isto não é um problema numa propriedade onde já há fornecimento de electricidade, então que tal uma propriedade onde a tomada está longe ou a área envolvente está completamente sem energia? Resolvi seguir um caminho diferente - montar um aparelho de longa duração, o mais simples possível e independente da rede elétrica, que vai dormir o tempo todo, e quando os ladrões invadirem, ele vai ligar e ligar para o telefone do dono, sinalizando com uma simples chamada de alarme.

Revisar itens

Comprado:
1. Tábua de ensaio unilateral 5x7 cm: getinaks- ou fibra de vidro
* - a fibra de vidro é de qualidade muito melhor que o getinax.
2. Módulo Neoway M590 - com antena em PCB -
3. Arduino Pro Mini "RobotDyn" ATmega168PA 8MHz 3.3V -
4. Placa de controle de carga e descarga de lítio -

Extraído das ruínas da civilização:
1. Racks para placas, cortados de caixas de dispositivos - 6 unid.
2. Bateria descarregada de lítio 1300mAh
3. Grampos usados ​​para prender o cabo na parede
4. Borracha de papelaria
5. Fio de cobre 1,5 mm de espessura
6. Caixa de instrumentos do mercado de rádio local - 1.5$
7. Par de LEDs cor diferente(retirado do reprodutor VHS)
8. Antena e botão com tampa (retirados do roteador Wi-Fi)
9. Bloco terminal de 4 pinos (retirado do dimmer)
10. Conector de alimentação (retirado de um carregador antigo para 18650)
11. Conector de 6 pinos (retirado da unidade de DVD)
12. Pode(do café, por exemplo)

Arduino Pro Mini "RobotDyn" Atmega 168PA 3.3V 8MHz

Especificações:
Microcontrolador: ATmega168PA
Tensão operacional direta: 0,8 - 5,5 V
Tensão operacional através do estabilizador LE33: 3,3 V ou 5 V (dependendo do modelo)
Temperatura de trabalho:-40°C… 105°C
Tensão de entrada: 3,35-12V (modelo 3,3V) ou 5-12V (modelo 5V)
Entradas/Saídas Digitais: 14 (6 dos quais podem ser usados ​​como saídas PWM: 3, 5, 6, 9, 10 e 11)
Entradas analógicas: 6
Contadores-temporizadores: dois de 8 bits e um de 16 bits
Modos de economia de energia: 6
Corrente DC via entrada/saída: 40 mA
Memória flash: 16 KB (2 usados ​​para bootloader)
BATER: 1KB
EEPROM: 512 bytes
Recurso de gravação/apagamento de memória: 10.000 Flash/100.000 EEPROM
Frequência do relógio: 8 MHz (modelo de 3,3 V) ou 16 MHz (modelo de 5 V)
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
I2C: A4 (SDA) e A5 (SCL)
TTL UART: 0 (RX) e 1 (TX)
Ficha de dados:

A escolha recaiu sobre este atmega completamente por acaso. Em um fórum onde foram discutidos projetos de eficiência energética, nos comentários houve conselhos para usar o 168º atmega.
Porém, tive que mexer para encontrar tal placa, já que muitas vezes todos os lotes eram preenchidos com 328 atmegs na frequência de 16 MHz, operando a partir de 5V. Para o meu projeto, tais características foram redundantes e inconvenientes desde o início, e a busca ficou mais complicada.
Como resultado, encontrei uma versão de 3,3 volts do Pro Mini no Atmega 168PA no eBay, e não apenas uma simples chinesa, mas sob a marca RobotDyn de um desenvolvedor russo. Sim, no início, assim como você, também tive uma certa dúvida. Mas em vão. Quando o projeto já estava montado e o AliExpress introduziu a entrega paga obrigatória para produtos baratos (após o que os pacotes começaram a se perder com muito mais frequência), mais tarde encomendei um Pro Mini Atmega168 normal (sem PA) 3,3V 8MHz. Eu experimentei um pouco os modos de economia de energia com ambas as placas, exibindo um esboço especial em cada uma que colocava o microcontrolador no modo de economia máxima de energia e foi isso que saiu:
1) Arduino Pro Mini "RobotDyn": ~250µA
2) Arduino Pro Mini “NoName”: quando a energia é fornecida ao estabilizador de tensão (pino RAW) e o LED é soldado, o consumo de corrente é ~3,92mA




- como você entende, a diferença no consumo de energia é de quase 16 vezes, tudo porque o Pro Mini da NoName usa uma combinação Atmega168+, da qual o próprio MK come apenas 20uA atual (verifiquei isso separadamente), todo o resto da gula é contabilizado pelo conversor de tensão linear AMS1117 - a folha de dados apenas confirma isso:


No caso da placa da RobotDyn a combinação é um pouco diferente - trata-se da Atmega168PA+ - aqui é utilizado um estabilizador LDO diferente, cujas características em termos de poupança de energia acabaram por ser mais agradáveis:


Não o dessoldei, então não posso dizer quanta corrente o Atmega168PA consome em sua forma pura. Neste caso eu tive o suficiente ~250µA quando alimentado pela Nokia bateria de lítio. Porém, se você dessoldar o AMS1117 da placa-mãe NoName", então o ATmega168 normal, em sua forma pura, como eu disse acima, consome 20uA.
Os LEDs com fonte de alimentação podem ser eliminados com algo pontiagudo. Isso não é um problema. O estabilizador foi dessoldado com secador de cabelo. No entanto, nem todo mundo tem um secador de cabelo e as habilidades para trabalhar com ele, então ambas as opções acima têm o direito de existir.

Módulo Neoway M590E

Especificações:
Frequências: EGSM900/DCS1800 banda dupla ou GSM850/1900 ou banda quádrupla
Sensibilidade:-107dBm
Potência máxima de transmissão: EGSM900 Classe4(2W), DCS1800 Classe1(1W)
Corrente de pico: 2A
Corrente de trabalho: 210mA
Corrente do sono: 2,5mA
Temperatura de trabalho:-40°C… +85°C
Tensão operacional: 3,3 V…4,5 V (recomendado 3,9 V)
Protocolos: GSM/GPRS Fase2/2+, TCP/IP, FTP, UDP etc.
Internet: GPRS CLASSE 10
Ficha de dados:

O módulo GSM mais barato que pode ser encontrado no mercado, normalmente usado, nem sempre soldado por especialistas com mãos chinesas do equipamento. Por que nem sempre hábil? Sim, tudo por causa da dessoldagem com secador de cabelo - muitas vezes as pessoas recebem esses módulos com mais e menos em curto, o que é um dos motivos de sua inoperabilidade. Portanto, o primeiro passo é verificar se há curto-circuito nos contatos de potência.

Observação. Gostaria de destacar um ponto importante, na minha opinião, que esses módulos podem vir com um conector coaxial redondo para a antena, o que permite encomendar separadamente uma antena mais séria e conectá-la ao módulo sem dançar com um pandeiro. Ou eles podem vir sem este conector. Isto se falarmos dos conjuntos mais baratos. Se você não quer contar com um acidente feliz, existem conjuntos um pouco mais caros onde este conector está presente + o kit inclui uma antena externa em uma placa textolite.

Este módulo também é caprichoso no que diz respeito à alimentação, pois no pico consome até 2A de corrente, e o diodo incluído no kit parece ter sido projetado para diminuir a tensão de 5V (por isso diz 5V na própria placa ) para 4,2 V, mas a julgar pelas reclamações das pessoas, isso cria mais problemas do que vale a pena.
Digamos que você já tenha montado este módulo e, em vez de um diodo, seja soldado um jumper, pois não vamos alimentá-lo com tensão de 5V, mas sim alimentá-lo diretamente com uma bateria de lítio, que está dentro do permitido limites de tensão de 3,3-4,2V.
Será necessário conectá-lo de alguma forma ao computador e verificar a funcionalidade. Para este caso, é melhor comprar um com antecedência - através dele nos comunicaremos com o módulo e as placas Arduino através da interface serial UART (USART).
A conexão é mostrada abaixo na imagem (desenhei da melhor maneira que pude):
Modem TX >>> Conversor RX
Modem RX<<< TX конвертера
Bateria plus - Modem plus
O negativo da bateria de lítio é combinado com o GND do modem e o GND do conversor
Para iniciar o modem, aplique o pino BOOT através de um resistor de 4,7 kOhm ao GND


Enquanto isso, execute o programa no seu computador. Preste atenção nas configurações:
1) Selecione a porta COM à qual o conversor TTL está conectado, no meu caso é COM4, ​​​​a sua pode ser diferente.
2) Selecione a velocidade de transferência de dados. (Há uma nuance aqui, porque os próprios módulos podem ser configurados para diferentes velocidades, na maioria das vezes 9600 baud ou 115200 baud. Aqui você precisa selecioná-lo empiricamente, escolhendo alguma velocidade, conectando e enviando um comando AT, se surgirem rachaduras em resposta, ele irá desconectar, selecione uma velocidade diferente e repita o comando e assim por diante até que a resposta seja OK).
3) Selecione o comprimento do pacote (neste caso 8 bits), bit de paridade desabilitado (nenhum), bit de parada (1).
4) Certifique-se de marcar a caixa +CR, e então um caractere de retorno de carro será adicionado automaticamente a cada comando que enviarmos ao módulo no final - o módulo entende comandos apenas com esse caractere no final.
5) Conexão, está tudo claro aqui, clique e podemos trabalhar com o módulo.

Se você clicar em “Conexão” e depois iniciar o módulo aplicando BOOT através de um resistor de 4,7K ao terra, então primeiro o terminal exibirá a inscrição “MODEM:STARTUP”, depois, depois de um tempo, a inscrição “+PBREADY”, significando que o número de telefone foi lido no livro, mesmo que esteja vazio:

Sob este spoiler estão comandos AT com exemplos

Imprimimos o comando AT - em resposta, o módulo nos envia nosso comando, já que o modo echo está habilitado, e OK:

Vamos verificar o status do modem com o comando AT+CPAS - a resposta é novamente nosso comando, +CPAS: 0 e OK.
0 significa que o módulo está pronto para operação, mas dependendo da situação podem existir outros números, por exemplo 3 – chamada recebida, 4 – em modo de conexão, 5 – modo de suspensão. Não consegui encontrar nenhuma informação sobre 1 e 2.

A alteração da taxa de transferência de dados via UART é feita com o comando AT+IPR=9600 - isto se você precisar de uma velocidade de 9600. Se for algo mais, semelhante a AT+IPR=19200, por exemplo, ou AT+IPR=115200.

Vamos verificar o sinal da rede. AT+CSQ, a resposta vem +CSQ: 22,1 - o valor antes da vírgula decimal tem faixa de 0... 31 (115... 52 dBl) - esse é o nível do sinal, quanto maior melhor. Mas 99 significa sua ausência. O valor após a vírgula é a qualidade do sinal 0... 7 - aqui é o contrário, quanto menor o número, melhor.

Vamos desabilitar o modo echo enviando o comando ATE0 para que comandos duplicados não interfiram. Este modo é reativado usando o comando ATE1.

Ver versão do firmware AT+GETVERS



Esses e muitos outros comandos podem ser visualizados

Alinhando placas

Se soldar o Pro Mini a uma placa de ensaio não é difícil, então com o módulo GSM a situação é um pouco mais complicada, porque seu pente de contato está localizado apenas em um lado e, se você soldar apenas ele, o outro lado da placa simplesmente ficará suspenso no ar. Então, novamente, tive que fazer três furos adicionais a olho nu, perto dos três cantos da placa. As áreas ao redor de cada um dos buracos foram então mascaradas. Por conveniência, coloquei os cabos desconectados do pente em uma placa de ensaio sem solda (branca) e, instalando neles a placa do módulo GSM, soldei-os normalmente:

Mais tarde tive que fazer outro furo, no meu caso na letra “I”, onde está escrito “Made In China”, na borda do tabuleiro.


Descobriu-se que o contato adicionado, que é essencialmente GND, passou a ser localizado próximo ao GND da placa Pro Mini, e assim foi possível conectar o terra do módulo GSM e do Pro Mini com uma gota de solda (o longo pino no meio e o pino Pro Mini à direita) - marquei-os com setas. Claro que ficou um pouco torto, mas agora segura com segurança:



Ainda sobrou algum espaço entre as placas - nela coloquei uma placa de controle de carga de descarga de lítio com um conector microUSB pré-soldado e fios soldados.

O lenço cabe bem ali, e o brilho dos LEDs laterais ficará bem visível através de um pequeno orifício na caixa.



Porta-cartões

Para montar a placa com segurança dentro do gabinete, tive que passar alguns dias pensando em como isso poderia ser implementado. A opção com adesivo hot-melt não foi considerada por vários motivos - ele poderia cair, ficar deformado e, o mais importante, a estrutura seria difícil de desmontar.
Cheguei à conclusão de que a opção mais simples e correta aqui seria usar suportes, que naturalmente eu não tinha. No entanto, havia alguns carregadores que não funcionavam, dos quais foi cortado um suporte longo com rosca para parafusos auto-roscantes. Cada suporte foi serrado ao meio e lixado até cerca de 9,5 mm - é nesta altura que a bateria localizada sob a placa tem uma margem suficiente de cerca de 2 mm - isso é feito para que os contatos soldados da placa com suas pontas não não toque nele e para que seja possível colocar um pedaço de espuma entre eles para fixação.
Quanto a fixar a placa diretamente no gabinete, aqui cortei quatro tiras de uma lata de café, fiz um furo nas extremidades e fixei-as nos mesmos parafusos que são aparafusados ​​​​nas prateleiras. Veja na foto abaixo como é.
O próximo passo é aparafusar alguns suportes do outro lado da placa, ou seja, em cima, para que ao fechar a caixa a tampa fique levemente apoiada nesses suportes, criando uma fixação adicional. Um pouco mais tarde, para esse efeito, deparei-me com uma caixa de uma rádio de propaganda soviética (se tivesse sido encontrada antes, teria tomado todas as arquibancadas daqui), onde encontrei algumas alturas mais ou menos adequadas, mas primeiro eu os perfurei no centro com uma broca para parafusos auto-roscantes Depois serrei e também finalizei com lima, retirando o excesso. Aqui eu descobri uma sutileza - na foto você pode ver que um suporte branco está parafusado na placa getinaks pela borda, e o outro branco está parafusado diretamente na placa do módulo, porque de uma borda a placa do modem cobre completamente a placa inferior, e da borda oposta - ao contrário - a placa inferior já está aparecendo. Ao mesmo tempo, foi necessário fazer furos adicionais em ambas as placas para que as cabeças dos parafusos pudessem passar livremente.
E por último, resta garantir que a placa fique sempre paralela ao corpo - os grampos que servem para fixar fios e cabos na parede são perfeitos para esta tarefa; Os suportes aderem bem à placa com o lado côncavo sem nenhum dispositivo adicional, a única coisa fica à direita do cartão SIM, a largura do suporte acabou sendo excessiva e também tive que lixar.
Todos os detalhes foram ajustados a olho nu e experimentalmente, abaixo está uma foto de todos os itens acima:



Conectores. LEDs. Botão.

Como fiquei sem pente, tive que retirar o conector de 6 pinos da placa do drive de DVD, que soldei no Pro Mini, isso é para facilitar o flash da placa. Perto, soldei um conector redondo (Nokiev 3,5 mm) para carregar lítio.

O corpo do conector de 6 pinos foi ligeiramente finalizado com uma lima, pois suas bordas se projetavam ligeiramente acima do corpo. A tomada de carregamento se encaixa perfeitamente na parede do case.

Do outro lado da placa soldei um botão para reiniciar o aparelho e dois LEDs para depurar o firmware - o LED vermelho está conectado ao módulo GSM, o segundo LED verde está conectado ao 10º pino do Pro Mini - é mais fácil para mim depurar o programa.

Modificação da bateria

A bateria descarregada dos telefones Nokia não é menos comum que a 18650, mas muitos simplesmente se recusam a usá-la devido à inconveniência de conectar os contatos, que estão embutidos profundamente na própria bateria. Não é desejável soldá-los, por isso optou-se por utilizar o método por eles proposto, ou seja, fazer você mesmo um bloco de contato com borracha de escritório e fio de cobre (1,5 mm de espessura).
Primeiro perfurei um pedaço de borracha com dois fios com pontas pré-descascadas e ajustei-os aos contatos da bateria para que a distância entre eles coincidisse,
Dobrei as pontas, estanho-as com um ferro de soldar e puxei-as ligeiramente para trás pelas pontas compridas para que os contatos resultantes ficassem embutidos na borracha.



Experimentando uma bateria:

Você pode prender o bloco de contato com um elástico ou envolvê-lo com fita isolante azul, que foi o que fiz no final.

Conjunto.

A parte principal do trabalho está feita, falta apenas montá-lo e registrá-lo.
Coloquei um pedaço de espuma de borracha entre a bateria e a placa para que depois ela não se movesse dentro do gabinete. Além disso, soldei um capacitor de 2.200 uF para alimentar o módulo.

Quando o carregamento está conectado:

Quadro. Bloco terminal externo.

A caixa estava disponível no mercado de rádios local por cerca de US$ 1,5, se convertida em dólares, medindo 95x60x25mm, quase o tamanho de um maço de cigarros. Fiz vários furos nele. Primeiro, para o bloco de terminais de 4 pinos, retirado de um dimmer que não funciona.
Soltei completamente os dois contatos externos dos parafusos com espaçadores, fiz furos para parafusos mais longos, que segurarão todo o bloco de terminais no corpo. No próprio gabinete, é claro, os dois orifícios externos serão grandes e os dois do meio serão menores - eles terão contatos enfiados neles, um dos quais está conectado ao VCC Pro Mini e o segundo contato ao pino 2.

Fazer furos, embora seja uma tarefa simples à primeira vista, ainda não é menos trabalhoso, é muito fácil passar despercebido, então fiz primeiro com uma broca de diâmetro menor, depois com uma maior.

Para o botão tátil, escolhi uma tampa com a parte superior levemente côncava, para que fosse fácil alcançá-la com um fósforo ou clipe de papel pelo orifício estreito da caixa.

Placa em um case com um cabo conversor USB-TTL conectado:

Sobre a antena.
A antena, como você deve ter notado ao longo do review, mudava constantemente conforme eu experimentava diferentes antenas caseiras. Inicialmente, havia um conector coaxial redondo na placa do módulo, mas na quinta vez que foi usado como antena externa, ele simplesmente se desfez, portanto, lembre-se de que é frágil. Como resultado, arranquei a antena da PCB do roteador antigo e a soldei na placa do módulo, porque... pega a rede um pouco melhor do que a mola e o arame.

Bem, completamente montado com o carregamento conectado fica assim:

Teste. Como funciona:

Além dos testes com antenas, verifiquei como o alarme se comportaria lá fora, com geada de -15. Para isso, simplesmente coloquei todo o interior em um recipiente e deixei na varanda durante a noite, o alarme não disparou, o motivo acabou sendo geralmente óbvio - o lítio não gosta de geada. Isso foi confirmado por outro teste, onde deixei a bateria em casa, levei a placa para fora por fios compridos e deixei assim por um dia na mesma geada - funcionou como se nada tivesse acontecido. Por outro lado, seria estranho se o alarme não funcionasse porque... Nas fichas técnicas do Atmega, dos módulos e do quartzo, as temperaturas operacionais permitidas são de até -40 graus.

O princípio de funcionamento é organizado por meio de uma interrupção externa, inicialmente o pino 2 é fechado para VCC e assim o 1 lógico é mantido no pino, e o controlador fica adormecido. Assim que o contato é rompido e aparece 0 no pino 2, o microcontrolador acorda, abaixa o 3º pino (ao qual o BOOT do modem está conectado através de um resistor) para o terra - o módulo inicia, o MK sonda periodicamente o módulo para prontidão, e assim que alcança a rede, envia imediatamente a chamada para o número de telefone do proprietário especificado no código. Após rejeitar a chamada, o aparelho desliga sem enviar mais chamadas intermináveis, o que é o problema de muitos sistemas de alarme chineses.

Informações adicionais

#incluir #incluir // biblioteca de software UART SoftwareSerial gsm(7, 6); // RX(7), TX(6) void wakeUp()() // manipulador de interrupção vazio /////////////////////////// /////////////// void gsmOFF())( // PORTD|=(1<<3); // ВЫКЛЮЧЕНИЕ МОДУЛЯ _delay_ms(10); // gsm.println("AT+CPWROFF"); // ПЕЧАТАЕМ КОМАНДУ OFF PORTB &=~ (1<<2); // выключить LED 10 } // //========================================= void gsmON(){ // PORTD|=(1<<6); // 6-му порту (TX) назначить 1 PORTD &= ~(1<<3); // ЗАПУСК МОДУЛЯ _delay_ms(10); // while(!gsm.find("+PBREADY")); // ждём прочтения тел. книги PORTB |= (1<<2); // включить LED 10 _delay_ms(100); // while(1){ // gsm.println("AT+CREG?"); // проверяем в сети ли модуль if (gsm.find("0,1")) break; // если сеть есть, выходим из цикла _delay_ms(400); // проверка раз в 0,4 сек } // } // /////////////////////////////////////////// // void sleepNow(){ // функция засыпания ADCSRA = 0x00; // отключить подсистему АЦП (экономия 140 мкА) PORTD&=~(1<<6); // в вывод TX поставить 0 _delay_ms(100); // set_sleep_mode(SLEEP_MODE_PWR_DOWN); // режим сна PWR_DOWN sleep_enable(); // включение сна attachInterrupt(0, wakeUp, LOW); // включить прерывания sleep_mode(); // sleep_disable(); // detachInterrupt(0); // отключить прерывания } void setup(){ gsm.begin(9600); // скорость работы UART DDRD = B01001000; // 3-й и 6-й выводы на выход DDRB |= (1<<2); // вывод 10 на выход gsmON(); // запуск модуля для теста gsmOFF(); // выключаем модуль } void loop(){ if (!(PIND&(1<<2))){ // если на 0-ом прерывании появился 0 gsmON(); gsm.println("ATD+79xxxxxxxxx;"); // отзваниваемся, в ответ приходит OK и CONNECT _delay_ms(100); if (gsm.find("OK")) while(1){ // ожидание сброса вызова gsm.println("AT+CPAS"); // при каждой итерации опрашиваем модуль if (gsm.find("0")) break; // если 0, то выходим из цикла while _delay_ms(100); // проверка раз в 0,1 сек } for (char i=0; i<14; i++){ PORTB|=(1<<2); // LED 10 ON _delay_ms(200); PORTB&=~(1<<2); // LED 10 OFF _delay_ms(200); } gsmOFF(); // выключить модуль _delay_ms(10); while(1); // блокируем программу } else { sleepNow(); // укладываем контроллер спать } }

Diagrama de circuito (sem placa de controle de carga e descarga)



Conclusões e pensamentos. Planos.

O alarme é usado na dacha, estou satisfeito com o trabalho, porém, com um estudo mais aprofundado do AVR, surgem cada vez mais ideias para novas modificações. Arduino com sua pseudo-linguagem Wiring realmente me chateou, porque... Um momento desagradável foi descoberto na obra. Quando usei as funções de porta digitalWrite(); ou pinMode(); - por algum motivo, o módulo GSM travava com muita frequência. Mas valeu a pena substituí-los por truques como DDRB|=(1<Somente a operação de acesso direto às portas fez com que o dispositivo funcionasse conforme planejado.

Sobre economia de energia...
O aparelho montado funcionou durante quatro meses inteiros sem recarregar e continua funcionando, embora fosse mais correto dizer “dormir”. Isso pode ser verificado simplesmente reiniciando através do botão branco. Com um consumo de energia de 250 μA (através do estabilizador LE33) e uma bateria de ~1430 mAh, embora tudo bem, devido à novidade da bateria, vamos arredondar para 1000 mAh, verifica-se que o dispositivo pode dormir por cerca de 5,5 meses sem recarga. Se você ainda remover o estabilizador, o tempo de operação poderá ser multiplicado com segurança por 10 vezes. Mas no meu caso não há necessidade disso, pois ainda é preciso gastar o saldo do cartão SIM uma vez a cada três meses, ao mesmo tempo que o aparelho pode ser verificado e recarregado.
O exemplo de poupança de energia dado na revisão está longe do limite, porque a julgar pelas informações da ficha técnica, você pode diminuir a frequência do clock do microcontrolador (e isso é feito instalando fusíveis) para 1 MHz e, se aplicar tensão de 1,8 V, o consumo cairá abaixo da barra de 1 μA no modo ativo . Muito legal! Mas se o MK for sincronizado a partir do oscilador RC interno, outro problema aparecerá - o ar UART ficará entupido com detritos e erros, especialmente se o controlador estiver aquecido ou resfriado.

Após a conclusão...
1) Um fio comum instalado para quebrar não é muito conveniente, pretendo experimentar um sensor Hall e um reed switch, embora digam sobre este último que não é muito confiável, pois os contatos dentro dele podem emperrar.
2) Seria bom adicionar a capacidade de alterar o “número do proprietário” sem a participação de um computador e atualizá-lo. Você terá que trabalhar com a EEPROM.
3) Experimente interrupções do temporizador watchdog, mas não apenas por curiosidade, mas para que o microcontrolador acorde periodicamente por conta própria, meça a tensão da bateria e envie o valor resultante via SMS para saber o quão fraca está a bateria.
4) Um painel solar pode eliminar completamente a necessidade de recarregar o dispositivo; isto será especialmente verdadeiro para baterias de baixa capacidade.
5) Há muito tempo eu queria comprar baterias LiFePo4, que, segundo as avaliações, resistem bem ao gelo, mas enquanto procurava um lote adequado, a primavera já havia chegado silenciosamente.
6) Trabalhar na componente estética

Qual Pro Mini você deve comprar?
Se você não tem um secador de cabelo, então Pro Mini “RobotDyn” Atmega168PA 3.3V, retire o LED com algo afiado e você terá ~250 µA.
Se você tiver um secador de cabelo, então qualquer placa, solde o estabilizador e o LED para fonte de alimentação - você obtém ~20 µA de consumo de corrente.

Por enquanto é tudo, espero que a revisão tenha sido interessante e útil.

Planejando comprar +174 Adicionar aos favoritos gostei da resenha +143 +278 Na última década, os roubos de automóveis ocuparam um dos lugares mais significativos na estrutura dos crimes cometidos no mundo. Isso se deve não tanto à gravidade específica dessa categoria de furto em relação ao número total de crimes, mas à importância dos danos causados ​​​​pelo alto custo dos automóveis. A fraca eficácia das medidas tomadas no domínio do combate ao roubo de veículos no final da década de 90 levou à criação de grupos estáveis ​​especializados na prática destes crimes e com características distintivas do crime organizado; Você provavelmente já ouviu o termo “negócio automotivo negro”. A frota automóvel dos países europeus carece anualmente de ≈ 2% dos automóveis que são alvo de ataques criminosos. Por isso, tive a ideia de fazer um alarme GSM para meu carro baseado no Arduino Uno.

Vamos começar!

Do que iremos coletar?

Precisamos escolher o coração do nosso sistema. Na minha opinião, para tal sinalização nada melhor que o Arduino Uno. O principal critério é um número suficiente de “pins” e preço.


Principais recursos do Arduino Uno

Microcontrolador - ATmega328
Tensão operacional - 5 V
Tensão de entrada (recomendada) - 7-12 V
Tensão de entrada (limite) - 6-20 V
Entradas/Saídas Digitais - 14 (6 das quais podem ser usadas como saídas PWM)
Entradas analógicas - 6
Corrente constante através de entrada/saída - 40 mA
Corrente constante para saída 3,3V - 50mA
Memória Flash - 32 KB (ATmega328) dos quais 0,5 KB são usados ​​para o bootloader
RAM - 2KB (ATmega328)
EEPROM - 1KB (ATmega328)
Frequência do relógio - 16 MHz


Encaixa!

Agora você precisa selecionar um módulo GSM, pois nosso sistema de alarme deve ser capaz de avisar o proprietário do carro. Então, você precisa pesquisar no Google... Aqui, um excelente sensor - SIM800L, o tamanho é simplesmente maravilhoso.


Pensei e encomendei da China. No entanto, tudo acabou não sendo tão otimista. O sensor simplesmente se recusou a registrar o cartão SIM na rede. Tudo foi tentado - o resultado foi zero.
Houve pessoas gentis que me forneceram uma coisa mais legal - Sim900 Shield. Agora isso é uma coisa séria. O Shield possui um microfone e um fone de ouvido, o que o torna um telefone completo.


Principais recursos do Sim900 Shield

4 padrões de frequência operacional 850/900/1800/1900 MHz
GPRS classe multi-slot 10/8
Estação móvel GPRS classe B
Compatível com GSM fase 2/2+
Classe 4 (2 W @850/900 MHz)
Classe 1 (1 W a 1800/1900 MHz)
Controle usando comandos AT (comandos AT estendidos GSM 07.07, 07.05 e SIMCOM)
Baixo consumo de energia: 1,5mA (modo de suspensão)
Faixa de temperatura operacional: -40°C a +85°C


Encaixa!

Ok, mas você precisa fazer leituras de alguns sensores para avisar o proprietário. Se o carro for rebocado, a posição do carro obviamente mudará no espaço. Vamos pegar um acelerômetro e um giroscópio. Ótimo. Ok, agora estamos procurando um sensor.

Acho que o GY-521 MPU6050 definitivamente servirá. Acontece que ele também possui um sensor de temperatura. Deveríamos usá-lo também, haverá um “recurso matador”. Suponhamos que o dono do carro o estacionou embaixo de sua casa e saiu. A temperatura dentro do carro mudará “suavemente”. O que acontece se um intruso tentar arrombar o carro? Por exemplo, ele poderá abrir a porta. A temperatura no carro começará a mudar rapidamente à medida que o ar na cabine começar a se misturar com o ar ambiente. Eu acho que vai funcionar.


Principais características do GY-521 MPU6050

Giroscópio de 3 eixos + módulo acelerômetro de 3 eixos GY-521 no chip MPU-6050. Permite determinar a posição e movimento de um objeto no espaço, velocidade angular durante a rotação. Ele também possui um sensor de temperatura integrado. É utilizado em diversos helicópteros e modelos de aeronaves; um sistema de captura de movimento também pode ser montado com base nesses sensores.

Chip-MPU-6050
Tensão de alimentação - de 3,5V a 6V (DC);
Faixa do giroscópio - ±250 500 1000 2000°/s
Faixa do acelerômetro - ±2±4±8±16g
Interface de comunicação - I2C
Tamanho - 15x20 mm.
Peso - 5g


Encaixa!

Um sensor de vibração também será útil. De repente tentam abrir o carro com “força bruta”, ou no estacionamento outro carro bate no seu carro. Tomemos como exemplo o sensor de vibração SW-420 (ajustável).


Principais características do SW-420

Tensão de alimentação - 3,3 - 5V
Sinal de saída - alto/baixo digital (normalmente fechado)
Sensor usado - SW-420
O comparador usado é o LM393
Dimensões - 32x14mm
Além disso - Existe um resistor de ajuste.


Encaixa!

Aparafuse o módulo do cartão de memória SD. Também escreveremos um arquivo de log.


Principais características do módulo de cartão de memória SD

O módulo permite armazenar, ler e gravar em um cartão SD os dados necessários ao funcionamento de um dispositivo baseado em um microcontrolador. O uso do dispositivo é relevante ao armazenar arquivos de dezenas de megabytes a dois gigabytes. A placa contém um contêiner de cartão SD, um estabilizador de energia do cartão e um plugue conector para interface e linhas de alimentação. Se você precisar trabalhar com áudio, vídeo ou outros dados em grande escala, por exemplo, manter um registro de eventos, dados de sensores ou armazenar informações de um servidor web, o módulo de cartão de memória SD para Arduino possibilitará o uso de um cartão SD para esses fins. Usando o módulo, você pode estudar os recursos do cartão SD.
Tensão de alimentação - 5 ou 3,3 V
Capacidade de memória do cartão SD – até 2 GB
Dimensões - 46 x 30 mm


Encaixa!

E vamos adicionar um servo drive; quando os sensores forem acionados, o servo drive com o gravador de vídeo irá girar e gravar um vídeo do incidente. Vamos pegar o servo drive MG996R.


Principais características do servodrive MG996R

Proteção estável e confiável contra danos
- Acionamento metálico
- Rolamento de esferas de duas carreiras
- Comprimento do fio 300 mm
- Dimensões 40x19x43mm
- Peso 55g
- Ângulo de rotação: 120 graus.
Velocidade operacional: 0,17seg / 60 graus (4,8V sem carga)
Velocidade operacional: 0,13seg / 60 graus (6V sem carga)
Torque inicial: 9,4 kg / cm com fonte de alimentação de 4,8 V
Torque inicial: 11kg/cm com fonte de alimentação de 6V
Tensão operacional: 4,8 7,2 V
- Todas as peças de acionamento são feitas de metal


Encaixa!

Nós coletamos

Há um grande número de artigos no Google sobre como conectar cada sensor. E não tenho vontade de inventar novas bicicletas, por isso deixarei links para opções simples e funcionais.

Hoje vamos falar sobre como usar Arduíno coletar sistema de segurança. Nossa “segurança” protegerá um circuito e controlará uma sirene.

Para o Arduino isso não é um problema e, como você verá no código do programa e no diagrama do dispositivo, você pode facilmente aumentar o número de pontos de acesso protegidos e o número de dispositivos de notificação ou indicação.
Sistema de segurança pode ser usado para proteger objetos grandes (edifícios e estruturas) e itens pequenos (caixas, cofres) e até malas e malas portáteis. Embora seja necessário ter cuidado com este último, se você instalar um sistema de segurança, por exemplo, em uma mala com a qual decide viajar, e o sistema de alerta disparar em algum aeroporto, então acho que você terá uma conversa séria com o serviço de segurança local :-)

Um princípio de funcionamento simplificado do dispositivo é o seguinte (Fig. 1). Após ligar a energia, o dispositivo entra no modo de operação e aguarda o armamento. Armar e desarmar são realizados com um botão. Para aumentar a segurança, é preferível colocar este botão dentro de uma área protegida (cofre ou caixa). Antes de ativar o modo de segurança, a porta deve ser ligeiramente aberta. Ao ligar o modo de segurança (pressionar o botão), o circuito eletrônico aguarda até que você feche a porta do quarto (porta do cofre, tampa da caixa, etc.).

Uma chave fim de curso de qualquer tipo deve ser instalada na porta (ou porta), falaremos mais sobre isso posteriormente. Ao fechar (ou abrir), a chave fim de curso informará ao dispositivo que o circuito protegido está fechado, e o dispositivo entrará em modo de segurança. O sistema irá notificá-lo sobre a entrada no modo de segurança com dois sinais curtos (como em alarmes de carro). Neste modo, o dispositivo “captura” a abertura da porta. Após a abertura da porta, o sistema aguarda alguns segundos (este valor é ajustável, cerca de dez segundos para quartos, um ou dois para uma caixa) para que o modo de segurança seja desligado, caso isso não aconteça a sirene é ligada; O algoritmo e o circuito são projetados de forma que você só possa desligar a sirene desmontando completamente a caixa e desligando a energia.

Dispositivo sistema de segurança muito simples (Fig. 2). Com base no tabuleiro Arduíno. As chaves fim de curso são conectadas como um botão normal, por meio de resistores pull-up. Vou me debruçar separadamente sobre os interruptores finais. Eles são normalmente fechados ou normalmente abertos. Você pode ligar um botão normal como uma chave fim de curso, apenas o curso de um botão normal é muito grande, a folga da porta geralmente é maior. Portanto, é necessário inventar algum tipo de empurrador de botão e acioná-lo para não quebrar o botão com a porta. Bom, se você não tiver preguiça, pode ir até a loja e comprar uma chave magnética (reed switch) (Fig. 3), ela não tem medo de poeira e sujeira.

Um interruptor de limite para alarmes de automóveis também é adequado (Fig. 4). Deve-se notar que o programa foi escrito para um interruptor reed. Quando a porta está fechada, o seu contato é fechado. Se você usar um interruptor de alarme de carro, quando a porta for fechada ela provavelmente estará aberta e, nos locais apropriados do código, você precisará alterar 0 para 1 e vice-versa.

Como sirene, proponho utilizar a sirene sonora PKI-1 IVOLGA, produzida na Bielo-Rússia (Fig. 5). Tensão de alimentação 9 - 15 V, corrente operacional 20 - 30 mA. Isso permite que ele seja usado com energia da bateria. Ao mesmo tempo, “produz” 95 - 105 dB.

Com tais características, soará por várias dezenas de minutos com uma bateria Krona. Encontrei na Internet por 110 rublos. Lá, um interruptor reed com ímã custa cerca de 30 rublos. O interruptor do alarme do carro foi adquirido em autopeças por 28 rublos. O transistor KT315 pode ser usado com qualquer letra ou substituído por qualquer transistor de silício moderno de baixa potência e condutividade apropriada. Se o volume de uma sirene não for suficiente (quem sabe você quer que seja ouvido a muitos quilômetros de distância), você pode conectar várias sirenes em paralelo ou pegar uma mais potente, só que neste caso o transistor deve ser substituído por um mais poderoso (por exemplo, o conhecido conjunto de transistores ULN2003). Como conectores para conectar o reed switch e a sirene, usei os conectores mais simples para dispositivos de áudio/vídeo - o preço no mercado de rádios é de 5 rublos. para um casal.

O corpo do dispositivo pode ser colado em plástico ou madeira compensada; se um objeto sério estiver sendo protegido, é melhor torná-lo de metal. Para aumentar a confiabilidade e segurança, é aconselhável colocar baterias ou acumuladores dentro da caixa.

Para simplificar o código do programa, não foram utilizados elementos de economia de energia e as baterias não duram muito. Você pode otimizar o código ou, melhor ainda, refazê-lo radicalmente usando o processamento de eventos de interrupção e o modo de suspensão MK. Neste caso, a energia de duas baterias quadradas conectadas em série (9 V) deve ser suficiente para vários meses.

Agora o código

//constantes
botão const int = 12; //fixa o botão
const int gerkon = 3; //pino para interruptor reed
const int sirene = 2; //pino de controle da sirene
const int levou = 13; //pino indicador
//variáveis
int estadodebotão = 0; // estado do botão
int gerkonState = 0; // estado do interruptor reed
interno N = 0; //desarma o contador do botão
configuração vazia() (
//controla sirene e indicador - saída
pinMode(sirena, SAÍDA);
pinMode(led, SAÍDA); // botão e reed switch - entradas
pinMode(gerkon, INPUT);
pinMode(botão, ENTRADA);
}
loop vazio()
digitalWrite(led, ALTO);
while(buttonState= =0)( // espera o loop até pressionarmos o botão
buttonState = digitalRead(botão); // para mudar para o modo de segurança
}
digitalWrite(led, BAIXO);
estadobotão = 0; // redefine o valor do botão
while(gerkonState= =0)( // faz um loop até fecharmos a porta

}
atraso(500); // :-)
digitalWrite(sirena, ALTO); // Código
atraso(100); // indicações
digitalWrite(sirena,BAIXO); // habilitar
atraso(70); // modo
digitalWrite(sirena, ALTO); // segurança
atraso(100); //notificação
digitalWrite(sirena,BAIXO); // som
while(gerkonState= =1)( // espera a porta abrir
gerkonState = digitalRead(gerkon);
}
para (int eu = 0; eu<= 5; i++){ // 7,5 секунды на нажатие
buttonState = digitalRead(botão); // botão secreto
if (buttonState = = HIGH) ( // rastreie o nosso - o de outra pessoa
N=N+1;
}
atraso(1500); // recurso secreto :-)))
}
if (N > 0) ( // o mais importante
digitalWrite(sirena,BAIXO); //não liga a sirene
}
outro(
digitalWrite(sirena, ALTO); //ou liga a sirene
}
digitalWrite(led, ALTO); // ativa o indicador N = 0;
estadobotão = 0;
atraso(15000); // lembrete para manequins que gostam
digitalWrite(led, BAIXO); // pressiona os botões sem atraso de interrupção (1000);

Bom dia :) Hoje falaremos sobre alarmes. O mercado de serviços está repleto de empresas e organizações que instalam e mantêm sistemas de segurança. Essas empresas oferecem ao comprador uma ampla seleção de sistemas de alarme. No entanto, seu custo está longe de ser barato. Mas o que deve fazer uma pessoa que não tem muitos fundos pessoais para gastar num alarme de segurança? Acho que a conclusão se auto-sugere - fazer alarme deles mãos. Este artigo fornece um exemplo de como você pode criar seu próprio sistema de segurança codificado usando uma placa Arduino uno e vários sensores magnéticos.

O sistema pode ser desativado digitando a senha no teclado e pressionando o botão ' * ‘. Se quiser alterar a senha atual, você pode fazer isso pressionando a tecla ‘ B‘, e se quiser pular ou interromper a operação, você pode fazer isso pressionando a tecla ‘#’. O sistema possui uma campainha para reproduzir vários sons ao realizar uma determinada operação.

O sistema é ativado pressionando o botão ‘A’. O sistema dá 10 segundos para sair da sala. Após 10 segundos, o alarme será ativado. O número de sensores magnéticos dependerá do seu desejo. O projeto envolve 3 sensores (para duas janelas e uma porta). Ao abrir a janela, o sistema é acionado e o sinal de alarme proveniente da campainha é acionado. O sistema pode ser desativado digitando uma senha. Quando a porta se abre, o alarme dá à pessoa que entra 20 segundos para digitar a senha. O sistema usa um sensor ultrassônico que pode detectar movimento.

Vídeo de operação do dispositivo

Arte Feito apenas para fins informativos/educacionais. Se quiser usá-lo em casa, você precisará modificá-lo. Coloque a unidade de controle em uma caixa metálica e proteja a linha de energia de possíveis danos.

Vamos começar!

Etapa 1: O que precisaremos?

  • Placa Arduino uno;
  • display LCD de alto contraste 16×2;
  • teclado 4x4;
  • Potenciômetro de 10 ~ 20kΩ;
  • 3 sensores magnéticos (também conhecidos como interruptores reed);
  • 3 terminais de parafuso de 2 pinos;
  • Sensor ultrassônico HC-SR04;

Se quiser construir um sistema sem usar Arduino, você também precisará do seguinte:

  • Conector DIP para microcontrolador atmega328 + atmega328;
  • Ressonador de quartzo de 16 MHz;
  • 2 peças. Cerâmica 22pF, 2 unid. Capacitor eletrolítico de 0,22uF;
  • 1 unidade. Resistor de 10kOhm;
  • Tomada de alimentação CC;
  • tábua de pão;
  • Fonte de alimentação 5V;

E uma caixa para embalar tudo!

Ferramentas:

  • Algo para cortar uma caixa de plástico;
  • Pistola de cola quente;
  • Furadeira/chave de fenda.

Etapa 2: Circuito de Alarme

O diagrama de conexão é bastante simples.

Pequeno esclarecimento:

LCD de alto contraste:

  • Pino1 - Vdd para GND;
  • Pino2 - Vss a 5V;
  • Pin3 - Vo (ao terminal central do potenciômetro);
  • Pin4 - RS para Arduino pino 8;
  • Pin5 - RW para GND;
  • Pin6 - EN para Arduino pino 7;
  • Pin11 - D4 para pino 6 do Arduino;
  • Pin12 - D5 para pino 5 do Arduino;
  • Pin13 - D6 para Arduino pino 4;
  • Pin14 - D7 para Arduino pino 3;
  • Pin15 - Vee (ao terminal direito ou esquerdo do potenciômetro).

Teclado 4x4:

Da esquerda para a direita:

  • Pino 1 ao pino Arduino A5;
  • Pin2 ao pino A4 do Arduino;
  • Pin3 a pino A3 do Arduino;
  • Pin4 ao pino A2 do Arduino;
  • Pin5 para Arduino pino 13;
  • Pin6 para Arduino pino 12;
  • Pin7 ao pino 11 do Arduino;
  • Pin8 ao pino 10 do Arduino.

Etapa 3: Firmware

A etapa apresenta o código que é usado pelo integrado !

Baixe o plugin codebender. Clique no botão "Executar" no Arduino e atualize sua placa com este programa. Isso é tudo. Você acabou de programar seu Arduino! Se quiser fazer alterações no código, clique no botão "Editar".

Nota: Se você não for usar o Codebender IDE para programar sua placa Arduino, será necessário instalar bibliotecas adicionais no Arduino IDE.

Passo 4: Fazendo seu próprio painel de controle

Depois de montar e testar com sucesso seu novo projeto baseado no Arduino uno, você pode começar a fazer sua própria placa.

Algumas dicas para uma conclusão mais bem-sucedida do empreendimento:

  • Um resistor de 10kOhm deve ser montado entre os pinos 1 (reset) e o pino 7 (Vcc) do microcontrolador Atmega328.
  • O cristal de 16 MHz deve ser conectado aos pinos 9 e 10, marcados como XTAL1 e XTAL2
  • Conecte cada terminal do ressonador com capacitores de 22pF. Conecte os cabos livres do capacitor ao pino 8 (GND) do microcontrolador.
  • Não esqueça de conectar a segunda linha de alimentação do ATmega328 na fonte de alimentação, pinos 20 Vcc e 22-GND.
  • Informações adicionais sobre os pinos do microcontrolador podem ser encontradas na segunda imagem.
  • Caso pretenda utilizar uma fonte de alimentação com tensão superior a 6V, deve-se utilizar um regulador linear LM7805 e dois capacitores eletrolíticos de 0,22uF, que devem ser montados na entrada e na saída do regulador. É importante! Não forneça mais de 6V à placa!!! Caso contrário, você queimará o microcontrolador Atmega e o display LCD.

Etapa 5: coloque o circuito na caixa


Como fazer um sistema de alarme GSM simples usando SIM800L e Arduino para uma garagem ou chalé. Nós mesmos fazemos isso usando módulos prontos do Aliexpress. Módulos principais– Módulo GSM SIM800L, Arduino Nano (pode usar qualquer Uno, etc.), placa abaixadora, bateria de celular.

Arroz. 1. Layout dos módulos de alarme de segurança no Arduino

Produção de alarme

Montamos em uma protoboard através de pads, o que permitirá a substituição dos módulos se necessário. Ligue o alarme fornecendo energia de 4,2 volts através do interruptor no SIM800L e no Arduino Nano.



Quando o primeiro loop é acionado, o sistema primeiro liga para o primeiro número, depois desliga a chamada e liga de volta para o segundo número. O segundo número foi adicionado para o caso de o primeiro ser desconectado repentinamente, etc. Quando o segundo, terceiro, quarto e quinto loop são acionados, é enviado um SMS com o número da zona acionada, também para dois números. O diagrama e o esboço para os interessados ​​​​estão na descrição do vídeo.
Colocamos todos os componentes eletrônicos em uma caixa adequada.



Se você não precisar de 5 cabos, conecte o pino 5V do Arduino às entradas desnecessárias. Sistema de alarme GSM com 5 loops e bateria, que permitirá ao dispositivo continuar a funcionar de forma autónoma durante vários dias, mesmo durante um corte de energia. Você pode conectar qualquer sensor de contato de segurança, contatos de retransmissão, etc. a eles. Como resultado, obtemos um dispositivo de segurança simples, barato e compacto para enviar SMS e discar para 2 números. Pode ser usado para proteger uma dacha, apartamento, garagem, etc.

Mais detalhes no vídeo



Publicações relacionadas