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

Tutorial Interface Arduino 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)
14 visualizações3 páginas

Tutorial Interface Arduino 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
Você está na página 1/ 3

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: https://www.python.org (marque Add Python to PATH)
- Instalar a biblioteca necessaria:
pip install pyserial

2. CONFIGURACAO DO ARDUINO:

CODIGO NO ARDUINO:
----------------------------
void setup() {
Serial.begin(9600);
}

void loop() {
int leitura = analogRead(A0);
float tempC = leitura * (5.0 / 1023.0) * 100.0;
Serial.println(tempC);
delay(2000);
}
----------------------------

3. CODIGO PYTHON FINAL (INTERFACE GRAFICA):

----------------------------
import tkinter as tk
from tkinter import messagebox
import serial
import threading
import serial.tools.list_ports
import time

class InterfaceTemperatura:
def __init__(self, root):
self.root = root
self.root.title("Monitor de Temperatura")
self.root.geometry("400x380")

self.temperatura = 0.0
self.rodando = False
self.serial_port = None

self.label_temp = tk.Label(root, text="Temperatura Atual: --.- C", font=("Arial", 16))


self.label_temp.pack(pady=20)

frame1 = tk.Frame(root)
frame1.pack(pady=10)
self.btn_email = tk.Button(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 = tk.Button(frame1, text="Reiniciar", bg="orange", fg="white", width=10,
command=self.reiniciar_temperatura)
self.btn_reiniciar.grid(row=0, column=1, padx=5)

frame2 = tk.Frame(root)
frame2.pack(pady=10)
self.btn_salvar = tk.Button(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 = tk.Button(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 = tk.Frame(root)
frame3.pack(pady=10)
self.btn_start = tk.Button(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 = tk.Button(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 = serial.tools.list_ports.comports()
for porta in portas:
try:
self.serial_port = serial.Serial(porta.device, 9600, timeout=2)
time.sleep(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()
self.temperatura = float(linha)
except:
pass

def atualizar_interface(self):
if self.rodando:
self.ler_temperatura()
self.label_temp.config(text=f"Temperatura Atual: {self.temperatura:.1f} C")
self.root.after(2000, self.atualizar_interface)

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

def enviar_email(self):
messagebox.showinfo("Email", f"Temperatura {self.temperatura:.1f} C enviada por e-mail (simulado).")

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

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

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

def sair_do_sistema(self):
self.rodando = False
if self.serial_port and self.serial_port.is_open:
self.serial_port.close()
self.root.destroy()

if __name__ == "__main__":
root = tk.Tk()
app = InterfaceTemperatura(root)
root.mainloop()
----------------------------

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