این آموزش بخشی است از: آموزشهای وایفای لورا ۳۲
تمام ویدیوهای مربوط به Heltec WiFi LoRa 32 با استفاده از این گروه مرتبط هستند. لینک سایر ویدیوها در زیر این مقاله قرار دارد.
کنترل یک موتور سروو از فاصله دور! آموزش آردوینو Heltec WiFi LoRa 32 V3 (TX)
در این راهنما، طرحهای دقیقی از پروژه سروو Heltec ESP32 LoRa V3 خود را میگیریم و نحوه عملکرد آنها را بررسی میکنیم - بدون افزودن شِفر (کود) اضافی. شما یاد خواهید گرفت که چگونه فرستنده یک انکودر چرخشی را میخواند، آن زاویه را تأمین و از طریق LoRa ارسال میکند و چگونه گیرنده آن را رمزگشایی کرده و یک میکرو سروو را به حرکت در میآورد. تمام واصلهای قطعات و کدها در پایین ذکر شده است و اگر از طریق واصلهای وابسته ما سفارش دهید، به ما کمک میکند تا به ساخت این آموزشها ادامه دهیم.
نصب تختههای ESP32 هلتک
این مسیر را به تنظیمات IDE آردوینو خود اضافه کنید، همانطور که در ویدیو نشان داده شده است:https://resource.heltec.cn/download/package_heltec_esp32_index.json
۱. سختافزار و تنظیمات فرستنده (TX)
در سمت TX شما نیاز دارید:
-
برد Heltec WiFi LoRa 32 V3 (در کیس Meshnology N33، با باتری 3000 میلیآمپر ساعتی)
-
چرخش انکودر متصل به GPIO 6 (CLK)، GPIO 5 (DT)، GPIO 4 (SW)
-
صفحه نمایش OLED بر روی I²C (SDA= ۴، SCL= ۱۵)
طرح اولیه شامل و راهاندازی همه چیز بهطور دقیق مانند است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, کانال و پارامترها دقیقاً همانطور که در طرح ارائه شده است.
ارسال زاویه به صورت ایمن
هر دوره حلقه اجرا میشودrotary_loop()، که:
-
در ISR انکودر را میخواند
-
زمانی که
servoAngelتغییرات، آن را در یک بافر ۱۶ بایتی بستهبندی میکند، با AES-۱۲۸ رمزنگاری میکندencryptAES()از طرح)، و تماس هاcppCopyEditRadio.Send(data, sizeof(data)); -
ستها
lora_idle = falseتاOnTxDone()آتش میزند و آن را ریست میکند.
۳. سختافزار و تنظیمات گیرنده (RX)
در سمت RX شما به موارد زیر نیاز دارید:
-
برد Heltec WiFi LoRa 32 V3 (همان جعبه/باتری)
-
میکروسرو (مانند SG90) بر روی GPIO 6 (یا هر پایه PWM آزمایش شده دیگر)
-
صفحه نمایش 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متن:
۴. دریافت، رمزگشایی و راهاندازی سروو
هسته است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;
این بلوک ۱۶ بایتی را رمزگشایی کرده، به یک عدد صحیح تبدیل میکند و بلافاصله سروو را بروز میکند.
پشتیبانی از پایه 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 را از طریق واصلهای وابسته ما در نظر بگیرید. این برای شما هیچ هزینه اضافی ندارد و به ما کمک میکند تا بتوانیم همچنان آموزشهای رایگان مانند این را ارائه دهیم!
فصول ویدئو برای مرجع
-
۰۰:۰۰ مقدمه و مرور کلی
-
مفاهیم کنترل از راه دور
-
مبانی ارتباطات لوRa
-
00:23 پیشنمایش سختافزار
-
00:28 نمایش کیس و باتری
-
ویژگیهای ماجیول 01:03
-
مشخصات و اتصالات 01:42
-
۲:۵۴ تامین انرژی سروو
-
03:05 سیمکشی و پایهاوت
-
09:35 جایگذاری آنتن
-
۱۱:۰۴ مونتاژ کیس
-
۲۹:۲۶ بارگذاری طرحها
-
35:09 امتحان محدوده 1.2 کیلومتر
-
آزمایش دامنه ۱.۴ کیلومتر
-
خلاصه عملکرد 38:41
-
۴۳:۰۴ نتیجهگیری و پشتیبانی
این آموزش بخشی از: آموزشهای وایفای لورا ۳۲
- استفاده از Heltec WiFi LoRa 32 V3 برای ارسال دما با استفاده از DHT22 تا فاصله ۱.۴ کیلومتر
- 13 مایل 20 کیلومتر بدون WiFi؟ چگونه LoRa ولتاژ را در فواصل دیوانه وار ارسال کرد! (Heltec WiFi LoRa 32 V3)
- یک دستگاه را از ۱۳ مایل (۲۱ کیلومتر) دور روشن کنید - پروژه نهایی لو را بدون شبکه با WiFi LoRa 32!
- سیستم هشدار درب از فاصله ۱۳ مایل (۲۱ کیلومتر) با LoRa – بدون نیاز به شبکه برق! (هلتک WiFi LoRa 32 V3)
- پروژه ریلی از راه دور DIY: ماجیول Heltec LoRa 32 بدون Wi-Fi/بدون سیم کارت به فاصله ۱۳ مایل
- How to Use the Heltec LoRa CubeCell Development Board HTCC-AB01
Common Course Links
Common Course Files
منابع و مراجع
-
خارجیواصل وبسایت کیت WiFi 32 هلتکheltec.org
فایلها📁
هیچ فایلی موجود نیست.