Índice:
- Etapa 1: Preparando o Hardware
- Etapa 2: Habilitando SSH
- Etapa 3: Instalando Cloud4RPi
- Etapa 4: Conectando o Sensor
- Etapa 5: envio de leituras de sensor para a nuvem
- Etapa 6: gráficos e alarmes
Vídeo: Monitoramento de temperatura e umidade usando Raspberry Pi: 6 etapas (com fotos)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
O verão está chegando, e quem não tem ar-condicionado deve estar preparado para controlar a atmosfera dentro de casa manualmente. Neste post, estou descrevendo a forma moderna de medir os parâmetros mais importantes para o conforto humano: temperatura e umidade. Esses dados coletados são enviados para a nuvem e processados lá.
Estou usando uma placa Raspberry Pi 1 e o sensor DHT22. Você pode fazer o mesmo em qualquer computador que tenha Internet, GPIO e Python. O sensor DHT11 mais barato também funciona bem.
Etapa 1: Preparando o Hardware
Vamos começar do início, já que eu não usei meu Raspberry Pi por um longo tempo.
Nós vamos precisar:
- Placa Raspberry Pi (ou outra plataforma orientada para IoT).
- Cartão SD ou microSD (dependendo da plataforma).
- 5V / 1A via micro-USB.
- Cabo LAN, que fornece conexão com a Internet.
- Monitor HDMI, monitor RCA ou porta UART (para habilitar SSH).
O primeiro passo é baixar o Raspbian. Escolhi a versão Lite, pois vou usar SSH em vez de display. As coisas mudaram desde a última vez que fiz isso: agora existe um ótimo software de gravação chamado Etcher, que funciona perfeitamente e tem um design impressionante.
Depois que a gravação da imagem foi concluída, inseri o cartão SD no meu Pi, conectei os cabos LAN e de alimentação e, depois de um tempo, meu roteador registrou o novo dispositivo.
Etapa 2: Habilitando SSH
SSH está desabilitado por padrão. Posso usar o conversor UART-USB ou apenas conectar um monitor para acessar o shell e habilitar o SSH.
Depois de reiniciar, finalmente estou dentro. Primeiro, vamos atualizar:
sudo apt update && sudo apt upgrade -y
Agora vamos conectar este novo dispositivo à nuvem.
Etapa 3: Instalando Cloud4RPi
Decidi experimentar a plataforma de nuvem chamada Cloud4RPi, que é projetada para IoT.
De acordo com a documentação, precisamos dos seguintes pacotes para fazê-lo funcionar:
sudo apt instalar git python python-pip -y
A biblioteca cliente pode ser instalada em um único comando:
sudo pip install cloud4rpi
Agora precisamos de algum código de amostra para garantir que funcione.
git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python git clone https://gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git e && mv e / minimal.py minimal.py && rmdir -re
Decidi executar o minimal.py, mas não gosto dos dados falsos. Felizmente, percebi uma maneira fácil de tornar os dados de diagnóstico reais neste exemplo. Adicione mais uma importação à seção de importações:
da importação rpi *
Em seguida, exclua essas funções que fornecem dados falsos (o rpi.py os define agora):
def cpu_temp ():
return 70 def ip_address (): return '8.8.8.8' def host_name (): return 'hostname' def os_name (): return 'osx'
Agora precisamos de um token, que permite ao Cloud4RPi vincular os dispositivos às contas. Para obter um, crie uma conta em cloud4rpi.io e clique no botão Novo dispositivo nesta página. Substitua a string _YOUR_DEVICE_TOKEN_ no arquivo minimal.py pelo token do seu dispositivo e salve o arquivo. Agora estamos prontos para o primeiro lançamento.
python minimal.py
Abra a página do dispositivo e verifique se os dados estão lá.
Agora vamos passar para os dados do mundo real.
Etapa 4: Conectando o Sensor
Nós vamos precisar:
- Sensor de umidade DHT22 ou DHT11
- Resistência de pull-up (5-10 KΩ)
- Fios
O sensor DHT22 mede temperatura e umidade simultaneamente. O protocolo de comunicação não é padronizado, então não precisamos habilitá-lo no raspi-config - um simples pino GPIO é mais do que suficiente.
Para adquirir os dados, usarei a ótima biblioteca da Adafruit para sensores DHT, mas pode não funcionar como está. Certa vez, encontrei um estranho atraso constante no código, que não funcionava para o meu hardware e, depois de dois anos, minha solicitação de pull ainda estava pendente. Também mudei as constantes de detecção de placa porque meu Raspberry Pi 1 com BCM2835 foi surpreendentemente detectado como Raspberry Pi 3. Gostaria que fosse verdade … Portanto, recomendo usar meu garfo. Se você tiver algum problema com ele, tente o repositório original, talvez funcione para alguém, mas eu não sou um deles.
git clone https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT
Como a biblioteca é escrita em C, ela requer compilação, então você precisa dos pacotes build-essential e python-dev.
sudo apt install build-essential python-dev -ysudo python setup.py install
Enquanto os pacotes estão sendo instalados, conecte o DHT22 conforme mostrado na imagem.
E teste:
cd ~ python -c "importar Adafruit_DHT como d; imprimir d.read_retry (d. DHT22, 4)"
Se você vir algo como (39.20000076293945, 22.600000381469727), você deve saber que esta é a umidade em porcentagens e a temperatura em Celsius.
Agora, vamos montar tudo!
Etapa 5: envio de leituras de sensor para a nuvem
Vou usar o minimal.py como base e adicionar a interação DHT22 nele.
cd cloud4rpi-raspberrypi-python
cp minimal.py ~ / cloud_dht22.py cp rpi.py ~ / rpi.py cd vi cloud_dht22.py
Como o DHT22 retorna temperatura e umidade em uma única chamada, eu os armazeno globalmente e os atualizo apenas uma vez em uma solicitação, supondo que o atraso entre eles seja de mais de 10 segundos. Considere o seguinte código, que adquire os dados DHT22:
importar Adafruit_DHT
temp, hum = Nenhum, Nenhum last_update = time.time () - 20 def update_data (): last_update global, hum, temp if time.time () - last_update> 10: hum, temp = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22, 4) last_update = time.time () def get_t (): update_data () return round (temp, 2) se temp não for None else None def get_h (): update_data () return round (hum, 2) se hum não for Nenhum outro Nenhum
Insira este código após as importações existentes e edite a seção de variáveis para que ela use as novas funções:
variáveis = {
'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Humidity': {'type': 'numeric', 'bind': get_h}, 'CPU Temp': {'type ':' numérico ',' vincular ': cpu_temp}}
Aperte o botão vermelho para iniciar a transferência de dados:
python cloud_dht22.py
Então você pode verificar a página do dispositivo.
Pode deixar como está, mas prefiro ter um serviço para tudo. Isso garante que o script esteja sempre em execução. Criação de um serviço com o script totalmente automatizado:
wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py
Iniciando o serviço:
sudo service cloud4rpi start
E verificando:
pi @ raspberrypi: ~ $ sudo service cloud4rpi status -l
● cloud4rpi.service - Cloud4RPi daemon Carregado: carregado (/lib/systemd/system/cloud4rpi.service; habilitado) Ativo: ativo (em execução) desde Quarta 2016-05-17 20:22:48 UTC; 1min atrás PID principal: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560 / usr / bin / python /home/pi/cloud_dht22.pyMay 17 20:22:51 raspberrypi python [560]: Publishing iot -hub / messages: {'type': 'config', 'ts': '2017-05-17T20… y'}]} 17 de maio 20:22:53 raspberrypi python [560]: Publicação iot-hub / messages: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17 de maio 20:22:53 raspberrypi python [560]: Publicação iot-hub / messages: {'type': 'sistema', 'ts': '2017-05-17T20….4'}}
Se tudo funcionar como esperado, podemos continuar e usar os recursos da plataforma Cloud4RPi para manipular os dados.
Etapa 6: gráficos e alarmes
Em primeiro lugar, vamos representar graficamente as variáveis para ver como elas mudam. Isso pode ser feito adicionando um novo painel de controle e colocando nele os gráficos necessários.
Outra coisa que podemos fazer aqui é definir um Alerta. Este recurso permite que você configure o intervalo seguro para uma variável. Assim que o intervalo é ultrapassado, ele envia uma notificação por e-mail. Na página de edição do Painel de controle, você pode alternar para Alertas e configurar um.
Em seguida, a umidade do meu quarto começou a diminuir rapidamente sem nenhum motivo perceptível, e o alarme logo seguiu.
Você pode usar o Cloud4RPi gratuitamente com qualquer hardware capaz de executar Python. Quanto a mim, agora sempre sei quando devo ligar o umidificador de ar, e posso até conectá-lo a um relé para controle remoto via Cloud4RPi. Estou preparado para o calor! Bem-vindo verão!
Recomendado:
Monitoramento de temperatura e umidade usando NODE MCU E BLYNK: 5 etapas
Monitoramento de temperatura e umidade usando NODE MCU E BLYNK: Oi pessoal, neste instrutível, vamos aprender como obter a temperatura e umidade da atmosfera usando o sensor de temperatura e umidade DHT11 usando o aplicativo Node MCU e BLYNK
Monitoramento de temperatura e umidade DHT usando o ESP8266 e a plataforma AskSensors IoT: 8 etapas
Monitoramento de temperatura e umidade DHT usando o ESP8266 e a plataforma AskSensors IoT: Em um instrutível anterior, apresentei um guia passo a passo para começar a usar o NodeMCU ESP8266 e a plataforma AskSensors IoT. Neste tutorial, estou conectando um sensor DHT11 para o nó MCU. O DHT11 é uma temperatura e umidi
Monitoramento de temperatura e umidade usando o ESP-01 & DHT e o AskSensors Cloud: 8 etapas
Monitoramento de temperatura e umidade usando ESP-01 & DHT e AskSensors Cloud: Neste instrutível, vamos aprender como monitorar as medições de temperatura e umidade usando a placa IOT-MCU / ESP-01-DHT11 e a plataforma AskSensors IoT .Estou escolhendo o módulo IOT-MCU ESP-01-DHT11 para esta aplicação porque
Monitoramento de temperatura do Nodemcu ESP8266 usando DHT11 em um servidor da Web local - Obtenha a temperatura e umidade da sala no seu navegador: 6 etapas
Monitoramento de temperatura Nodemcu ESP8266 usando DHT11 em um servidor da Web local | Obtenha a temperatura e umidade da sala no seu navegador: Olá, pessoal, hoje vamos fazer um teste de umidade & sistema de monitoramento de temperatura usando ESP 8266 NODEMCU & Sensor de temperatura DHT11. A temperatura e a umidade serão obtidas no DHT11 Sensor & pode ser visto em um navegador cuja página da web será gerenciada
Monitoramento de temperatura e umidade usando SHT25 e Raspberry Pi: 5 etapas
Monitoramento de temperatura e umidade usando SHT25 e Raspberry Pi: Recentemente, trabalhamos em vários projetos que exigiam monitoramento de temperatura e umidade e, então, percebemos que esses dois parâmetros realmente desempenham um papel fundamental na estimativa da eficiência de funcionamento de um sistema. Tanto na indústria