Postagem em destaque

Controle PID de Potência em Corrente Alternada - Arduino e TRIAC - Parte I

Este post é o primeiro de uma série de seis que escrevi tratando de controle de potência e PID (controle proporcional, integral e derivativo...

domingo, 25 de janeiro de 2015

Automação no Parque, 24/1/2015

Ontem no Parque a brincadeira, só para variar, "teve boa".

Um projeto que apareceu, de um aluno de graduação, foi de monitoramento pela web de incêndios. A ideia é monitorar o aumento da temperatura e a presença de gases e fumaça advindos da combustão ou potencialmente perigosos (combustíveis como o butano, nosso "gás de cozinha").

No primeiro momento nos dedicamos aos sensores que o camarada (prá variar, me esqueci do nome dele...) trouxe. O primeiro que exploramos foi o detetor de fumaça, o tal do MQ-2, cujo datasheet vc pode ver clicando .


 O sensor fica protegido por uma tela metálica, e é preso num break (plaquinha) onde estão os conectores e também um trimpot (potenciômetro) que pode ser usado para ajustar a sensibilidade do dito.

Ele é capaz  de detectar a presença de butano, GLP, metano, álcool, hidrogênio (todos estes gases inflamáveis) e fumaça. Aqui vc encontra uma discussão detalhada sobre o princípio de funcionamento desses sensores, chamados eletroquímicos.

Deve ser alimentado com 5Vcc, e tem duas saídas de dados (nesse modelo que a gente usou, de quatro pinos): uma saída analógica, de 0 a 5V, cujo sinal pode ser lido diretamente em uma entrada analógica do Arduino. A outra saída é digital, onde, de acordo com o ajuste de sensibilidade feito no pot, aparece um sinal de 5V quando a presença de gases é detetada. Tem também um LED verde que indica visualmente a presença de gases e um outro que indica que a bagaça tá ligada. Outros modelos podem ter somente um dos sinais, analógico ou digital, ou ainda não ter os LEDs.

Ligar o bicho, mamão com açúcar: Vcc no pino de 5V do Arduino, GND com GND e a saída digital ou analógica, dependendo do que vc resolver usar, numa porta correspondente do Arduno. No meu programa de testes usei a analógica.

Moleza, não? Bom, acontece que tentamos usar o sensor seguindo esses procedimentos acima quem disse que a coisa funcionou? Nada...

Testa dali, ajusta sensibilidade daqui e o sensor lá, e nada do bicho funcionar. Ainda bem que o dono do projeto, sujeito precavido como sói (!) nesses casos, tinha um segundo sensor. Testamos com o outro e... funcionou de prima!

Aqui vai a lição "novamente aprendida": Quando comprar sensores para o seu projeto, principalmente se forem baratos e/ou vierem de longe, compre no mínimo dois de cada.

Abaixo o programa que usamos para testar o bicho:

const int sensorPin= 0;
int smoke_level;

void setup() {
  Serial.begin(9600); //sets the baud rate for data transfer in bits/second
  pinMode(sensorPin, INPUT);//the smoke sensor will be an input to the arduino
}

void loop() {
  smoke_level= analogRead(sensorPin); //arduino reads the value from the smoke sensor
  Serial.println(smoke_level);//prints just for debugging purposes, to see what values the sensor is picking up
}

Simples a mais não poder, o "pograminha" simplesmente lê o valor exibido na porta 0 analógica e mostra no Serial Monitor.

E como testar o troço? Piece of cake: basta comprar um isqueiro na padoca da esquina e esguichar o gás em direção ao sensor, sem chama. O sinal vai variar em função disso. Use o pot para mexer na sensibilidade do bicho.

"Morto" o MQ-2, passamos à diversão com o sensor que ele trouxe para usar com temperatura

O sensor que foi trazido foi o DHT-11. Pertence a uma família que inclui outros similares (DHT-21, 22...) é muito utilizado em conjunto com o Arduino. Engraçado que no parque ainda não tinha aparecido nenhum até hoje. Aqui o datasheet, abaixo a "fotinho", como diz essa moçadinha de hoje, para desespero dos puristas:



Esse sensor lê tanto a temperatura quanto a umidade relativa do ar.

Assim como o MQ-2 acima, o sensor é o que vai dentro da caixinha azul. Ele por sua vez está preso a um break que tem os conectores etc. Tanto no caso do MQ-2 quanto no caso dos DHT é possível comprar somente o sensor, sem o break. Nesse caso, vai dar um pouco mais de trabalho para usá-los, mas é possível.

A conexão é diferente: ocorre que a saída desse camarada é digital, na forma de pulsos, então usa-se um resistor de push-up ou pull-down conforme o diagrama abaixo:



Na net a gente acha também a ligação "direta", quer dizer, sem o resistor, mas nós optamos por fazer como está acima.

Para usar o dito vc tem que baixar um biblioteca daqui. Para descobrir como instalar uma biblioteca no Arduino, veja esse link do Brasil Robotics, que também tem muitas outras arduinices legais.

Para testar usei o programa que vem de teste com a lib, um tal de DHTTester. Funcionou de prima, e a saída vc pode ver abaixo:


E aqui o circuitim montado:


That´s all, folks!