Alarme de mochila
Componentes e suprimentos
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Aplicativos e serviços online
|
Sobre este projeto
Você já sentiu a necessidade de um alarme de mochila? Você já se sentou em uma área pública com sua mochila e temeu que alguém pudesse roubá-la? Se sim, este é o projeto certo para você!
Usando a bússola / acelerômetro LSM303, este projeto soa um alarme quando a mochila é movida. Ele usa a bússola para monitorar a orientação e, quando houver movimento de mais de 10 graus, soa um alarme.
Etapa 1:conecte o Arduino
Conecte a placa de breakout LSM303 ao Arduino da seguinte maneira:
- SDA - SDA
- SDL - SDL
- VIN - 5v
- GND - GND
Para mais detalhes, verifique o guia da Adafruit.
Conecte a campainha piezoelétrica ao Arduino da seguinte maneira:
- + para o pino 13
- - para GND
Etapa 2:instalar as bibliotecas
Baixe a biblioteca Adafruit_LSM303DLHC e a biblioteca Adafruit_Sensor como arquivos zip.
Abra o IDE do Arduino. Se você não tem, faça o download aqui.
Vá para Sketch> Incluir Biblioteca> Add.ZIP Library ...
Em seguida, localize e selecione os arquivos .ZIP que você baixou anteriormente.
Etapa 3:programar o Arduino
Abra o Arduino IDE e crie um novo arquivo. Exclua tudo que já estiver lá e cole o código a seguir.
// Inclui bibliotecas #include #include #include #include // Ajuste a sensibilidade const int sens =10; / / Atribua um ID exclusivo a este sensor ao mesmo tempo Adafruit_LSM303_Mag_Unified mag =Adafruit_LSM303_Mag_Unified (12345); void setup (void) {// Just for Debugging //Serial.begin(9600); //Serial.println("Starting ... "); // Configuração do pino 13 pinMode (13, OUTPUT); // Inicialize o sensor if (! Mag.begin ()) {// Houve um problema ao detectar o LSM303 ... verifique suas conexões digitalWrite (13, HIGH); atraso (500); digitalWrite (13, BAIXO); atraso (500); digitalWrite (13, ALTO); atraso (500); digitalWrite (13, BAIXO); atraso (500); enquanto (1); } // Aguarde 5 segundos de atraso (5000); // Alerta quando iniciado digitalWrite (13, HIGH); atraso (500); digitalWrite (13, LOW);} // função para obter o valor do sensor int getDeg (void) {// Obter um novo evento do sensor sensor_event_t event; mag.getEvent (&event); float Pi =3,14159; // Calcula o ângulo do vetor y, x float header =int ((atan2 (event.magnetic.y, event.magnetic.x) * 180) / Pi); // Normaliza para 0-360 if (cabeçalho <0) {cabeçalho =360 + cabeçalho; } return header;} void loop (void) {// obtém os valores do sensor int oldDeg =getDeg (); atraso (1000); int newDeg =getDeg (); if (newDeg <(oldDeg-sens) &&oldDeg! =0 &&newDeg! =0) {// soa o alarme digitalWrite (13, HIGH); // Apenas para depuração //Serial.println("Triggered "); //Serial.println (""); } else if (newDeg> (oldDeg + sens) &&oldDeg! =0 &&newDeg! =0) {// soa o alarme digitalWrite (13, HIGH); // Apenas para depuração //Serial.println("Triggered "); //Serial.println (""); } // Apenas para depuração //Serial.print("New:"); //Serial.println(newDeg); //Serial.print("Old:"); //Serial.println(oldDeg); //Serial.println ("");}
Conecte seu Arduino, compile e envie o código.
Etapa 4:teste!
Se você fez tudo corretamente, após pressionar o botão reset em seu Arduino, você será saudado com alguns bipes, 3 segundos de silêncio e, em seguida, um bipe mais longo. Se você girar o breakout do LSM303, deverá ouvir o alarme sendo ativado. Se o sensor for muito sensível, apenas aumente a variável 'sens' no código próximo ao topo. Se você quiser mais sensibilidade, diminua a variável 'sens'.
Se você receber 2 bipes longos antes do atraso de 3 segundos, significa que há problemas com a fiação. Verifique todas as conexões.
Se não funcionar, pode ser que as bibliotecas não estejam nomeadas corretamente. No código, remova as instruções '#include' no início. Em seguida, vá para Sketch> Include Library e selecione as bibliotecas 'Wire', 'Adafruit LSM303DLHC' e 'Adafruit Unified Sensor'. Se depois de tudo isso ainda não funcionar, certifique-se de que não haja nenhum campo magnético forte perto de você. Vá para uma sala diferente ou para fora. Além disso, certifique-se de que a placa de apoio esteja um pouco nivelada e paralela ao solo.
Etapa 5:adicionar uma chave
Você deve ter um projeto funcionando agora, basta conectar uma bateria de 9v na tomada do seu Arduino, montá-la na sua mochila e pronto. No entanto, desconectar e reconectar a bateria toda vez que quiser armar / desarmar o alarme é um tanto chato. É aí que entra em jogo o conector de áudio de 6,35 mm. Em vez de um conector de 3,5 mm que a maioria das pessoas tem nos fones de ouvido, o uso de um conector de 6,35 mm aumenta a segurança. No entanto, se você tiver uma chave com chave ou alguma outra chave que deseja usar, sinta-se à vontade para fazê-lo.
De qualquer forma, para adicionar a chave, conecte o interruptor / chave entre a bateria e o conector do barril DC.
Se você tiver um desses, corte apenas um dos fios, adicione fios de extensão se necessário e adicione o switch. No meu caso, eu tenho um conector de barril de bloco de terminais e conectei com ele. Como não estou muito preocupado com a segurança, minha chave é apenas um botão de alternância simples, mas você pode ser criativo. Use uma chave de palheta e um ímã, RFID, talvez até um aplicativo de smartphone!
Etapa 6:monte!
Parabéns! Agora você tem um alarme totalmente funcional com chave. Agora, basta montá-lo na mochila. Faça um buraco na lateral para a campainha e outro para a fechadura. Usei laços zip, mas uma solução mais permanente pode ser usada. Certifique-se de que o sensor esteja montado um pouco paralelo ao solo e que o orifício da campainha não esteja obstruído.
Indo além
Este alarme não se limita às mochilas. Adicione-o à porta, a um pote de biscoitos, à geladeira ou a qualquer coisa que você queira proteger. As possibilidades são infinitas!
Código
- Código
Código Arduino
Código Arduino// Inclui bibliotecas #include#include #include #include // Ajuste a sensibilidade const int sens =10; // Atribua um ID exclusivo a este sensor ao mesmo tempo Adafruit_LSM303_Mag_Unified mag =Adafruit_LSM303_Mag_Unified (12345); void setup (void) {// Just for Debugging //Serial.begin(9600); //Serial.println("Starting ... "); // Configuração do pino 13 pinMode (13, OUTPUT); // Inicialize o sensor if (! Mag.begin ()) {// Houve um problema ao detectar o LSM303 ... verifique suas conexões digitalWrite (13, HIGH); atraso (500); digitalWrite (13, BAIXO); atraso (500); digitalWrite (13, ALTO); atraso (500); digitalWrite (13, BAIXO); atraso (500); enquanto (1); } // Aguarde 5 segundos de atraso (5000); // Alerta quando iniciado digitalWrite (13, HIGH); atraso (500); digitalWrite (13, LOW);} // função para obter o valor do sensor int getDeg (void) {// Obter um novo evento do sensor sensor_event_t event; mag.getEvent (&event); float Pi =3,14159; // Calcula o ângulo do vetor y, x float header =int ((atan2 (event.magnetic.y, event.magnetic.x) * 180) / Pi); // Normaliza para 0-360 if (cabeçalho <0) {cabeçalho =360 + cabeçalho; } return header;} void loop (void) {// obtém os valores do sensor int oldDeg =getDeg (); atraso (1000); int newDeg =getDeg (); if (newDeg <(oldDeg-sens) &&oldDeg! =0 &&newDeg! =0) {// soa o alarme digitalWrite (13, HIGH); // Apenas para depuração //Serial.println("Triggered "); //Serial.println (""); } else if (newDeg> (oldDeg + sens) &&oldDeg! =0 &&newDeg! =0) {// soa o alarme digitalWrite (13, HIGH); // Apenas para depuração //Serial.println("Triggered "); //Serial.println (""); } // Apenas para depuração //Serial.print("New:"); //Serial.println(newDeg); //Serial.print("Old:"); //Serial.println(oldDeg); //Serial.println ("");}
Esquemas
Para a bússola:Azul - SDA
Amarelo - SDL
Preto - GND
Vermelho - VIN
Processo de manufatura
- Design à prova de falhas
- Sensor de movimento, alarme, gravação de vídeo em HA no Raspberry Pi
- Alarme de água Raspberry pi 2 com t sapateiro mais
- Sistema de alarme de detecção de movimento
- Robô de alarme rotativo
- Alarme de planta de alerta de sede
- Sistema de alarme Arduino:SERENA
- Segurança do sistema de alarme colocada em teste
- Sensor ultrassônico com alarme, LCD e temperatura
- Despertador simples com DS1302 RTC