Registrador de dados de temperatura usando Raspberry Pi Pico e sensor de temperatura DHT22

Tempo de leitura: 3 minutes

Com o monitoramento de temperatura, você pode facilmente monitorar, rastrear e gerar gráficos para entender as tendências diárias de temperatura. O monitoramento de dados e a geração de tendências é uma das principais aplicações no campo da Internet das Coisas. Internet das Coisas é a capacidade de conectar qualquer dispositivo através da internet. Cada dispositivo pode ser programado para uma ou mais aplicações. O monitoramento de temperatura é um dos aplicativos mais conhecidos e amplamente utilizados por muitos setores para monitorar a temperatura da sala do servidor, as tendências de temperatura do ambiente e assim por diante. Eu uso o armazenamento interno do Pico para armazenar os dados com o carimbo de hora em um novo formato de linha. Isso economiza o custo de um módulo de cartão SD externo e cartão de memória. O Pico oferece liberdade para selecionar o tipo de arquivo e permite que os usuários armazenem os dados em um formato fácil e amigável.

 

Requisito de componente para registrador de dados de monitoramento de temperatura

Hardware usado pelo projeto

  • Raspberry Pi Pico
  • DHT22
  • Módulo RTC – DS3231

Software usado pelo projeto

  • Thonny IDE – Python

 

Seleção de Software de Hardware de Projeto

Raspberry Pi Pico – Raspberry Pi Pico é uma placa pequena, rápida e versátil desenvolvida pela Raspberry Pi. É construído usando RP2040, um novo microcontrolador que suporta ambiente Python Pico usa Arm córtex (processador) que é projetado para aplicações pequenas e acessíveis Pico é desenvolvido com uma ampla gama de opções programáveis I/O, UART, I2C, SPI, etc

DHT22 – Sensor de temperatura e umidade DHT22 é um sensor digital de temperatura e umidade de baixo custo. Ele mede a temperatura e a umidade do ar circundante com uma taxa de atualização de 2 segundos DHT22 funciona em 3 a 5V e usa 2,5mA de corrente máxima Faixa de temperatura: -40 a +80 graus Celsius com uma precisão de 0,5 graus Faixa de umidade: 0-100% com uma precisão de 2-5%

DS3231 Módulo RTC – Módulo de hora e relógio baseado em I2C: DS3231, é usado para medir hora e data. É alimentado de forma independente e funcionou no protocolo I2C.

Thonny IDE – Software leve e fácil de usar Suporta Python 3.7 e muito fácil de instalar Depurador simples, explica escopos, destaca erros de sintaxe e textos

 

Diagrama de circuito

Estou usando o módulo DHT22 e RTC – DS3231 com interface com Raspberry Pi Pico Conexões DHT22 com Pico – os pinos de alimentação são conectados com vcc e terra, respectivamente, os dados do DHT22 são conectados com o pino 15 no Pico RTC – conexões DS3231 com Pico – os pinos de alimentação são conectados com vcc e terra, respectivamente, os pinos SDA e SCL são conectados no SCL e SDA no Pico.

# Mais de 30.000 pontos de dados podem ser armazenados.
# Exemplo prático: Salvar dados a cada minuto dará
# Tempo aproximado de backup = 30000/1/60/24 = aproximadamente 20 dias de backup
from machine import Pin, I2C
from DHT22 import DHT22
from urtc import DS3231
import time
# Inicializando I2C
i2crtc = I2C(0, scl=Pin(21), sda=Pin(20), freq=100000)
exRTC = DS3231(i2crtc)
# Obtendo data e hora do RTC
pDT = exRTC.datetime()
print("Data e Hora Atual:", pDT)
# Inicializando Pino DHT22
dht22 = DHT22(Pin(15, Pin.IN, Pin.PULL_UP))
while True:
    # Leitura de temperatura e umidade do DHT22
    T, H = dht22.read()
    # Obtendo data e hora do RTC
    pDT = exRTC.datetime()
    print(pDT[0], pDT[1], pDT[2], pDT[3], pDT[4], pDT[5], pDT[6], T, H)
    # Fazendo backup de dados no armazenamento interno na sintaxe abaixo
    # ano, mês, dia, dia da semana, hora, minuto, segundo, temperatura, umidade
    with open('Databackup.txt', 'a+') as file:
        file.write(str(pDT[0]) + ", " + str(pDT[1]) + ", " + str(pDT[2]) + ", " + str(pDT[3]) + ", " +
                   str(pDT[4]) + ", " + str(pDT[5]) + ", " + str(pDT[6]) + ", " + str(T) + ", " + str(H))
        file.write('\n')
        file.close()
    # Como o DHT22 atualiza a temperatura e a umidade a cada 2 segundos
    time.sleep(2)