0% acharam este documento útil (0 voto)
13 visualizações3 páginas

Interface Python-Arduino: Monitor de Temperatura

É um tutorial para a criação de uma interface para programação no Arduíno.

Enviado por

antonionejipv
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
13 visualizações3 páginas

Interface Python-Arduino: Monitor de Temperatura

É um tutorial para a criação de uma interface para programação no Arduíno.

Enviado por

antonionejipv
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

TUTORIAL COMPLETO - Interface Python com Arduino para Monitorar Temperatura

OBJETIVO:
Criar uma interface grafica com botoes que leia a temperatura enviada pelo Arduino Uno via porta serial e permita
interacoes no computador.

1. PRE-REQUISITOS:
- Instalar Python: [Link] (marque Add Python to PATH)
- Instalar a biblioteca necessaria:
pip install pyserial

2. CONFIGURACAO DO ARDUINO:

CODIGO NO ARDUINO:
----------------------------
void setup() {
[Link](9600);
}

void loop() {
int leitura = analogRead(A0);
float tempC = leitura * (5.0 / 1023.0) * 100.0;
[Link](tempC);
delay(2000);
}
----------------------------

3. CODIGO PYTHON FINAL (INTERFACE GRAFICA):

----------------------------
import tkinter as tk
from tkinter import messagebox
import serial
import threading
import [Link].list_ports
import time

class InterfaceTemperatura:
def __init__(self, root):
[Link] = root
[Link]("Monitor de Temperatura")
[Link]("400x380")

[Link] = 0.0
[Link] = False
self.serial_port = None

self.label_temp = [Link](root, text="Temperatura Atual: --.- C", font=("Arial", 16))


self.label_temp.pack(pady=20)

frame1 = [Link](root)
[Link](pady=10)
self.btn_email = [Link](frame1, text="Enviar por Email", bg="dodgerblue", fg="white", width=18,
command=self.enviar_email)
self.btn_email.grid(row=0, column=0, padx=5)
self.btn_reiniciar = [Link](frame1, text="Reiniciar", bg="orange", fg="white", width=10,
command=self.reiniciar_temperatura)
self.btn_reiniciar.grid(row=0, column=1, padx=5)

frame2 = [Link](root)
[Link](pady=10)
self.btn_salvar = [Link](frame2, text="Salvar Registro", bg="green", fg="white", width=18,
command=self.salvar_registro)
self.btn_salvar.grid(row=0, column=0, padx=5)
self.btn_modificar = [Link](frame2, text="Modificar C", bg="gold", fg="white", width=12,
command=self.modificar_temperatura)
self.btn_modificar.grid(row=0, column=1, padx=5)

frame3 = [Link](root)
[Link](pady=10)
self.btn_start = [Link](frame3, text="Start", bg="blue", fg="white", width=18, command=self.iniciar_leitura)
self.btn_start.grid(row=0, column=0, padx=5)
self.btn_sair = [Link](frame3, text="Sair", bg="red", fg="white", width=12, command=self.sair_do_sistema)
self.btn_sair.grid(row=0, column=1, padx=5)

def conectar_serial(self):
portas = [Link].list_ports.comports()
for porta in portas:
try:
self.serial_port = [Link]([Link], 9600, timeout=2)
[Link](2)
return True
except:
continue
return False

def ler_temperatura(self):
try:
if self.serial_port and self.serial_port.in_waiting > 0:
linha = self.serial_port.readline().decode().strip()
[Link] = float(linha)
except:
pass

def atualizar_interface(self):
if [Link]:
self.ler_temperatura()
self.label_temp.config(text=f"Temperatura Atual: {[Link]:.1f} C")
[Link](2000, self.atualizar_interface)

def iniciar_leitura(self):
if not [Link]:
conectado = self.conectar_serial()
if conectado:
[Link] = True
self.atualizar_interface()
[Link]("Iniciado", "Leitura de temperatura iniciada.")
else:
[Link]("Erro", "Nenhuma porta serial encontrada!")

def enviar_email(self):
[Link]("Email", f"Temperatura {[Link]:.1f} C enviada por e-mail (simulado).")

def salvar_registro(self):
print(f"[LOG] Temperatura salva: {[Link]:.1f} oC")
[Link]("Salvar", f"Temperatura {[Link]:.1f} C salva.")

def modificar_temperatura(self):
[Link] += 1.5
self.label_temp.config(text=f"Temperatura Atual: {[Link]:.1f} C")

def reiniciar_temperatura(self):
[Link] = 0.0
self.label_temp.config(text=f"Temperatura Atual: {[Link]:.1f} C")

def sair_do_sistema(self):
[Link] = False
if self.serial_port and self.serial_port.is_open:
self.serial_port.close()
[Link]()

if __name__ == "__main__":
root = [Link]()
app = InterfaceTemperatura(root)
[Link]()
----------------------------

4. TESTANDO:
- Execute no terminal com: python nome_do_arquivo.py
- Conecte o Arduino antes de clicar em Start
- Verifique se a porta esta correta

Você também pode gostar