Como usar um Raspberry Pi para controlar o calor na sua casa

13 Comentários

Nas estações mais frias gostamos de chegar a casa e poder sentir o conforto de uma temperatura ideal e constante, e como para muitas famílias não é pratico estar sempre a acender a lareira, usamos os aquecedores, uma fonte de calor relativamente rápida, constante e regulável.

O problema de muitas famílias no mundo é mesmo o consumo deste tipo de equipamentos. Muitas vezes esquecemos-nos de os desligar, ou estes atingem temperaturas mais elevadas do que o estritamente necessário.

Sabia que com apenas um Raspberry Pi, umas tomadas e uns relés, podemos ter um sistema que nos faz poupar imenso tempo e dinheiro?

Se ainda não tem um RPI3, veja aqui a nossa promoção.

rpi_00


Este projeto tem o objetivo de manter a temperatura +/- constante de uma divisão. Utiliza sondas DHT22 e DS18B20 e com intervalos de atualização de 30 em 30 segundos.

Devido à incerteza das sondas DHT22, pois elas nem sempre dão os valores, o código em Python consegue contornar essas situações. Caso uma situação dessas aconteça o Raspberry Pi ficará a recolher valores da DHT22 em ciclos de 3 segundos até obter valores válidos.

rpi_01

Requisitos

Para a elaboração deste projecto, necessitamos dos seguintes equipamentos:

  • Raspberry Pi
  • [DS18B20]
  • [DHT22]

Instalação

Primeiro de tudo certifique-se  que o seu Raspberry Pi está atualizado.

sudo apt-get update
sudo apt-get upgrade

Após a atualização devemos proceder ao download dos drives da DHT22.

$ git clone git://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git
$ cd Adafruit-Raspberry-Pi-Python-Code
$ cd Adafruit_DHT_Driver

Para se certificar que a sonda está 100% instalada execute o seguinte comando

O “2302” é o tipo de sonda e o “4” é o PIN  a que a sua DHT22 está ligada na GPIO do seu Raspberry Pi.

sudo ./Adafruit_DHT 2302 4

Caso não obtenha valores válidos verifique a ligação dos pinos da sonda.

rpi_04

Tendo a DHT22 a funcionar correctamente, temos agora de verificar se as DS18B20 estão funcionando como esperado.

$ cd /sys/bus/w1/devices/
$ ls

Deverá ver agora uns “números estranhos”. Calma, isso apenas são os IDs da sondas ligadas ao Raspberry Pi.

Deverá apontar esses valores para editar nos ficheiros “.py”.

Após apontar os ID’s desejados devemos efectuar os seguintes comandos. Ao copiar para a sua janela de SSH retire os “<” e “>”.

$ cd <ID da sonda>
$ cat w1_slave

Deverá obter um valor “t=temperatura”, acha o valor muito grande? Calma, está multiplicado por 1000.

Agora vamos efectuar o download dos ficheiros necessários.

$ cd
$ git clone git://github.com/adrianobrum/Aquecimento-Central.git
$ cd Aquecimento-Central
$ ls

Poderá verificar que existe dois ficheiros idênticos, o “temp_data.py” e “temp_control.py”. – “temp_data.py” – Ficheiro que será utilizado para obter informações das sondas. – “temp_control.py” – Ficheiro que irá controlar as saídas GPIO do Raspberry Pi. Agora será feita a edição do ficheiro “temp_data.py”. Basta alterar os ID’s entre os “<>”.

$ sudo nano temp_data.py

Basta alterar os ID’s entre os “<>”.

device_folder_in = glob.glob( base_dir + '<ID da sonda 1>' )[0]
device_file_in = device_folder_in + '/w1_slave'
device_folder_out = glob.glob( base_dir + '<ID da sonda 2>' )[0]
device_file_out = device_folder_out + '/w1_slave'

Agora temos de editar o ficheiro de controlo, “temp_control.py”. Basta alterar os IDs entre os “<>” e as temperaturas no final do ficheiro.

os.system( 'modprobe w1-gpio' )
os.system( 'modprobe w1-therm' )
base_dir = '/sys/bus/w1/devices/'
device_folder = glob.glob( base_dir + '<ID da sonda 1>' )[0]
device_file = device_folder + '/w1_slave'
ledMode( 17, GPIO.HIGH if temp1 < 21 and temp_c1 <= 19 else GPIO.LOW )
ledMode( 18, GPIO.HIGH if temp1 < 21 and temp_c1 <= 20 else GPIO.LOW )

rpi_02
Após a edição, caso deseje executar o ficheiro quando o Raspberry Pi iniciar deverá abrir o “cron”.

$ crontab –e

E adicionar a seguinte linha no final.

@reboot sudo python /home/pi/temp_control.py

Agora deite-se no sofá e aprecie a temperatura do interior da sua casa. Alguma dúvida, questão ou sugestão podem contactar o autor através da seguinte desta página.

Comentários

13

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Gonçalo
    Gonçalo

    Bom tutorial para a parte de SW,
    Falta apenas a faltar relativa ao HW. Diria que a maioria dos utilizadores que vêm este tutorial vão procurar o que são estes sensores e agora ficam a pensar: o que faço com isto? ligo onde?

  2. Avatar de Gonçalo
    Gonçalo

    Bom tutorial para a parte de SW,
    Falta apenas a parte relativa ao HW. Diria que a maioria dos utilizadores que vêm este tutorial vão procurar o que são estes sensores e agora ficam a pensar: o que faço com isto? ligo onde?

    1. Avatar de Pedro Pinto

      Já pedimos essa informação ao autor. Faz sentido 🙂

  3. Avatar de ntunix
    ntunix

    Gosto deste tipo de artigos e compreendo que queiram promover o Raspberry PI, mas usar um RPi é demasiado overkill. Bastava um simples microcontrolador ou, no máximo um Arduino.

    1. Avatar de Adriano Brum
      Adriano Brum

      Tens toda a razão, mas o projeto não está completo. Falta o controlo pela internet e a instalação do LCD. Em breve irei entregar essas instruções aos administradores. 🙂

      1. Avatar de Gonçalo
        Gonçalo

        Se já tinha gostado do artigo, assim ainda vou gostar mais!

        Para adquirir estes componentes recomendam algum site?

        1. Avatar de Cristiano Alves
          Cristiano Alves

          inMotion

        2. Avatar de pinto
          pinto

          Boxelectronica.com

    2. Avatar de Charles
      Charles

      +1
      Com arduino, ficaria mais fácil e interessante.
      Para quem percebe bastante de electrónica, o artigo não acrescenta nada.
      Para quem não percebe, é muito vago e pouco explícito.
      Mas valeu a intenção!

      1. Avatar de Makvrski
        Makvrski

        eu nao percebo nada de electronica e achei que o assembly foi feito por magicos

  4. Avatar de IR
    IR

    Bom post, mas para quê complicar quando existe um software pode fazer isso tudo.
    vejam o DOMOTICZ
    Em constante desenvolvimento, com versões beta, e um fórum e WIKI concorrido.

    1. Avatar de Ricardo
      Ricardo

      oi,
      sabes se posso ter este software instalado e correr Kodi na mesma ?
      e que hardware necessito ? o mesmo indicado aqui ?

  5. Avatar de Pedro Baço
    Pedro Baço

    Eu usaria o HTU21D, temperatura e humidade no mesmo sensor, e I2C, bem mais fácil de manipular no python