Esse projeto é um interruptor simples conectado a um relé que irá habilitar ou não o interruptor. Esse relé está conectado a um Arduino que utiliza um sensor de gás MQ2 para detectar se há algum vazamento de gás no ambiente, caso haja, o Arduíno arma o relé que irá desabilitar o interruptor.
Motivação
Tendo em vista que ocorrem muitos casos de acidentes domésticos, aonde há o vazamento de gás e alguém, sem sentir que há um vazamento, acende a lâmpada que pode ocasionar em uma explosão. Assim, esse projeto foi pensado para evitar esse tipo de acidente doméstico.
Materiais
- 1x Arduino Uno
- 1x Módulo Sensor de Gás MQ2
- 1x Módulo Relé 5V
- 1x Push button
- 2x Leds (Podem ser de diferentes cores)
- 3x Resistores 330 ohms
- Jumpers
- Fios elétricos
Ligações
Conexões com o Arduíno:
Conexões com a rede elétrica:
Sempre que estiver trabalhando com eletricidade (principalmente com corrente alternada) utilize materiais de proteção e tome todas as precauções.
Código
//Define pins #define MQ2 A0 #define BUTTON 2 //Use interruption, so, it needs to be 2 #define PWR 3 #define LED 4 #define RELAY 5 //Define constants #define AVG 10000.0 #define THRESHOLD 8.0 //Declare varaibles float sensor_volt; float sensorValue; float RS_gas; float R0; float ratio; void setup(){ pinMode(MQ2, INPUT); pinMode(BUTTON, INPUT); pinMode(PWR, OUTPUT); pinMode(LED, OUTPUT); pinMode(RELAY, OUTPUT); digitalWrite(PWR, HIGH); digitalWrite(LED, LOW); digitalWrite(RELAY, HIGH); attachInterrupt(0, calibrate, RISING); calibrate(); } void loop(){ sensorValue = analogRead(MQ2); sensor_volt=(float)sensorValue/1024*5.0; RS_gas = (5.0-sensor_volt)/sensor_volt; ratio = RS_gas/R0; if(ratio <= THRESHOLD){ digitalWrite(RELAY, LOW); }else{ digitalWrite(RELAY, HIGH); } delay(500); } void calibrate(){ int i; float RS_air; digitalWrite(LED, HIGH); for(i = 0;i < AVG;i++){ sensorValue = sensorValue + analogRead(MQ2); } sensorValue = sensorValue/AVG; sensor_volt = sensorValue/1024*5.0; RS_air = (5.0-sensor_volt)/sensor_volt; R0 = RS_air/10.0; digitalWrite(LED, LOW); }
Entendendo o funcionamento
No projeto, iremos trabalhar com interrupção e por isso o pino de “dado” do push button precisa ser obrigatoriamente conectado à porta 2 pois é lá aonde está fisicamente a nossa interrupção zero. Esse push button vai servir para chamarmos a função para calibrar o nosso R0 a qualquer momento, dependendo quanto tempo seu sensor de gás tenha passado desligado, talvez você precise “esquentá-lo” um pouco antes de utilizar e assim você pode apertar o botão para calibrar depois. Todas as conexões podem ter seus pinos alterados, desde que você altere em suas respectivas variáveis.
Escolhemos fazer a conexão da lâmpada no normalmente fechado, dessa forma mesmo se o Arduíno se desligar, perder energia ou algo do gênero o relé irá voltar para o seu estado natural e irá permitir a passagem normal pelo interruptor. Caso você queira, você pode trocar esse estado, conectando o fio que vai para o interruptor no normalmente aberto e alterando o comportamento dentro dos IFs nas linhas 45 e 47.
A variável AVG é utilizada para fazer o loop e adquirir uma média em cima da leitura do sensor MQ2, o valor escolhido foi arbitrário, isso é, você pode escolher o valor que melhor lhe agradar. Já na variávels THRESHOLD o valor foi escolhido a partir de uma observação da tabela que se encontra no datasheet do sensor MQ2 (e no link nas referências). Acreditamos que o valor ideal para a detecção e de qualquer gás e desarmar o interruptor por segurança seja entre 7 e 8, mas esse valor pode ser alterado de acordo com suas necessidades e calibração do seu sensor.
OBS: Não nos responsabilizamos por eventuais acidentes que venham a ocorrer. Sempre tome todas as medidas de segurança. O software aqui fornecido pode conter bugs, caso tenha alguma correção por favor, nos envie para que possamos melhorá-lo e compartilhar com mais pessoas.
Desculpem aí pela bagunça na protoboard e por algo errado no vídeo.
Esperamos que tenham gostado desse projeto, qualquer dúvida, crítica ou sugestão é só deixar um comentário.