Ce tutoriel fait partie de: Tutoriels WiFi LoRa 32
Toutes les vidéos relatives au routeur Heltec WiFi LoRa 32 sont regroupées ici. Vous trouverez des liens vers d'autres vidéos ci-dessous.
Contrôlez un moteur servo à des kilomètres de distance ! Tutoriel Arduino Heltec WiFi LoRa 32 V3 (TX)
Dans ce guide, nous prenons les croquis exacts de notre projet de servo Heltec ESP32 LoRa V3 et expliquons comment ils fonctionnent - sans code supplémentaire ajouté. Vous apprendrez comment l'émetteur lit un encodeur rotatif, sécurise et envoie cet angle via LoRa, et comment le récepteur le déchiffre et actionne un micro-servo. Tous les liens vers les pièces et le code sont ci-dessous, et si vous commandez via nos liens d'affiliés, cela nous aide à continuer à réaliser ces tutoriels.
Installation des cartes Heltec ESP32
Ajoutez ce chemin dans les préférences de votre IDE Arduino comme montré dans la vidéo :https://resource.heltec.cn/download/package_heltec_esp32_index.json
1. Matériel et configuration de l'émetteur (TX)
Sur le côté TX, vous avez besoin de :
-
Carte Heltec WiFi LoRa 32 V3 (dans le boîtier Meshnology N33, alimentée par une batterie de 3000 mAh)
-
Encodeur rotatif câblé à GPIO 6 (CLK), GPIO 5 (DT), GPIO 4 (SW)
-
Écran OLED sur I²C (SDA= 4, SCL= 15)
Le croquis commence par inclure et initialiser tout exactement comme dansHeltec_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;
Danssetup(), le code :
-
Alimente l'affichage, définit la police
-
Appels
rotaryEncoder.begin(),rotaryEncoder.setup(readEncoderISR),rotaryEncoder.setBoundaries(0, MAX_ANGLE, true)etrotaryEncoder.setAcceleration(20) -
Réinitialise l'encodeur à
homePosition -
Initialise LoRa via
Mcu.begin(HELTEC_BOARD, SLOW_CLK_TPYE)et met en placeRadioEvents, canal, et paramètres exactement comme dans le croquis fourni.
2. Envoyer l'angle en toute sécurité
Chaque cycle de boucle s'exécuterotary_loop(), ce qui :
-
Lit l'encodeur dans l'ISR
-
Quand
servoAngelmodifie, l'emballe dans un tampon de 16 octets, le chiffre avec AES-128 (encryptAES()de l'esquisse), et appellecppCopyEditRadio.Send(data, sizeof(data)); -
Ensembles
lora_idle = falsejusqu'àOnTxDone()il déclenche et réinitialise.
3. Matériel et configuration du récepteur (RX)
D'un côté RX, vous avez besoin de :
-
Carte Heltec WiFi LoRa 32 V3 (même boîtier/batterie)
-
Micro-servomoteur (par exemple SG90) sur GPIO 6 (ou toute broche PWM testée)
-
écran OLED
Le croquis dansHeltec_ESP32_LoRa_V3_Sevo_RX.inocommence par :
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;
Danssetup(), it:
-
Alimente le Vext pour le module d'affichage/LoRa.
VextON()) -
Appels
Radio.Init(&RadioEvents)et configure RX avec les mêmes paramètres LoRa -
Attache le servo avec
myservo.attach(servoPin, SERVO_DUTY_MIN, SERVO_DUTY_MAX)et le centre àhomePosition.
4. Réception, décryptage et commande du servo
Le cœur est leOnRxDone(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;
Il déchiffre le bloc de 16 octets, le convertit en entier et met immédiatement à jour le servo.
5. Support de broches PWM et réglage de servo
Nous avons testé ces broches ESP32 pour la sortie PWM et elles fonctionnent toutes pour piloter un micro-servo :
CopyEdit1, 2, 3, 4, 5, 6, 19, 35, 36, 38, 39, 40, 41, 42, 45, 47, 48
Pour un SG90 standard, notre code utilise une plage d'impulsions de400 µs(0Ã'°) to2400 µs(180°), ce qui procure un mouvement fluide et complet sans à-coups.
6. Schéma de câblage
Ci-dessous, vous trouverez des espaces réservés où vous pouvez insérer vos schémas TX et RX :


Code et liens d'affiliation
Tous les croquis ci-dessus sont disponibles en téléchargement dans la section "Code & Ressources" ci-dessous. Si vous souhaitez le construire vous-même, veuillez envisager d'acheter votre module Heltec LoRa32 V3, le boîtier Meshnology N33, l'encodeur rotatif et le servomoteur SG90 via nos liens d'affiliation. Cela ne vous coûte rien de plus et nous aide à continuer de produire des tutoriels gratuits comme celui-ci !
Chapitres vidéo pour référence
-
00:00 Introduction et Aperçu
-
00:05 Concepts de télécommande
-
00:19 Notions de base sur la communication LoRa
-
00:23 Aperçu du matériel
-
00:28 Vitrine de coques et de batteries
-
01:03 Caractéristiques du module
-
01:42 Spécifications et connectivité
-
02:54 Alimentation du Servo
-
03:05 Câblage et brochage
-
09:35 Placement de l'antenne
-
11:04 Assemblage de cas
-
29:26 Téléchargement de croquis
-
35:09 Test de portée 1,2 km
-
36:38 Test de portée 1,4 km
-
38:41 Récapitulatif de la performance
-
43:04 Conclusion et soutien
Ce tutoriel fait partie de: Tutoriels WiFi LoRa 32
- Utilisation du Heltec WiFi LoRa 32 V3 pour transmettre la température avec un DHT22 sur 1,4 km.
- 13 miles 20 km sans WiFi ? Comment LoRa a envoyé des tensions à travers des distances incroyables ! (Heltec WiFi LoRa 32 V3)
- Allumez un appareil à 21 km (13 miles) de distance - Le projet LoRa hors réseau ultime avec WiFi LoRa 32 !
- Système d'alerte de porte à distance à 21 km (13 miles) avec LoRa - Hors réseau ! (Heltec WiFi LoRa 32 V3)
- Projet de relais à distance DIY : module Heltec LoRa 32 sans Wi-Fi/sans SIM sur 13 miles
- How to Use the Heltec LoRa CubeCell Development Board HTCC-AB01
Common Course Links
Common Course Files
Ressources et références
-
ExterneLien du site Web Heltec WiFi Kit 32heltec.org
Fichiers📁
Aucun fichier disponible.