Projetos com
Python e
Arduino
Cláudio Luís V. Oliveira
[Link]@[Link]
[Link]/clvoliveira/
Novembro de 2021
Quem Sou Eu...
• Mestre em Sistemas de Computação –
Área de Concentração: Inteligência
Artificial.
• 32 anos de experiência na área de TI.
• 18 anos de experiência docente.
• Professor de Coordenador de Curso na
FATEC Jundiaí. Professor nas FATECs de
Bragança Paulista e Campinas.
• Escritor.
Alguns Livros Publicados
Alguns Livros Publicados
Alguns Livros Publicados
Projetos com Python e Arduino
• Arduino
[Link]
Projetos com Python e Arduino
• Firmata
• Consiste em um protocolo que possibilita
a comunicação e interação entre o
microcontrolador e programas no
computador.
• É necessário uma conexão constante entre
microcontrolador e computador através da
comunicação serial (padrão).
Projetos com Python e Arduino
• Firmata
Projetos com Python e Arduino
• Python
[Link]
• Estrutura sintática simples.
• Fácil aprendizagem.
• Orientada a objetos.
• Infinidades de módulos disponíveis.
• Interpretada.
• Gratuita.
Projetos com Python e Arduino
• Python IDEs
• Visual Studio Code
[Link]
• Thonny
[Link]
Projetos com Python e Arduino
• pyFirmata
[Link]
pip install pyFirmata
Projetos com Python e Arduino
• Blink
Projetos com Python e Arduino
• Blink
import pyfirmata
PORTA = 'especificar_porta_serial'
arduino = Arduino(PORTA)
[Link][13].mode = [Link]
while True:
[Link][13].write(1)
arduino.pass_time(0.5)
[Link][13].write(0)
arduino.pass_time(0.5)
Projetos com Python e Arduino
• PySimpleGUI
[Link]
pip install pysimplegui
Projetos com Python e Arduino
• Blink - GUI
Projetos com Python e Arduino
• Blink - GUI
from pyfirmata import Arduino
import PySimpleGUI as sg
arduino = Arduino('especificar_porta_serial')
led = arduino.get_pin('[Link]o')
[Link]('LightGrey6')
layout = [
[ [Link]('Controle do LED’) ],
[ [Link]('Ligar', key='lig’),
[Link]('Desligar', key='desl’) ]
]
Projetos com Python e Arduino
• Blink - GUI
janela = [Link]('Python + Arduino’,
layout, size=(300, 200)))
while True:
evento, dado = [Link]()
if evento == 'lig':
[Link](1)
elif evento == 'desl':
[Link](0)
elif evento == sg.WIN_CLOSED:
break
[Link]()
Projetos com Python e Arduino
• Sensor de Temperatura Analógico
Projetos com Python e Arduino
• Sensor de Temperatura - Analógico
from pyfirmata import Arduino, util
from math import log
def obter_temp_celsius (valor):
tempK = log(10000.0 * (1.0 / valor - 1))
tempK = 1 / (0.001129148 + (0.000234125 +
(0.0000000876741 * tempK * tempK )) *
tempK)
tempC = tempK - 273.15
return tempC
Projetos com Python e Arduino
• Sensor de Temperatura - Analógico
PORTA = 'especificar_porta_serial'
arduino = Arduino(PORTA)
it = [Link](arduino)
[Link]()
termistor = arduino.get_pin('[Link]i')
termistor.enable_reporting()
while True:
valor = str([Link]())
if valor != 'None':
valor = float(valor)
print (round(obter_temp_celsius(valor), 1),
'°C')
arduino.pass_time(5.0)
Projetos com Python e Arduino
• Termômetro - GUI
Projetos com Python e Arduino
• Flask
[Link]
pip install Flask
Projetos com Python e Arduino
• Termômetro - Web
Classe
Singleton Servidor Página
para o (Flask) HTML
Arduino
Projetos com Python e Arduino
• Termômetro - Web
Projetos com Python e Arduino
• ThingSpeak
[Link]
Projetos com Python e Arduino
• Aplicação IoT
Cliente ThingSpeak
HTTP
Projetos com Python e Arduino
• Aplicação IoT
IOT - Internet das Coisas
Cláudio Luís V. Oliveira
[Link]@[Link]
[Link]/clvoliveira/