Tutorial sobre sensor de temperatura Raspberry Pi DS18B20

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


O sensor de temperatura DS18B20 é perfeito para projetos como estações meteorológicas e sistemas de automação residencial. Poucos sensores são fáceis de configurar no Raspberry Pi. Eles têm o mesmo tamanho de um transistor e usam apenas um fio para o sinal de dados. Eles também são extremamente precisos e fazem medições rapidamente. O único outro componente necessário é um resistor de 4.7K Ohm ou 10K Ohm.

Tutorial sobre sensor de temperatura Raspberry Pi DS18B20 1

Neste tutorial, mostrarei como conectar o DS18B20 ao seu Raspberry Pi e exibir as leituras de temperatura no terminal SSH ou em um monitor LCD.

Peças usadas neste tutorial:

BÔNUS: Fiz um guia de início rápido para este tutorial, que você pode baixar e voltar mais tarde, se não puder configurá-lo agora. Ele abrange todas as etapas, diagramas e códigos que você precisa para começar.

Sensores de temperatura digitais vs. Sensores de temperatura analógicos

Sensores de temperatura digitais como o DS18B20 diferem dos termistores analógicos de várias maneiras importantes. Nos termistores, as mudanças de temperatura causam alterações na resistência de um material semicondutor de cerâmica ou polímero. Normalmente, o termistor é configurado em um divisor de tensão e a tensão é medida entre o termistor e um resistor conhecido. A medição de tensão é convertida em resistência e depois convertida em um valor de temperatura pelo microcontrolador.

Sensores digitais de temperatura são tipicamente circuitos integrados baseados em silício. A maioria contém o sensor de temperatura, um conversor analógico para digital (ADC), memória para armazenar temporariamente as leituras de temperatura e uma interface que permite a comunicação entre o sensor e um microcontrolador. Ao contrário dos sensores analógicos de temperatura, os cálculos são realizados pelo sensor e a saída é um valor real da temperatura.

Leia Também  Otimize a estrutura de vídeos - mais cliques do YouTube 5

Sobre o DS18B20

O DS18B20 se comunica com o protocolo de comunicação “Um fio”, um protocolo de comunicação serial proprietário que usa apenas um fio para transmitir as leituras de temperatura ao microcontrolador.

O DS18B20 pode ser operado no que é conhecido como poder parasita modo. Normalmente, o DS18B20 precisa de três fios para operação: os fios Vcc, terra e dados. No modo parasita, apenas as linhas de terra e de dados são usadas e a energia é fornecida através da linha de dados.

O DS18B20 também possui uma função de alarme que pode ser configurada para emitir um sinal quando a temperatura ultrapassa um limite alto ou baixo definido pelo usuário.

Uma ROM de 64 bits armazena o código serial exclusivo do dispositivo. Esse endereço de 64 bits permite que um microcontrolador receba dados de temperatura de um número praticamente ilimitado de sensores no mesmo pino. O endereço informa ao microcontrolador de qual sensor está vindo um determinado valor de temperatura.

Especificações técnicas

  • -55 ° C a 125 ° C
  • Tensão de operação de 3.0V a 5.0V
  • Amostragem de 750 ms
  • 0,5 ° C (9 bits); 0,25 ° C (10 bits); 0,125 ° C (11 bits); Resolução de 0,0625 ° C (12 bits)
  • Endereço único de 64 bits
  • Protocolo de comunicação de um fio

Para obter mais detalhes sobre o tempo, a configuração da energia do parasita e a configuração do alarme, consulte a folha de dados:

Circuito básico PDF ícone DS18B20 Ficha técnica

Você também pode assistir a versão em vídeo deste tutorial aqui:

Conecte o DS18B20 ao Raspberry Pi

O DS18B20 possui três pinos separados para terra, dados e Vcc:

Tutorial do Raspberry Pi DS18B20 - Diagrama de pinagem DS18B20

Fiação para saída do terminal SSH

Siga este diagrama de fiação para emitir a temperatura para um terminal SSH:

Diagrama de conexão Raspberry Pi DS18B20

R1: resistor de 4.7K Ohm ou 10K Ohm

Fiação para saída de LCD

Siga este diagrama para enviar as leituras de temperatura para um LCD:

Saída para Raspberry Pi DS18B20 LCD

R1: resistor de 4.7K Ohm ou 10K Ohm

Para obter mais informações sobre o uso de um LCD no Raspberry Pi, consulte nosso tutorial Instalação e programação de LCD do Raspberry Pi em Python.

Leia Também  5 dicas de saúde para empreendedores e autônomos

Habilitar a interface de um fio

Precisamos ativar a interface One-Wire antes que o Pi possa receber dados do sensor. Depois de conectar o DS18B20, ligue seu Pi e faça login e siga estas etapas para ativar a interface One-Wire:

1. No prompt de comando, digite: sudo nano /boot/config.txte adicione isso na parte inferior do arquivo:

dtoverlay=w1gpio

2. Saia do Nano e reinicie o Pi (reinicialização do sudo)

3. Faça logon no Pi novamente e, no prompt de comando, digite sudo modprobe w1gpio

4. Em seguida, digite sudo modprobe w1-termo

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

5. Altere os diretórios para o diretório / sys / bus / w1 / devices, digitando: CD /sys/ônibus/w1/dispositivos

6. Agora digite ls para listar os dispositivos:

Tutorial sobre sensor de temperatura Raspberry Pi DS18B20 - endereço de um dispositivo

28-000006637696 w1_bus_master1 é exibido no meu caso.

7. Agora digite CD 28.-XXXXXXXXXXXX (altere os Xs para seu próprio endereço)

Por exemplo, no meu caso, eu digitaria: cd 28-000006637696

8. Digite gato w1_slave que mostrará a saída bruta de leitura de temperatura pelo sensor:

Tutorial sobre sensor de temperatura Raspberry Pi DS18B20 - Saída bruta DS18B20

Aqui a leitura da temperatura é t = 28625, o que significa uma temperatura de 28.625 graus Celsius.

9. Digite CD para retornar ao diretório raiz

Isso é tudo o que é necessário para configurar a interface de uma conexão. Agora você pode executar um dos programas abaixo para gerar a temperatura em um terminal SSH ou em um LCD…

Programando o sensor de temperatura

Os exemplos abaixo estão escritos em Python. Se esta é a primeira vez que você executa um programa Python, consulte nosso tutorial Como escrever e executar um programa Python no Raspberry Pi para ver como salvar e executar arquivos Python.

Saída de temperatura para o terminal SSH

Este é um programa básico do Python que fornecerá as leituras de temperatura em Fahrenheit e Celsius no seu terminal SSH:

import os
import glob
import time
 
os.system('modprobe w1-gpio')
os.system('modprobe w1-therm')
 
base_dir = '/sys/bus/w1/devices/'
device_folder = glob.glob(base_dir + '28*')[0]
device_file = device_folder + '/w1_slave'
 
def read_temp_raw():
    f = open(device_file, 'r')
    lines = f.readlines()
    f.close()
    return lines
 
def read_temp():
    lines = read_temp_raw()
    while lines[0].strip()[-3:] != 'YES':
        time.sleep(0.2)
        lines = read_temp_raw()
    equals_pos = lines[1].find('t=')
    if equals_pos != -1:
        temp_string = lines[1][equals_pos+2:]
        temp_c = float(temp_string) / 1000.0
        temp_f = temp_c * 9.0 / 5.0 + 32.0
        return temp_c, temp_f
	
while True:
	print(read_temp())	
	time.sleep(1)
	

Tutorial do sensor de temperatura Raspberry Pi DS18B20 - Saída de temperatura para o terminal SSH

Saída de temperatura para um LCD

Usaremos uma biblioteca Python chamada RPLCD para controlar o LCD. A biblioteca RPLCD pode ser instalada a partir do Python Package Index ou PIP. O PIP já pode estar instalado no seu Pi, mas se não, digite-o no prompt de comando para instalá-lo:

Leia Também  1 ano de nicho no site "microfone e podcast" - desenvolvimento, classificações, receita ...

O sudo apt-get instala o python-pip

Depois de instalar o PIP, instale a biblioteca RPLCD digitando:

instalação do RPLCD do sudo pip

Depois de instalar a biblioteca, você pode executar este programa para gerar a temperatura em um monitor LCD:

import os
import glob
import time
from RPLCD import CharLCD

lcd = CharLCD(cols=16, rows=2, pin_rs=37, pin_e=35, pins_data=[33, 31, 29, 23])

os.system('modprobe w1-gpio')
os.system('modprobe w1-therm')

base_dir = '/sys/bus/w1/devices/'
device_folder = glob.glob(base_dir + '28*')[0]
device_file = device_folder + '/w1_slave'

def read_temp_raw():
    f = open(device_file, 'r')
    lines = f.readlines()
    f.close()
    return lines

#CELSIUS CALCULATION
def read_temp_c():
    lines = read_temp_raw()
    while lines[0].strip()[-3:] != 'YES':
        time.sleep(0.2)
        lines = read_temp_raw()
    equals_pos = lines[1].find('t=')
    if equals_pos != -1:
        temp_string = lines[1][equals_pos+2:]
        temp_c = int(temp_string) / 1000.0 # TEMP_STRING IS THE SENSOR OUTPUT, MAKE SURE IT'S AN INTEGER TO DO THE MATH
        temp_c = str(round(temp_c, 1)) # ROUND THE RESULT TO 1 PLACE AFTER THE DECIMAL, THEN CONVERT IT TO A STRING
        return temp_c

#FAHRENHEIT CALCULATION
def read_temp_f():
    lines = read_temp_raw()
    while lines[0].strip()[-3:] != 'YES':
        time.sleep(0.2)
        lines = read_temp_raw()
    equals_pos = lines[1].find('t=')
    if equals_pos != -1:
        temp_string = lines[1][equals_pos+2:]
        temp_f = (int(temp_string) / 1000.0) * 9.0 / 5.0 + 32.0 # TEMP_STRING IS THE SENSOR OUTPUT, MAKE SURE IT'S AN INTEGER TO DO THE MATH
        temp_f = str(round(temp_f, 1)) # ROUND THE RESULT TO 1 PLACE AFTER THE DECIMAL, THEN CONVERT IT TO A STRING
        return temp_f

while True:

    lcd.cursor_pos = (0, 0)
    lcd.write_string("Temp: " + read_temp_c() + unichr(223) + "C")
    lcd.cursor_pos = (1, 0)
    lcd.write_string("Temp: " + read_temp_f() + unichr(223) + "F")

Tutorial sobre sensor de temperatura Raspberry Pi DS18B20 - Saída LCD DS18B20

Isso deve ser o suficiente! Espero que você tenha achado útil. Inscreva-se para receber um e-mail sempre que publicarmos um novo tutorial. Sinta-se livre para compartilhá-lo, se você conhece alguém que gostaria disso … E, como sempre, informe-nos nos comentários se tiver algum problema para configurá-lo!

Publicações imperdíveis:
https://responsibleradio.com/sera-que-as-empresas-de-tecnologia-ja-adotaram-a-etica-com-seriedade/

https://draincleaningdenverco.com/como-criar-um-site-ou-blog-a-partir-do-zero/

https://weeventos.com.br/alias-para-usando-diretivas-e-namespaces-em-c/

https://clipstudio.com.br/charles-ong-sessao-de-perguntas-e-respostas-de-junho-de-2015/

https://multieletropecas.com.br/eletronicos-para-cozinha/

https://holidayservice-tn.com/o-lado-brilhante-e-obscuro-do-anonimato-um-apelo-para-uma-responsabilidade-mais-pessoal-lifestyle-x/

https://teleingressos.com.br/nos-nao-podemos-viver-como-vizinhos-ricos-entao-meu-marido-quer-me-mentir/

https://proverasfestas.com.br/a-importancia-da-comunicacao-visual-no-marketing/

https://coniferinc.com/usando-a-mistura-de-marketing-para-controlar-o-sucesso/

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br