Índice:
- Suprimentos
- Etapa 1: Construindo o Circuito
- Etapa 2: registrar a temperatura da CPU com o ThingSpeak
- Etapa 3: Obtendo a temperatura da CPU de um Raspberry Pi usando Python
- Etapa 4: controle do ventilador com base na temperatura
- Etapa 5: código Python final
- Etapa 6: monitoramento de dados via Thingspeak Cloud
- Etapa 7: execute o script Python na inicialização
Vídeo: Controle inteligente do ventilador Raspberry Pi usando Python e Thingspeak: 7 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
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
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
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.
- Acesse o link a seguir e inscreva-se no ThingSpeak.
- Após a ativação da sua conta, faça login.
- Vá para Canais -> Meus Canais
- Clique no botão Novo canal.
- Insira o nome, a descrição e os campos dos dados que deseja enviar
- 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.
- Faça login em sua placa Raspberry PI
- Execute o seguinte comando no terminal
python3 cpu.py
Etapa 6: monitoramento de 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:
Ventilador giratório usando servo motor e controle de velocidade: 6 etapas
Ventilador Rotativo Usando Servo Motor e Controle de Velocidade: Neste tutorial vamos aprender como girar um ventilador com velocidade ajustável usando servo motor, potenciômetro, arduino e Visuino. Assista ao vídeo
Como fazer uma casa inteligente usando o módulo de relé de controle do Arduino. Idéias para automação residencial: 15 etapas (com fotos)
Como fazer uma casa inteligente usando o módulo de relé de controle do Arduino. Idéias para automação residencial: neste projeto de automação residencial, projetaremos um módulo de relé residencial inteligente que pode controlar 5 eletrodomésticos. Este módulo de relé pode ser controlado por celular ou smartphone, remoto IR ou remoto de TV, interruptor manual. Este relé inteligente também pode sentir r
Jardinagem inteligente baseada em IoT e agricultura inteligente usando ESP32: 7 etapas
Jardinagem inteligente baseada em IoT e agricultura inteligente usando ESP32: O mundo está mudando com o tempo e a agricultura. Hoje em dia, as pessoas estão integrando a eletrônica em todos os campos e a agricultura não é exceção para isso. Esta fusão da eletrônica na agricultura está ajudando os agricultores e as pessoas que administram jardins
Controle de brilho Controle de LED baseado em PWM usando botões, Raspberry Pi e Scratch: 8 etapas (com imagens)
Controle de brilho Controle de LED baseado em PWM usando botões de pressão, Raspberry Pi e Scratch: Eu estava tentando encontrar uma maneira de explicar como PWM funcionava para meus alunos, então me propus a tarefa de tentar controlar o brilho de um LED usando 2 botões de pressão - um botão aumenta o brilho de um LED e o outro escurece. Para programar
Rádio-controle RF 433MHZ usando HT12D HT12E - Fazendo um controle remoto Rf usando HT12E e HT12D com 433 MHz: 5 etapas
Rádio-controle RF 433MHZ usando HT12D HT12E | Fazendo um controle remoto Rf usando HT12E e HT12D com 433 mhz: Neste instrutível, vou mostrar como fazer um controle remoto RADIO usando o módulo receptor transmissor 433 mhz com codificação HT12E & IC decodificador HT12D. Neste instrutível, você poderá enviar e receber dados usando COMPONENTES muito baratos, COMO: HT