20 de dez. de 2022

Raspberry Pi PICO - Temperatura ambiente

        Em uma sala de servidores, se os aparelhos de ar condicionado falharem a temperatura ambiente pode chegar fácil aos 70ºC. Isso seria fatal aos componentes dos servidores, principalmente as CPUs, que nessa situação, podem chegar a mais de 120ºC, literalmente 'fritando' os chips. Já tivemos ocorrências em que alguns servidores chegaram a desligar por alta temperatura.

        Para contornar essa situação, a primeira coisa que vem à mente é um alarme de temperatura. Sim, essa seria uma boa solução, porém esses alarmes não seriam ouvidos por ninguém, já que as salas de servidores são fechadas. É claro que existem paliativos, como por exemplo uma instalação elétrica que leve o sinal do alarme a um outro local, porém o custo seria proibitivo. Outra solução seria um transmissor de alarme com chip 4G. Se o sinal 4G for confiável dentro da sala, seria uma outra boa opção, mas o custo destes transmissores é também elevado.

        Foi pensando em todos estes problemas, que desenvolvemos um sistema de alarme de temperatura com um aparelho microprocessado de 4 dólares, o Raspberry Pi PICO. No post anterior já fizemos uma breve introdução ao mesmo. Porém, nest post trago o projeto completo, inclusive o código fonte.

        O código fonte do PICO foi desenvolvido em PyTHON.
        O primeiro passo para a programação da placa, foi a instalação da Thonny IDE, que é o ambiente onde desenvolvemos e pelo qual gravamos o código na placa. Para isso, basta fazer o download da IDE na página https://thonny.org/, e então escolha a opção certa para o seu sistema operacional. Para a instalação em computadores Linux não é necessário baixar um arquivo, apenas enviar o comando exibido na janela que é aberta ao colocar o mouse sobre a opção "Linux" pelo terminal de comando. No próprio site do Thonny você pode aprender os primeiros ´passos ´para programação do Raspberry Pi PICO.

        Partindo para a solução implantada: Decidimos fazer um projeto em que um dos próprios servidores serviria como ponte entre o sensor de temperatura dentro do PICO e um email. Assim, a cada uma hora o sistema deveria enviar um email a uma lista de destinatários, enviando a temperatura daquele horário. Assim, mesmo que a temperatura não estivesse alta, este email serviria para sabermos que o sistema está em operação. Agora, se a temperatura passar de um limite máximo (estipulamos 32ºC), um email é enviado aos destinatários a cada 5 minutos, até que a temperatura volte ao normal.

        Depois de 3 meses da implantação do projeto, todos os envolvidos (IT, manutenção e usduários) reconheceram que o sistema foi de absoluto sucesso, tanto pela sua simplicidade, baixo custo e alta eficiência.

        Segue abaixo o código fonte desenvolvido:


import serial
#import datetime
from datetime import datetime
import smtplib
import email.message
import time

i = 0

def SendGmail(DataHora,Temp):
# def enviar_email():
corpo_email = 'Temperatura = ' + str(Temp) + " " + str(DataHora)[0:16]
msg = email.message.Message()
msg['Subject'] = 'Temperatura da Sala de Servidores - NILIT'
msg['From'] = 'datasigmabr@gmail.com'
msg['To'] = 'martigej@gmail.com'
password = '**********'
msg.add_header('Content-Type', 'text/html')
msg.set_payload(corpo_email)
s = smtplib.SMTP('smtp.gmail.com: 587')
s.starttls()
# Login Credentials for sending the mail
s.login(msg['From'], password)
s.sendmail(msg['From'], [msg['To']], msg.as_string().encode('utf-8'))
print('Email enviado')
HoraUltimoEnvio = (datetime.now())
#time.sleep(60)



ser = serial.Serial(port='COM3', baudrate=9600, timeout=1)
n=0
while n == 0:
i = i + 1
y_str = ser.readline()
y = y_str.decode("utf-8")
if(len(y)>0):
z = float(y[0:4])
agora = (datetime.now())
print(agora, " ", z)
print(i)
if(i > 82800):
SendGmail(agora, z)
i = 0
if(z > 32):
if(i > 900):
print("QUENTE!!!")
SendGmail(agora,z)
i = 0






No código pode-se perceber que utilizamos o próprio GMAIL como suporte para o envio dos emails.

Exemplo de email enviado a cada hora pelo sistema:



Nos próximos posts estarei falando mais do surpreendente Raspberry Pi PICO!

19 de dez. de 2022

Raspberry Pi PICO - Primeiro Projeto

Comprei um Raspberry Pi PICO por USD 4,00. Nunca tinha trabalhado com um destes, mas pelo preço, achei que valeria a pena.

Estava guardado na gaveta há meses, quando então resolvi testá-lo, já que apareceu uma necessidade: "Monitorar a temperatura da sala de servidores na empresa onde trabalho". Na hora lembrei do Raspberry Pi Pico, que tem um sensor de temperatura embutido. Isso é uma mão na roda, pois não precisaria de nenhum circuito externo. Somente um cabo USB!

Comecei as pesquisas, e descobri que teria de aprender Python. Baixei o editor PyCharm, conectei o PICO na porta USB e em 5 minutos já tinha um LED piscando na placa (UAU!!!). Depois de dois dias estava com o sensor medindo a temperatura da sala de servidores e enviando emails de alerta, caso a temperatura da sala ultrapasse 30ºC. Já está em operação desde Setembro, cumprindo muito bem seu papel de medir a temperatura, salvar em um banco de dados SQL e enviar email de alerta caso necessário.

No próximo post vou colocar mais detalhes do projeto, bem como o código fonte.