Sensor de temperatura de 1 fio DS1820 em Raspberry Pi (GPIO diretamente)
Para medir a temperatura interna ou externa com o Raspberry Pi, existem várias possibilidades. Este artigo descreve a versão com a quantidade mínima de componentes externos. Isso é baseado no sensor de temperatura DS18S20 e na emulação de software do protocolo de 1 fio.
O DS18S20 e os relacionados DS18B20 e DS1822 são circuitos integrados em um invólucro TO-92 contendo o sensor de temperatura, conversor analógico-digital e interface de 1 fio. Os tipos mencionados são compatíveis com pin e software, eles diferem substancialmente na precisão da medição e no preço. Os três conectores (veja a imagem à esquerda) são aterramento (GND, pino 1), dados (DQ pino 2) e tensão operacional (V DD , pin3). Você pode conectar V DD e GND e opere o sensor com uma fonte de alimentação parasita de 3-5 volts. A conexão do circuito com o computador é então possível com um simples cabo de par trançado de dois fios.
Neste cabo - o barramento de 1 fio - você pode conectar vários DS1820 paralelos. Cada sensor possui um código único atribuído pelo fabricante para se identificar.
Raspberry Pi e 1 fio
A medição de temperatura com o Raspberry Pi e o sensor de temperatura de 1 fio DS1820 contém uma lista de maneiras diferentes de conduzir um barramento de 1 fio do Raspberry Pi. Este artigo descreve a solução (1) com a menor quantidade de circuitos externos. Além dos sensores, é necessário apenas um único resistor, pois esta solução simula completamente o protocolo de 1 fio no software.
Apenas um resistor
A porta de dados DQ do DS1820 é conectada diretamente à porta GPIO4 da interface GPIO do Raspberry Pi. GND e V DD estão no terminal de aterramento GND. A fonte de alimentação parasita realizou um resistor pull-up de 4k7 entre a conexão de 3,3 volts 3V3 e GPIO4.
O resistor, um conector fêmea para conexão à porta GPIO e a conexão de 1 fio são soldados a uma pequena placa de ensaio, que fica diretamente na porta GPIO. A conexão de 1 fio pode ser realizada com um conector fêmea angular que economiza espaço. Tudo isso se encaixa na caixa TEK-BERRY do Raspberry Pi.
drivers de software de 1 fio
Os módulos do kernel necessários para a ativação do sensor de temperatura de 1 fio fazem parte da distribuição Raspbian “wheezy” do Linux. Você deve, no entanto, carregá-los explicitamente:
sudo modprobe w1-gpio pullup =1sudo modprobe w1-therm
Importante é o parâmetro pullup =1 , que informa ao módulo que uma fonte de alimentação parasita por meio de um resistor pull-up está presente. Os módulos criam um subdiretório para cada sensor localizado logo abaixo de / sys / bus / w1 / devices. O nome do diretório é composto pelo código de família do sensor e seu número de identificação único. Os sensores do tipo DS1820 e DS18S20 possuem o Código de Família 10, DS18B20 possui Código 28 e DS1822 o 22. Em cada subdiretório existe o arquivo w1_slave contendo o status do sensor e o valor da temperatura medida:
cd / sys / bus / w1 / devicescd 10-000801b5 * cat w1_slave 0f 00 4b 46 ff ff 06 10 0c:crc =0c YES0f 00 4b 46 ff ff 06 10 0c t =7375
O arquivo consiste em duas linhas, cada uma contendo o registro-dump hexadecimal do IC do sensor. No final da primeira linha está a soma de verificação (CRC) e a informação se é uma leitura válida (SIM). A segunda linha termina com a leitura da temperatura em milésimos de grau Celsius. No exemplo, a temperatura é, portanto, de 7,375 ° C. A precisão de três casas após a vírgula é, obviamente, apenas aparente; a folha de dados do DS18S20 afirma, por exemplo, que a precisão da medição é de apenas ± 0,5 ° C. A temperatura real é algo em qualquer lugar de 6,8 a 7,9 ° C.
Se tudo funcionar até agora, você deve inserir os dois módulos necessários no arquivo / etc / modules para fazê-los carregar automaticamente no momento da inicialização:
# / etc / modulesw1-gpio pullup =1w1-therm
Banco de dados Round Robin RRDtool
Para um registro de longo prazo das leituras de temperatura e geração confortável de gráficos, o uso de RRDtool é recomendado. Os artigos Aquisição de dados meteorológicos com USB WDE1 e Medição de temperatura com Raspberry Pi (USB-serial) explicam esta ferramenta em detalhes.
Primeiro você deve instalar o RRDtool com a ajuda do Gerenciador de Pacotes no Raspberry Pi:
sudo apt-get install rrdtool python-rrdtool
O segundo pacote instalado python-rrdtool é uma interface Python para RRDtool, que será usada posteriormente. No início do trabalho com RRDtool está a definição do banco de dados. O exemplo a seguir cria um banco de dados para dois sensores de temperatura temp0 und temp1 . O objetivo é armazenar um valor por quarto de hora (900 segundos). Após dez dias (=960 valores), ocorre uma redução para um valor médio, mínimo e máximo por dia. O tempo de retenção desses valores diários é de dez anos (=3600 valores):
rrdtool create temperature.rrd --step 900 \ DS:temp0:GAUGE:1200:-40:80 \ DS:temp1:GAUGE:1200:-40:80 \ RRA:AVERAGE:0,5:1:960 \ RRA:MIN:0,5:96:3600 \ RRA:MAX:0,5:96:3600 \ RRA:MÉDIA:0,5:96:3600
Aquisição de dados com Python
Um script Python lê os arquivos especiais w1_slave e insere os valores de temperatura no banco de dados round-robin:
Para mais detalhes:sensor de temperatura de 1 fio DS1820 em Raspberry Pi (GPIO diretamente)
Processo de manufatura
- Registrador de temperatura Raspberry Pi
- Meça temperaturas com um sensor DS18B20 de 1 fio e Raspberry Pi
- Ler a temperatura com DS18B20 | Raspberry Pi 2
- Monitoramento de temperatura no Raspberry Pi
- Medindo a temperatura com RASPBERRY PI
- Biblioteca Python do sensor de temperatura TMP006 usando Raspberry pi,
- Sensor de temperatura Python e Raspberry Pi
- Estação meteorológica Raspberry Pi
- Monitorando a temperatura com Raspberry Pi
- Sensor ultrassônico (HC-SR04) + Raspberry Pi