Этот учебник является частью: Учебные пособия по WiFi LoRa 32
Все видеоролики, связанные с Heltec WiFi LoRa 32, размещены в этой группе. Ссылки на другие видео находятся ниже этой статьи.
Управляйте сервомотором с расстояния! Учебное пособие по Heltec WiFi LoRa 32 V3 Arduino (TX)
В этом руководстве мы берем точные схемы из нашего проекта сервопривода на Heltec ESP32 LoRa V3 и подробно описываем, как они работают - без добавления дополнительного кода. Вы узнаете, как передатчик считывает вращающийся энкодер, фиксирует и передает этот угол по LoRa, а как приемник расшифровывает его и управляет микро-сервоприводом. Все ссылки на детали и код приведены ниже, и если вы закажете через наши партнерские ссылки, это поможет нам продолжать создавать эти руководства.
Установка плат Heltec ESP32
Добавьте этот путь в настройки вашего Arduino IDE, как показано в видео:https://resource.heltec.cn/download/package_heltec_esp32_index.json
1. Аппаратное обеспечение и настройка передатчика (TX)
На стороне TX вам нужно:
-
Плата Heltec WiFi LoRa 32 V3 (в корпусе Meshnology N33, питается от аккумулятора на 3000 мАч)
-
Ротационный энкодер подключен к GPIO 6 (CLK), GPIO 5 (DT), GPIO 4 (SW)
-
OLED дисплей на I²C (SDA= 4, SCL= 15)
Эскиз начинается с включения и инициализации всего так же, как вHeltec_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;
Вsetup(), код:
-
Включает на дисплее, устанавливает шрифт
-
Звонки
rotaryEncoder.begin(),rotaryEncoder.setup(readEncoderISR),rotaryEncoder.setBoundaries(0, MAX_ANGLE, true)иrotaryEncoder.setAcceleration(20) -
Сбрасывает кодировщик на
homePosition -
Инициализирует LoRa через
Mcu.begin(HELTEC_BOARD, SLOW_CLK_TPYE)и настраиваетRadioEvents, канал и параметры точно так же, как на предоставленном эскизе.
2. Безопасная отправка угла
Каждый цикл петли выполняетсяrotary_loop(), который:
-
Читает энкодер в прерываниях.
-
Когда
servoAngelизменения, упаковывает в 16-байтовый буфер, шифрует с помощью AES-128encryptAES()из эскиза), и звонитcppCopyEditRadio.Send(data, sizeof(data)); -
Наборы
lora_idle = falseдоOnTxDone()сбрасывает и перезагружает его.
3. Аппаратное обеспечение и настройка приемника (RX)
На стороне RX вам нужно:
-
Плата Heltec WiFi LoRa 32 V3 (тот же корпус/аккумулятор)
-
Микросервопривод (например, SG90) на GPIO 6 (или любом протестированном ШИМ-пине)
-
OLED дисплей
Эскиз вHeltec_ESP32_LoRa_V3_Sevo_RX.inoначинается с:
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;
Вsetup(), it:
-
Питание на Vext для модуля дисплея/LoRa (
VextON()) -
Звонки
Radio.Init(&RadioEvents)и настраивает RX с теми же параметрами LoRa -
Прикрепляет серво к
myservo.attach(servoPin, SERVO_DUTY_MIN, SERVO_DUTY_MAX)и располагает его по центру наhomePosition.
4. Прием, расшифровка и управление сервоприводом
Ядро - этоOnRxDone(uint8_t *payload, …)обратный вызов:
cppCopyEditdecryptAES((uint8_t*)rxpacket, userKey);
if (isNumber(rxpacket)) {
servoAngel = atoi(rxpacket);
myservo.write(servoAngel);
delay(15);
}
Serial.println("Angle: " + String(servoAngel));
lora_idle = true;
Он расшифровывает 16-байтный блок, преобразует его в целое число и сразу обновляет сервопривод.
5. Поддержка PWM-пинов и настройка сервоприводов
Мы протестировали эти контакты ESP32 для PWM-выхода, и они все работают для управления микро-сервоприводом:
CopyEdit1, 2, 3, 4, 5, 6, 19, 35, 36, 38, 39, 40, 41, 42, 45, 47, 48
Для стандартного SG90 наш код использует диапазон импульсов400 мкс(0Ã'°) to2400 мк с(180°), что обеспечивает плавный, полный охват без дрожания.
6. Схема проводки
Ниже приведены заполнительные места, куда вы можете вставить свои схемы TX и RX:


Коды и партнерские ссылки
Все вышеперечисленные схемы доступны для скачивания в разделе "Код и ресурсы" ниже. Если вы хотите собрать это самостоятельно, пожалуйста, рассмотрите возможность покупки вашего модуля Heltec LoRa32 V3, корпуса Meshnology N33, энкодера и сервопривода SG90 по нашим партнерским ссылкам. Это не стоит вам ничего лишнего и помогает нам продолжать создавать бесплатные руководства, как это!
Видеоглавы для справки
-
00:00 Введение и Обзор
-
00:05 Концепции дистанционного управления
-
Основы коммуникации LoRa
-
00:23 Предварительный просмотр аппаратного обеспечения
-
00:28 Витрина кейсов и батарей
-
01:03 Особенности модуля
-
01:42 Характеристики и подключение
-
02:54 Запуск сервомотора
-
03:05 Провода и распиновка
-
09:35 Размещение антенны
-
11:04 Сборка шкафа
-
29:26 Загружаю Эскизы
-
35:09 Испытание диапазона 1,2 км
-
36:38 Тест диапазона 1,4 км
-
38:41 Обзор производительности
-
43:04 Заключение и поддержка
Этот учебник является частью: Учебные пособия по WiFi LoRa 32
- Используя Heltec WiFi LoRa 32 V3 для передачи температуры с помощью DHT22 на расстояние 1,4 км
- 13 миль 20 км без WiFi? Как LoRa передавал напряжение на безумные расстояния! (Heltec WiFi LoRa 32 V3)
- Включите устройство на расстоянии 13 миль (21 км) – Ультимативный проект LoRa вне сети с WiFi LoRa 32!
- Система удаленного оповещения о двери на расстоянии 13 миль (21 км) с LoRa – вне сети! (Heltec WiFi LoRa 32 V3)
- Проект DIY удаленного реле: 13 миль без Wi-Fi/без SIM-модуля Heltec LoRa 32
- How to Use the Heltec LoRa CubeCell Development Board HTCC-AB01
This code has not been parsed yet. Please return to the admin panel to parse it.
Common Course Links
Common Course Files
Ресурсы и ссылки
-
ВнешнийСсылка на сайт Heltec WiFi Kit 32heltec.org
Файлы📁
Нет доступных файлов.