Térmica Inteligente com Arduino

|



     Muitas vezes nos deparamos com uma térmica contendo café e não sabemos se o líquido está na temperatura adequada e como é impossível saber apenas olhando a garrafa acabamos perdendo tempo com um café que está frio e ficamos aborrecidos com isso.
     Esta cafeteira entretanto indica por um gráfico de LEDs se o líquido está quente, morno ou frio. Os LEDs ligam gradativamente do azul(frio) para o vermelho(quente), quando há um aquecimento e se apagam quando há um resfriamento.
Veja projeto completo abaixo:







Para desenvolver o projeto foram usados:


  • 1 sensor de temperatura encontrado em termômetros digitais.


  • 9 LEDs coloridos.1 vermelho, 4 amarelos, 3verdes, 1 azul.

  • 1 resistêcia de 10K(Marrom,Preto e Laranja).

  • 1 arduino.

  • 1 térmica.

  • Fios.



  Nove furos foram feitos na lateral da térmica com um ferro quente de mesmo diâmetro dos LEDs.

  Fios conectaram o os leds dos pinos 5 ao 13.


Vista interna dos LEDS na parede da térmica:




O sensor de temperatura foi retirado da ponta do termômetro digital e conectado ao arduino como mostra a figura abaixo:


   O sensor foi posicionado no interior da garrafa de vidro com um fio longo.
   Foi desenvolvido um código que teve como base um outro que controla gráficos de LEDs que foi modificado e adaptado para as necessidades do projeto. Neste programa também é possível ver pela porta serial do IDE do arduino o valor lido pelo sensor e o número de LEDs que estão apagados.


Resultados:
   Foi possível detectar a gradativa variação de temperatura interna do líquido dentro da garrafa térmica fruto do resfriamento ou aquecimento com o gráfico de LEDs.



Código:

/*
 
    Programa para TÉRMICA INTELIGENTE.
 
  -Programa criado por Gamesh_ (by Gamesh_) from Brazil
  http://www.brasilrobotics.blogspot.com/
   Criado em 03, janeiro,2010
 
    --O programa detecta a temperatura do líquido(café, chá) na térmica e
    indica com um gráfico a temperatura.
    Azul para frio, vermelho para quente e
    demais cores para temperaturas intermediarias.
    O objetivo é saber se o "café" ainda está com
    uma boa temperatura para tomar.-- 
  
    Programa usou como base o:
    LED bar graph  
    created 26 Jun 2009
    by Tom Igoe 
    disponível no:
    http://www.arduino.cc/en/Tutorial/BarGraph
 
  */


 const int analogPin = 0;    // Entrada do sensor de temperatura.
 const int ledCount = 9;    // Número de LEDs usados (the number of LEDs in the bar graph)

 int ledPins[] = {5,6, 7, 8, 9, 10,11,12,13};   // Pinos usados com LEDS (an array of pin numbers to which LEDs are attached)

 void setup() {

   Serial.begin(9600);
  
   // loop over the pin array and set them all to output:
   for (int thisLed = 0; thisLed < 9; thisLed++) {
     pinMode(ledPins[thisLed], OUTPUT);
   }
 }

 void loop() {
  
      // Lendo o sensor termico:
   int sensorReading = analogRead(analogPin);
   // map the result to a range from 0 to the number of LEDs:
    int ledLevel = map(sensorReading, 320, 930, 0, 9);

Serial.print("Valores ledLevel : ");
    Serial.println(ledLevel);
    Serial.print("Valores sensorReading : ");
    Serial.println(sensorReading);
delay(1000);


   // loop over the LED array:
   for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    
    
     if (thisLed < ledLevel) {
       digitalWrite(ledPins[thisLed], LOW); //Desliga os LEDS(LEDs OFF)
     }
    
     else {
       digitalWrite(ledPins[thisLed], HIGH);  //Liga os LEDS(LEDs ON)
     }
   }
 }



Creative Commons License
Esta obra está licenciada sob uma Licença Creative Commons.








17 comentários:

Jeronimo disse...

Gamesh, Bacana o seu projeto. Quanto custou o termometro "descartavel" ?
Jeronimo
www.blogdoje.com.br
Avr, Arduino & ARM

Gamesh_ disse...

para Jeronimo

Gastei uns R$ 05,00 reais da uns 2 Euros.

Eletrônico disse...

Eu gostaria de saber como você conectou os LED's dentro da garrafa.
O café não entra em contato com o circuito não?
Você selou com alguma coisa?

Gamesh_ disse...

obrigado por perguntar... Vou por uma imágem que deixa as coisas mais claras. Na realidade existe um bulbo de vidro dentro que é isolante térmico. Os ledes estão na parede da garrafa e não no bulbo.

Anônimo disse...

Desculpem-me mas gastar um arduíno pra medir temperatura é um desperdício,por que não usar um simples LM3914 + termístor ?

Gamesh_ disse...

Sua sugestão parece ser boa!
Sabe dizer se tem como regular as temperaturas de referência Quente, Frio e Natural? O LM3914 tem que ter um valor máximo, um mínimo e um para a temperatura ambiente. Isso deve acontecer sempre. Caso for possível regular, funcinaria. Mas em termos de preço o chip fica 7 reais +- o preço do atmega8, fica a 8reais. Como não precisa da "placa" do arduino os valores ficam bem próximos também.
Mas vale a pena tentar, talvez não funcione bem como eu idealizei mas ficaria bem parecido.
Valews pelo comentário!!

aa disse...

a

Duelmilanove disse...

Muito legal o projeto da térmica, comprei um arduino e achei esse projeto interessante, então resolvi fazê-lo, mas estou com um probleminha, não estou conseguindo fazer os leds acenderem pois coloquei o sensor no bulbo pelo lado de fora da garrafa, como vc fez, vc colocou o sensor dentro da garrafa? ele pode molhar?
Abraço.

Gamesh_ disse...

Sim o sensor pode molhar, mas apenas a parte metálica! Usei silicone para vedar a fiação dentro do tubo plástico do sensor(do termômetro digital), para não haver algum curto ou interferência.
Um fio fino passa entre o encaixe do bulbo de vidro com o corpo da garrafa e vai até o fim da garrafa, é la no fundo que o sensor deve ficar.

Victor disse...

Cara...estou tentando fazer esse projeto, primeiramente estou fazendo em um protoboard. Estou com duvida na ligação do sensor, ja que, quando compilo o programa, para mim o Led do pino 5 deveria ficar sempre acesso, não é? O meu acende apenas quando compilo e depois apaga. Tem como você mostrar imagens da ligação do sensor?

Gamesh_ disse...

olá

O led que fica ligado vai depender do líquido que você está usando.
O led azul só liga quando está frio.
Ponha água gelada que ele liga.
Se por água normal ele deve ligar o pino 6 que é o "pino de partida".
É possível mudar a lógica de funcionamento caso queira. Fique à vontade para brincar.
O sensor deve ficar em contato com um líquido e deve ser protegido da entrada de água.
Há varios tipos de sensores de temperatura, alguns com comportatmentos não lineares isso pode acarretar um comportamento diferente do que foi setado no código. Basta fazer um ajuste.
Qualquer dúvida só comentar....

Fernando disse...

Cara, fiz todas as ligações, mas o termometro parece estar louco...
Olha só:

Valores sensorReading : 1023
Valores ledLevel : 6
Valores sensorReading : 733
Valores ledLevel : -4
Valores sensorReading : 0
Valores ledLevel : 0
Valores sensorReading : 320
Valores ledLevel : 10
Valores sensorReading : 1023
Valores ledLevel : 3
Valores sensorReading : 526
Valores ledLevel : -4
Valores sensorReading : 0
Valores ledLevel : -1
Valores sensorReading : 243


Será que o problema pode ser o termômetro?
As ligações já conferi trocentas vezes aqui...

Abraço!

Brasilrobotics disse...

olá

O pino analógico está flutuando.
Algo está errado.
Faça a leitura apenas do pino analógico e veja o valor lido. Teste usando um LDR no lugar do sensor de temperatura.
Se ficar estável o problema é no sensor mesmo e deve ser trocado.

Henrique Issamu disse...

Amigo, quando você diz que só a parte metálica do sensor pode ir dentro do bulbo você se refere aos terminais ou a o sensor propriamente dito(a parte preta)? Não teria nenhum problema ele ficar em contato direto com café por exemplo?

Brasilrobotics disse...

ola

Dependendo do sensor que esta usando ele nao tera proteçao contra a agua.
Liquidos diferentes podem gerar conduçao.
Assim voce deve proteger o sensor de temperatura da agua.
Isso pode ser feito com cola quente, silicone, cola epoxi.
E ainda usar um tubo de metal para tal proteger tudo. Antenas de tv podem ser usadas.

Anônimo disse...

Ola.
Amigo eu gostei muito do seu projeto e estou querendo fazer um. Teria como vc mandar mais detalhes de como vc fez? Por exemplo como vc fez para colocar a fiação com o sensor dentro do bulbo, onde vc colocou o arduino. Se puder mandar um passo a passo para esse email epam.ba2012@gmail.com
Att.

Anônimo disse...

Existe a possibilidade do código está invertido?

Eu estou observando que de acordo com o último loop dos LEDs se o
valor do LED analisado for menor que o o valor recebido pelo termômetro desligue o LED atual.

Acredito que se o LED for menor que o valor do ledLevel ele deve estar ligado
Todo LED abaixo da temperatura lida pelo sensor deve estar ligado, concorda?

assim podemos observar que no código quando é falado:

(if (thisLed<ledLevel) {

digitalWrite(ledPins[thisLed], LOW); //Desliga os LEDS(LEDs OFF)

}

você está desligando os LEDs que estão abaixo ao invés de ligar-los.

 

©2010 Brasil Robotics | by Gamesh_