Índice:

Controle inteligente do ventilador Raspberry Pi usando Python e Thingspeak: 7 etapas
Controle inteligente do ventilador Raspberry Pi usando Python e Thingspeak: 7 etapas

Vídeo: Controle inteligente do ventilador Raspberry Pi usando Python e Thingspeak: 7 etapas

Vídeo: Controle inteligente do ventilador Raspberry Pi usando Python e Thingspeak: 7 etapas
Vídeo: Raspberry Pi Pico W WiFi Robot - Fácil con MicroPython - Paso a paso en Español 2024, Novembro
Anonim
Controle inteligente do ventilador Raspberry Pi usando Python e Thingspeak
Controle inteligente do ventilador Raspberry Pi usando Python e Thingspeak

Breve visão geral

Por padrão, o ventilador está diretamente conectado ao GPIO - isso implica em seu funcionamento constante. Apesar da operação relativamente silenciosa do ventilador, sua operação contínua não é um uso eficaz de um sistema de resfriamento ativo. Ao mesmo tempo, a operação constante de um ventilador pode ser irritante. Além disso, se o Raspberry Pi estiver desligado, o ventilador ainda funcionará se a energia estiver conectada.

Este artigo mostrará como, usando manipulações simples e não complicadas, transformar um sistema de refrigeração existente em um sistema inteligente, que só será ligado quando o processador realmente precisar. O ventilador será ligado apenas quando houver uso intenso, reduzindo o consumo de energia do ventilador e o ruído. Também prolongando a vida útil do ventilador, mantendo-o desligado quando não for necessário.

O que você aprenderá

Como implementar um script Python para controlar um ventilador com base na temperatura atual da CPU do Raspberry usando o controle On-Off com histerese de temperatura. Como transportar dados do seu RaspberryPi para a Things Speak Cloud.

Suprimentos

Os componentes necessários para este projeto são os seguintes

  • Raspberry Pi 4 Computador Modelo B 4 GB
  • Transistor NPN S8050330 resistor ohms
  • Caixa de metal de alumínio armadura com ventiladores duplos para Raspberry Pi
  • Cabos jumper
  • Tábua de pão

Etapa 1: Construindo o Circuito

Construindo o Circuito
Construindo o Circuito
Construindo o Circuito
Construindo o Circuito

O circuito é bem simples. A energia para o ventilador é cortada usando um transistor NPN. Nesta configuração, o transistor está atuando como uma chave do lado inferior. O resistor só é necessário para limitar a corrente por meio do GPIO. O GPIO do Raspberry Pi tem uma saída de corrente máxima de 16 mA. Usei 330 ohms, o que nos dá uma corrente de base de cerca de (5-0,7) / 330 = 13mA. Eu selecionei um transistor NPN S8050, então trocar uma carga de 400mA de ambas as ventoinhas não é problema.

Etapa 2: registrar a temperatura da CPU com o ThingSpeak

Log de temperatura da CPU com ThingSpeak
Log de temperatura da CPU com ThingSpeak

ThingSpeak é uma plataforma para projetos baseada no conceito de Internet das Coisas. Esta plataforma permite que você crie aplicativos com base em dados coletados de sensores. Os principais recursos do ThingSpeak incluem: coleta de dados em tempo real, processamento e visualização de dados. A API ThingSpeak não só permite enviar, armazenar e acessar dados, mas também fornece vários métodos estatísticos para processá-los.

ThingSpeak pode integrar dispositivos e serviços populares, como:

  • Arduino
  • Pii de framboesa
  • oBridge / RealTime.io
  • Imp elétrico
  • Aplicativos móveis e da web
  • Redes sociais
  • Análise de dados em MATLAB

Antes de começarmos, você precisa de uma conta no ThingSpeak.

  1. Acesse o link a seguir e inscreva-se no ThingSpeak.
  2. Após a ativação da sua conta, faça login.
  3. Vá para Canais -> Meus Canais
  4. Clique no botão Novo canal.
  5. Insira o nome, a descrição e os campos dos dados que deseja enviar
  6. Clique no botão Salvar canal para salvar todas as suas configurações.

Precisamos de uma chave de API, que mais tarde adicionaremos ao código Python para fazer o upload de nossa temperatura de CPU para a nuvem Thingspeak.

Clique na guia Chaves de API para obter a Chave de API de gravação

Assim que você tiver a Write API Key, estamos quase prontos para fazer o upload de nossos dados.

Etapa 3: Obtendo a temperatura da CPU de um Raspberry Pi usando Python

O script é baseado na recuperação da temperatura do processador, o que ocorre a cada segundo. Ele pode ser obtido no terminal executando o comando vcgencmd com o parâmetro measure_temp.

vcgencmd measure_temp

A biblioteca Subprocess.check_output () foi usada para executar o comando e, em seguida, usando a expressão regular para extrair o valor real da string retornada.

da importação do subprocesso check_output

de reimportar findalldef get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). decode () temp = float (findall ('\ d + \. / d +', temp) [0]) return (temp)) print (get_temp ())

Depois que o valor da temperatura é obtido, os dados precisam ser enviados para a nuvem ThingSpeak. Use sua Write API Key para alterar a variável myApi no código Python abaixo.

da solicitação de importação urllib

de reimportar findall do tempo importar dormir do subprocesso importar check_output myAPI = '###################' baseURL = 'https://api.thingspeak.com/update?api_key=% s '% myAPIdef get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). decode () temp = float (findall (' / d + \. / d + ', temp) [0]) return (temp)) try: while True: temp = get_temp () conn = request.urlopen (baseURL + '& field1 =% s'% (temp)) print (str (temp)) conn.close () sleep (1) exceto KeyboardInterrupt: print ("Sair pressionado Ctrl + C")

Etapa 4: controle do ventilador com base na temperatura

O script Python mostrado abaixo implementa a lógica que liga o ventilador quando a temperatura sobe acima de tempOn e desliga apenas quando a temperatura cai abaixo do limite. Dessa forma, o ventilador não liga e desliga rapidamente.

importar RPi. GPIO como GPIO

import sys from re import findall from time import sleep from subprocess import check_output def get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). decode () temp = float (findall ('\ d + \. / d + ', temp) [0]) return (temp) try: GPIO.setwarnings (False) tempOn = 50 threshold = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, initial = 0) enquanto True: temp = get_temp () if temp> tempOn e não pinState ou temp <tempOn - threshold e pinState: pinState = not pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) sleep (1) exceto KeyboardInterrupt: print ("Sair pressionado Ctrl + C") exceto: print ("Outra Exceção") print ("--- Iniciar Dados de Exceção:") traceback.print_exc (limit = 2, file = sys.stdout) print ("--- End Exception Data:") finally: print ("CleanUp") GPIO.cleanup () print ("Fim do programa")

Etapa 5: código Python final

O código python principal pode ser encontrado em minha conta do GitHub no link a seguir. Lembre-se de colocar sua própria Write API Key.

  1. Faça login em sua placa Raspberry PI
  2. Execute o seguinte comando no terminal

python3 cpu.py

Etapa 6: monitoramento de dados via Thingspeak Cloud

Monitorando Dados Via Thingspeak Cloud
Monitorando Dados Via Thingspeak Cloud

Depois de um tempo, abra seu canal no ThingSpeak e você deverá ver a temperatura sendo enviada para a nuvem do Thingspeak em tempo real.

Etapa 7: execute o script Python na inicialização

Para fazer isso, no final do arquivo /etc/rc.local:

sudo nano /etc/rc.local

Você precisa colocar o comando script start na frente da linha exit 0:

sudo python /home/pi/cpu.py &

A presença do símbolo & no final do comando é obrigatória, pois é um sinalizador para iniciar o processo em segundo plano. Após a reinicialização, o script será executado automaticamente e o ventilador será ligado quando as condições especificadas forem atendidas.

Recomendado: