Extremely simple Python to Arduino bridge library.
Project description
🔌 EasyIno 🚀
Menos código, mais automação. A biblioteca "Zero-Config" definitiva que conecta Python e Arduino.
easyino é o facilitador definitivo para projetos de Python + Arduino. Esqueça a conversão manual de Strings, Parsing complexo, Serial.read() infinito e a necessidade de especificar portas COM manualmente.
Com a EasyIno, você simplesmente registra variáveis (sensores/estados) e comandos (ações) no seu código Arduino. No Python, a "Mágica do Auto-Discovery (RPC)" cria os métodos para você automaticamente, permitindo controlar sua placa com apenas 3 linhas de código.
✨ Por que usar a EasyIno?
- 🎩 Mágica do Auto-Discovery: O Python pergunta ao Arduino o que ele sabe fazer e gera as funções dinamicamente!
- 📡 Acesso Direto a Variáveis: Leia sensores e estados como atributos de objeto:
temp = board.temperatura. - 🎯 Execução de Comandos: Chame funções do Arduino como métodos nativos:
board.ligar_led(). - 🔌 Auto-detecção de Porta: O sistema localiza onde o Arduino está conectado (COM, /dev/tty) sem intervenção manual.
- 🔔 Eventos Proativos: A placa pode emitir alertas espontâneos (ex: detecção de movimento) sem que o Python precise perguntar.
- ⚡ Tipagem Automática via JSON: Comunicação robusta e transparente usando o padrão JSON.
📦 Instalação
1. No Python
Instale via pip:
pip install easyino
2. No Arduino IDE
- Dependência Obrigatória: No Arduino IDE, vá em
Sketch->Include Library->Manage Libraries...e instale a biblioteca ArduinoJson (Versão 6 ou 7). - Biblioteca EasyIno: Copie a pasta
arduino/EasyInodeste repositório para a sua pasta de bibliotecas do Arduino (geralmente emDocumentos/Arduino/libraries/). - Reinicie a IDE do Arduino.
🚀 Quick Start: O Clássico "Pisca LED" Remoto
1. No Arduino (.ino)
Abra o exemplo File > Examples > EasyIno > BareMinimum ou use o código abaixo:
#include <EasyIno.h>
EasyIno easy(Serial);
int ledStatus = 0;
void alternar_led() {
ledStatus = !ledStatus;
digitalWrite(LED_BUILTIN, ledStatus);
}
void setup() {
easy.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
// Registramos a variável e o comando para o Python!
easy.addVariable("estado_led", &ledStatus);
easy.addCommand("piscar", alternar_led);
}
void loop() {
easy.update(); // Mantém a comunicação ativa
}
2. No Python (Simples assim!)
import easyino
import time
# O configure() encontra a porta sozinho!
with easyino.configure() as board:
print(f"Conectado na porta: {board.serial.port}")
# Chama o comando 'piscar' definido no Arduino
board.piscar()
# Lê a variável 'estado_led' do Arduino
print(f"O LED agora está: {board.estado_led}")
🛠️ API Detalhada
Python (Classe EasyIno)
configure(port=None, baudrate=115200): Atalho para conectar. Seportfor omitido, usa auto-discovery.board.execute(name, args=None): Executa um comando remoto. (Atalho:board.nome_do_comando()).board.read(name): Lê o valor de uma variável remota. (Atalho:valor = board.nome_da_variavel).board.on_event(name, callback): Registra uma função para ser chamada quando o Arduino enviar um evento vianotify().board.ping(): Verifica se a placa está respondendo.board.get_schema(): Retorna a lista de todos os comandos e variáveis disponíveis na placa conectada.
Arduino (Classe EasyIno)
easy.begin(baudrate): Inicializa a comunicação (padrão: 115200).easy.addVariable(name, &var): Expõe uma variável (int,float,bool) para o Python.easy.addCommand(name, function): Expõe uma funçãovoidpara ser chamada pelo Python.easy.notify(event_name, value): Envia um evento imediato para o Python (útil para sensores de interrupção ou alarmes).easy.update(): Obrigatório noloop()para processar as requisições.
📡 Exemplo de Automação de 5 Linhas
import easyino
board = easyino.configure() # Conecta automático
while True:
if board.sensor_presenca: # Lê variável do Arduino
board.tocar_alarme() # Executa comando no Arduino
break
🔍 Live Debugger e Exemplos
Quer testar sua placa sem escrever código Python? Use nosso depurador visual:
python -m easyino.examples.debugger
Explore a pasta examples/ para ver implementações com Servo Motores, Sensores DHT, Displays e muito mais!
🤝 Contribuição
Sinta-se à vontade para abrir Issues ou enviar Pull Requests. Vamos construir a melhor ferramenta para a comunidade Maker!
Desenvolvido com ❤️ por Faelzin09663 e comunidade.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file easyino-0.1.0.tar.gz.
File metadata
- Download URL: easyino-0.1.0.tar.gz
- Upload date:
- Size: 6.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f89067d3994d16d8864adf5982a92003fa8a8999e6a9b3094c9f22d711b739d7
|
|
| MD5 |
9a69f6dc7364d62699ad80e4998a7258
|
|
| BLAKE2b-256 |
2eddccb442c02462faaf8b313d7cc63a9d495fc3e61058754761f385bbfa9ddb
|
File details
Details for the file easyino-0.1.0-py3-none-any.whl.
File metadata
- Download URL: easyino-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
379f54875430ada344e1b5fd9e1a1a97ec05cdfa2e2f541ab0c3fce694857cbb
|
|
| MD5 |
f952870ce56b900b06f535c78f5d5f8e
|
|
| BLAKE2b-256 |
fd8a8da269dd1f0d01d359c00e2340eae283f6a221ba08ec85925ea7c071e5fd
|