Contenidos
¿Tienes un par de módulos Ebyte E22-400T22U (o similares) y quieres ponerlos a hablar entre ellos usando tu Mac? A diferencia de Windows, macOS gestiona los puertos seriales de forma distinta. En esta guía, configuraremos un sistema Emisor/Receptor utilizando Python de manera limpia y profesional.
🛠️ Requisitos Previos
- 2 módulos Ebyte E22 con interfaz USB.
- Python 3 instalado.
- Antenas conectadas (¡Fundamental para no dañar los módulos!).
1️⃣ Preparar el Entorno Virtual (venv)
Para evitar conflictos con otras librerías, crearemos un entorno aislado. Abre tu Terminal y ejecuta:
Bash
# Crear el entorno virtual
python3 -m venv env
# Activar el entorno en macOS
source env/bin/activate
# Instalar librerías necesarias
pip install pyserial python-dotenv
2️⃣ Identificar los Puertos en macOS
En Mac, los dispositivos no aparecen como COM1. Debemos buscarlos en el directorio de dispositivos:
Bash
ls /dev/cu.usbserial*
Anota los resultados. Deberías ver algo como: /dev/cu.usbserial-110 /dev/cu.usbserial-120
3️⃣ Configuración mediante variables de entorno
No «hardcodees» los puertos en el código. Crea un archivo llamado .env en la raíz de tu proyecto para gestionar la configuración fácilmente:
Fragmento de código
PUERTO_EMISOR=/dev/cu.usbserial-110
PUERTO_RECEPTOR=/dev/cu.usbserial-120
BAUD_RATE=9600
4️⃣ Implementación de los Scripts
📤 El Emisor (emisor.py)
Este script enviará un paquete de datos cada 2 segundos.
Python
import serial
import time
import os
from dotenv import load_dotenv
load_dotenv()
PUERTO = os.getenv('PUERTO_EMISOR')
BAUD = int(os.getenv('BAUD_RATE', 9600))
try:
with serial.Serial(PUERTO, BAUD, timeout=1) as lora:
print(f"🚀 EMISOR MAC iniciado en {PUERTO}")
idx = 0
while True:
mensaje = f"Hola desde Mac - Pack {idx}\n"
lora.write(mensaje.encode('utf-8'))
print(f"Enviando: {mensaje.strip()}")
idx += 1
time.sleep(2)
except Exception as e:
print(f"❌ Error: {e}")
📥 El Receptor (receptor.py)
Este script se quedará escuchando y mostrará los mensajes entrantes por pantalla.
Python
import serial
import os
from dotenv import load_dotenv
load_dotenv()
PUERTO = os.getenv('PUERTO_RECEPTOR')
BAUD = int(os.getenv('BAUD_RATE', 9600))
try:
with serial.Serial(PUERTO, BAUD, timeout=1) as lora:
print(f"👂 RECEPTOR MAC escuchando en {PUERTO}...")
while True:
if lora.in_waiting > 0:
linea = lora.readline().decode('utf-8', errors='ignore').strip()
if linea:
print(f"✅ Recibido: {linea}")
except Exception as e:
print(f"❌ Error: {e}")
🏁 Cómo ponerlo en marcha
- Abre dos pestañas de la Terminal.
- En ambas, asegúrate de haber activado el entorno:
source env/bin/activate. - En la primera pestaña, lanza el receptor:
python3 receptor.py. - En la segunda pestaña, lanza el emisor:
python3 emisor.py.

