segunda-feira, 19 de dezembro de 2016

dsPIC Temperature and Humidity Monitor


Este post demonstra a construção de um Monitor de Umidade e Temperatura com um dsPIC30F4013.




O circuito


As principais características do circuito são:

- utiliza o dsPIC30F4013, um Controlador Digital de Sinal - DSC da Microchip. Opera @30 MIPS;
- sensor de temperatura LM35 da National Semiconductor;
- sensor de umidade capacitivo HCH-1000 da Honeywell;
- conversor capacitância/frequência com NE555 da Texas Instruments;
- conversor serial TTL/RS232 com MAX232;
- interface gráfica com display GLCD 128x64 padrão KS0108B e 3 teclas;

- leitura da temperatura pelo ADC-12-bit;
- leitura da capacitância/frequência através do Input Capture;
- envia dados para o PC pela UART;

- calibração via software pelo display;
- salva parâmetros na EEPROM interna;

- criado programa do PC no Visual Basic 6.0;
- firmware do dsPIC desenvolvido no MPLAB IDE com o MPLAB C30.



A Figura abaixo mostra o diagrama em blocos do circuito e os diversos dispositivos conectados ao dsPIC.
Diagrama em blocos do Circuito

Para o controle foi utilizado o dsPIC30F4013, um Controlador Digital de Sinal - DSC da Microchip.
O oscilador interno está configurado com PLL x16 para operar com 30 MIPS, ou 117,92 MHz, frequência necessária para o Input Capture ler o sensor de umidade.


DSC dsPIC30F4013



A Medição da Umidade


O sensor de umidade utilizado é um HCH-1000-001, da Honeywell, do tipo capacitivo.

Sensor de umidade HCH-1000


As especificações deste sensor são mostradas na tabela a seguir, disponível no data sheet do HCH-1000.


Especificação do sensor de umidade. Fonte data sheet HCH-1000 Honeywell.


 O gráfico Capacitância x Umidade mostra a resposta do sensor de umidade que possui a sensibilidade típica de 0,6 pF/%RH.

Resposta do sensor de umidade. Fonte data sheet HCH-1000 Honeywell.

A Figura abaixo mostra o sensor de umidade capacitivo HCH-1000-001 montado na matriz de contatos (protoboard).


Sensor de umidade e CI 555 montado no protoboard.


O ADC do dsPIC não consegue ler diretamente a grandeza "capacitância". Um ADC lê tensão.
A Honeywell apresenta em seu artigo  "HCH-1000 Series Humidity Sensor Calibration and Output Circuit Data" um conversor de capacitância para frequência utilizando o temporizador de precisão 555.

O CI 555é muito utilizado em eletrônica. Abaixo é apresentado a pinagem e o circuito equivalente.
Circuito equivalente do CI NE555. Fonte data sheet Texas Instruments.

O data sheet do NE555 da Texas Instrument mostra a ligação deste CI para funcionar como um oscilador astável,
Oscilador astável com NE555. Fonte data sheet Texas Instruments.
O data sheet ainda forneceas fórmulas para os cálculos de período e frequência de acordo com os componentes externos utilizados: R1, R2 e C.


Fórmulas para frequência de saída do oscilador astável com 555. Fonte data sheet Texas Instruments.

A Honeywell mostra em seu artigo  "HCH-1000 Series Humidity Sensor Calibration and Output Circuit Data" a sugestão para a montagem do sensor de umidade capacitivo HCH-100 com o temporizador 555.

Circuito de aplicação do HCH-1000 com 555. Fonte: Honeywell.

A fórmula para determinar a frequência de saída é apresentada a seguir.

Fórmulas para determinar frequência de saída do HCH-1000 com 555. Fonte: Honeywell.


Com a conversão de capacitância em frequência se torna possível fazer a medição do sinal da capacitância do sensor com o dsPIC. Para esta tarefa é utilizado o módulo Input Capture (IC1) do DSC.




A Medição da Temperatura


Para a medição de temperatura foi utilizado o CI LM35, um sensor de temperatura de precisão calibrado diretamente para graus Celsius ºC (Centígrado).
Possui saída analógica linear com fator de escala +10 mV/ºC.

Sensor de temperatura LM35. Fonte: data sheet National Semiconductor.

O dsPIC lê diretamente o sinal do sensor pelo conversor analógico-digital ADC interno de 12-bit.
A figura abaixo mostra o sensor montado na placa juntamente com  as teclas para navegação no display.


Sensor de temperatura LM35 montado na placa.


A Interface Serial com o Computador

Os dados medidos e calculados pelo dsPIC, temperatura, umidade e capacitância, são enviados para o computador através do módulo de comunicação UART do DSC.
O CI MAX232 foi utilizado como interface entre o dsPIC e o PC, trata-se de um conversor de níveis TTL/RS232.

Placa de interface serial com MAX232.

O circuito completo do protótipo do Monitor de Umidade e Temperatura é mostrado a seguir.

O circuito completo do dsPIC Temperature and Humidity Monitor.



A Interface Gráfica


Como interface gráfica foi utilizado um display GLCD 128x64 padrão KS0108B.
Na tela de medição são mostrados os valores atuais de temperatura [ºC] e umidade relativa do ar [%RH].
 

Na tela de Monitoramento são mostrados:
- a temperatura. O dsPIC lê a tensão do sensor LM35 pelo ADC e calcula a temperatura pelo fator de escala 10mV/ºC.
- o conteúdo do registro Timer3, utilizado pelo módulo Input Capture IC1.
- o período em us calculado pelo dsPIC através do valor de Timer3. Representa o período do sinal capturado do CI 555, conversor capacitância/frequência.
- a capacitância em pF calculada pelo dsPIC através do sinal do período da frequência capturada pelo IC1. A fórmula utilizada é a do oscilador astável 555, mostrada anteriormente.
- a umidade relativa do ar em %RH calculada pelo dsPIC através do sinal de capacitância encontrado.




A tela de Calibração serve para a calibração da medição de umidade por software.
Os seguintes parâmetros estão disponíveis:
- valores de R1 e R2 em [kohm], os 2 resistores do circuito oscilador astável com o 555, para que o dsPIC calcule a capacitância do sensor de umidade.
- valor de Cp, que corresponde aos valores da capacitância parasita em paralelo com o sensor de umidade (capacitância do protoboard) + capacitância de offset para correção do desvio da capacitância típica do sensor, indicada no datasheet do sensor HCH-1000.

 Comparando a Medição

 Como saber se a medição da umidade relativa do ar está correta?

O primeiro método foi comparar o valor medido do dsPIC com a previsão meteorológica de 2 sites: o accuweather.com e o climatempo.com.br.
Veja a seguir o histórico da temperatura ambiente, umidade relativa do ar e ponto de orvalho.


Previsão do tempo. Fonte: accuweather.com.


Previsão do tempo. Fonte: accuweather.com.



Previsão do tempo. Fonte: climatempo.com.br.



O segundo método foi executar um teste simples e rápido para determinar a umidade relativa do ar através da medição da temperatura ambiente e a temperatura no ponto de orvalho.
Este método é descrito pelo Prof. Fernando Lang da Silveira na matéria "Umidade relativa: o que é e como se determina?" disponível no site da UFRGS/ Centro de Referência para o Ensino de Física - CREF/ Instituto de Física- iF. Clique aqui para ver esta matéria na íntegra.

O primeiro passo é a medição da temperatura ambiente.

Medição da temperatura ambiente.


O segundo passo é a medição da temperatura da água no ponto de orvalho.
Utiliza-se uma caneca de alumínio com água natural.
Adiciona-se gelo gradativamente à água até que a caneca  "perca o brilho" da parte externa de metal e comece a ficar "opaca". Isto indica que se a temperatura da caneca está na temperatura do ponto de orvalho e pequenas gotículas de água começam a se formar na parede externa da caneca.
Anota-se a temperatura da água para o ponto de orvalho.

Determinando a temperatura da água no ponto de orvalho.

Detalhe da marca feita na caneca para identificar o ponto de orvalho.


Detalhe ponto de orvalho atingido.



Detalhe na caneca, marca "x", perca do brilho na parede externa da caneca mostra que se atingiu o ponto de orvalho.


Detalhe ponto de orvalho atingido.

Foi consultada uma tabela de termoresistência para determinar a temperatura através do valor de resistência medida do sensor do tipo PT100.


Tabela de variação da resistência com a temperatura para bulbo de resistência (PT100). Fonte: ECIL.


Da tabela de termoresistência foram extraídos os valores das temperaturas em grau Celsius e convertidas para Kenvin.


Dados do teste para determinar umidade relativa de acordo com a temperatura ambiente e o ponto de orvalho.


O Prof.Lang define a seguinte equação em sua matéria, para determinar a umidade relativa do ar de acordo com a temperatura da água natual (temperatura ambiente) e a temperatura da água no ponto de orvalho (temperaturas em Kelvin):

Equação para determinar a Umidade Relativa do ar. Fonte: Prof. Lang.
Jogando os valores encontrados no teste na fórmula é encontrado o valor de 0,7569 ou 75,69 %RH.

Conclui-se com este teste prático que os valores medidos pelo dsPIC, 24,95 °C e 74,97 %RH, estão coerentes com a temperatura ambiente e a umidade relativa do ar.



O Programa Monitor do Computador

Os dados de temperatura, umidade e capacitância são enviados para o computador através da comunicação serial UART do dsPIC. Um conversor de níveis TTL/RS232 é utilizado para conectar o dsPIC à porta serial do computador (porta COM1).

A comunicação está configurada para 9600 bps 8-N-1.

Com a utilização do Hyperterminal do Windows é possível visualizar o pacote de mensagens enviado do dsPIC para o computador a cada 2 segundos.

Pacote de mensagem serial vista no Hyperterminal do Windows.

O programa dsPIC Temperature and Humidity Monitor é visualizado na Figura abaixo. Ele foi desenvolvido no Visual Basic 6.0.

O programa mostra os valores atuais de temperatura, umidade relativa do ar e capacitância.

Também são mostrados o bargraph das variáveis e um gráfico temporário para temperatura e umidade.

O programa dsPIC Temperature and Humidity Monitor.

A cada 1 minuto os valores de temperatura, umidade relativa do ar e capacitância são gravados em um arquivo TXT de data log.

Arquivo TXT de data log.

O gráfico abaixo mostra o resultado de 30 horas de medição com o protótipo do dsPIC Temperature and Humidity Monitor. Os dados do arquivo de data log foram utilizados para montar o gráfico no Excel.

Os dados coletados estão com a resolução de 1 °C, 1 %RH e 1 pF, ou seja, sem as casas decimais, mas podem ser enviados pelo dsPIC com as casas decimais, bastando implementar o código.

Gráfico da temperatura e umidade coletado com o dsPIC.


Observação: os teste foram feitos durante um dia/noite com o tempo nublado a chuvoso.


O protótipo do circuito do dsPIC Temperature and Humidity Monitor em funcionamento pode ser visualizado no vídeo abaixo.







Referencias:

MICROCHIP. dsPIC30F3014/4013 High-Performance, 16-Bit Digital Signal Controllers. Data sheet.
www.microchip.com

ECIL. Tabela de variação da resistência com a temperatura para bulbo de resistência (PT100).
www.ecil.com.br/upload/produto/pdf/1291296955.pdf


Prof. Fernando Lang da Silveira. Umidade relativa: o que é e como se determina? UFRGS/ Centro de Referência para o Ensino de Física - CREF/ Instituto de Física- iF.
http://www.if.ufrgs.br/cref/?area=questions&id=711


HCH-1000 Series Humidity Sensor Calibration and Output Circuit Data. Honeywell. Article.
http://www.digikey.com/en/pdf/h/honeywell-sensing-and-control/hch-1000-series-humidity-sensor-calibration

NE555. xx555 Precision Timers. Texas Instruments. Data sheet.     
www.ti.com/lit/ds/symlink/ne555.pdf             

LM35 Precision Centigrade Temperature Sensors. Texas Instruments. Data sheet. 
www.ti.com/lit/ds/symlink/lm35.pdf