Este tutorial es parte de: Tutoriales de WiFi LoRa 32
Todos los videos relacionados con Heltec WiFi LoRa 32 se encuentran en este grupo. Los enlaces a otros videos se encuentran debajo de este artículo.
¡Controla un motor servo desde lejos! Tutorial de Arduino Heltec WiFi LoRa 32 V3 (TX)
En esta guía, estamos tomando los bocetos exactos de nuestro proyecto de servo Heltec ESP32 LoRa V3 y explicando cómo funcionan, sin código adicional. Aprenderás cómo el transmisor lee un codificador rotatorio, asegura y envía ese ángulo a través de LoRa, y cómo el receptor lo descifra y controla un micro-servo. Todos los enlaces de piezas y código están a continuación, y si haces un pedido a través de nuestros enlaces de afiliados, nos ayudas a seguir creando estos tutoriales.
Instalando placas Heltec ESP32
Añade esta ruta en las preferencias de tu IDE de Arduino como se muestra en el video:https://resource.heltec.cn/download/package_heltec_esp32_index.json
1. Hardware y configuración del transmisor (TX)
En el lado de TX necesitas:
-
Placa Heltec WiFi LoRa 32 V3 (en caja Meshnology N33, alimentada por batería de 3000 mAh)
-
Codificador rotatorio conectado a GPIO 6 (CLK), GPIO 5 (DT), GPIO 4 (SW)
-
Pantalla OLED en I²C (SDA= 4, SCL= 15)
El boceto comienza incluyendo e inicializando todo exactamente como enHeltec_ESP32_LoRa_V3_Sevo_TX_AiRotaryEncoder.ino:
cppCopyEdit#include "AiEsp32RotaryEncoder.h"
#include "HT_SSD1306Wire.h"
#include "LoRaWan_APP.h"
#include "mbedtls/aes.h"
// …
static SSD1306Wire display(0x3c, 500000, SDA_OLED, SCL_OLED, GEOMETRY, RST_OLED);
AiEsp32RotaryEncoder rotaryEncoder = AiEsp32RotaryEncoder(
PIN_A, PIN_B, SW_PIN, ROTARY_ENCODER_VCC_PIN, false, true, true);
const int homePosition = 90;
const int MAX_ANGLE = 180;
int servoAngel = homePosition;
Ensetup(), el código:
-
Activa en la pantalla, establece la fuente.
-
Llamadas
rotaryEncoder.begin(),rotaryEncoder.setup(readEncoderISR),rotaryEncoder.setBoundaries(0, MAX_ANGLE, true)yrotaryEncoder.setAcceleration(20) -
Restablece el codificador a
homePosition -
Inicializa LoRa a través de
Mcu.begin(HELTEC_BOARD, SLOW_CLK_TPYE)y configuraRadioEvents, canal, y parámetros exactamente como en el boceto proporcionado.
2. Enviando el ángulo de forma segura
Cada ciclo de bucle se ejecutarotary_loop(), que:
-
Lee el codificador en la ISR.
-
Cuando
servoAngelcambios, los empaqueta en un búfer de 16 bytes, cifra con AES-128encryptAES()desde el boceto), y llamadascppCopyEditRadio.Send(data, sizeof(data)); -
Conjuntos
lora_idle = falsehastaOnTxDone()enciende y reinicia.
3. Hardware y configuración del receptor (RX)
En el lado de RX necesitas:
-
Placa Heltec WiFi LoRa 32 V3 (mismo caso/batería)
-
Microservomotor (por ejemplo, SG90) en GPIO 6 (o cualquier pin PWM probado)
-
pantalla OLED
El boceto enHeltec_ESP32_LoRa_V3_Sevo_RX.inocomienza con:
cppCopyEdit#include <ESP32Servo.h>
#include "HT_SSD1306Wire.h"
#include "LoRaWan_APP.h"
#include "mbedtls/aes.h"
// …
const int servoPin = 6;
const int SERVO_DUTY_MIN = 400; // us
const int SERVO_DUTY_MAX = 2400; // us
Servo myservo;
int servoAngel = homePosition;
Ensetup(), it:
-
Potencias en Vext para el módulo de pantalla/LoRa
VextON()) -
Llamadas
Radio.Init(&RadioEvents)y configura RX con los mismos parámetros de LoRa -
Adjunta el servo con
myservo.attach(servoPin, SERVO_DUTY_MIN, SERVO_DUTY_MAX)y lo centra enhomePosition.
4. Recibiendo, descifrando y controlando el servo
El núcleo es elOnRxDone(uint8_t *payload, …)callback:
cppCopyEditdecryptAES((uint8_t*)rxpacket, userKey);
if (isNumber(rxpacket)) {
servoAngel = atoi(rxpacket);
myservo.write(servoAngel);
delay(15);
}
Serial.println("Angle: " + String(servoAngel));
lora_idle = true;
Descifra el bloque de 16 bytes, lo convierte en un entero y actualiza inmediatamente el servo.
5. Soporte para pin PWM y ajuste de servo
Probamos estos pines ESP32 para salida PWM y todos funcionan para controlar un micro-servo:
CopyEdit1, 2, 3, 4, 5, 6, 19, 35, 36, 38, 39, 40, 41, 42, 45, 47, 48
Para un SG90 estándar, nuestro código utiliza un rango de pulsos de400 µs(0Ã'°) to2400 µs(180°), que ofrece un barrido suave y completo sin temblores.
6. Diagrama de cableado
A continuación se encuentran los espacios donde puedes insertar tus esquemas de TX y RX:


Código y enlaces de afiliados
Todos los bocetos anteriores están disponibles para descargar en la sección "Código y Recursos" a continuación. Si deseas construir esto tú mismo, considera comprar tu módulo Heltec LoRa32 V3, la caja Meshnology N33, el codificador rotativo y el servo SG90 a través de nuestros enlaces de afiliados. No te costará nada extra y nos ayuda a seguir creando tutoriales gratuitos como este.
Capítulos de video para referencia
-
00:00 Introducción y Visión General
-
00:05 Conceptos de Control Remoto
-
00:19 Conceptos básicos de comunicación LoRa
-
00:23 Vista previa de hardware
-
00:28 Exhibición de Carcasas y Baterías
-
Características del Módulo 01:03
-
01:42 Especificaciones y Conectividad
-
02:54 Alimentando el Servo
-
03:05 Cableado y Pinout
-
09:35 Colocación de la antena
-
11:04 Montaje de Caja
-
29:26 Subiendo bocetos
-
35:09 Prueba de rango 1.2 km
-
36:38 Prueba de rango 1.4 km
-
38:41 Resumen de Rendimiento
-
43:04 Conclusión y Apoyo
Este tutorial es parte de: Tutoriales de WiFi LoRa 32
- Usando Heltec WiFi LoRa 32 V3 para transmitir temperatura utilizando DHT22 hasta 1.4 km
- ¿13 millas 20 km sin WiFi? ¡Cómo LoRa envió voltaje a través de distancias locas! (Heltec WiFi LoRa 32 V3)
- Enciende un dispositivo a 13 millas (21 km) de distancia - ¡El proyecto off-grid definitivo de LoRa con WiFi LoRa 32!
- Sistema de Alerta de Puerta Remota desde 13 millas 21 km de distancia con LoRa - ¡Fuera de la Red! (Heltec WiFi LoRa 32 V3)
- Proyecto de relé remoto DIY: módulo Heltec LoRa 32 de 13 millas sin Wi-Fi/sin SIM
- How to Use the Heltec LoRa CubeCell Development Board HTCC-AB01
Common Course Links
Common Course Files
Recursos y referencias
-
ExternoEnlace del sitio web de Heltec WiFi Kit 32heltec.org
Archivos📁
No hay archivos disponibles.