هذا الدليل جزء من: دروس تعليمية حول تقنية الواي فاي LoRa 32
جميع الفيديوهات المتعلقة بجهاز Heltec WiFi LoRa 32 مرتبطة بهذه المجموعة. ستجد روابط الفيديوهات الأخرى أسفل هذه المقالة.
تحكم في محرك سيرفو من مسافة بعيدة! درس Arduino لهيليك WiFi LoRa 32 V3 (TX)
في هذا الدليل، نأخذ الرسومات الدقيقة من مشروع السيرفو Heltec ESP32 LoRa V3 ونستعرض كيف تعمل - دون إضافة أي كود إضافي. ستتعلم كيف يقرأ جهاز الإرسال المشفر الدوار، ويؤمن تلك الزاوية ويرسلها عبر LoRa، وكيف يقوم جهاز الاستقبال بفك تشفيرها ويوجه سيرفو صغير. جميع روابط الأجزاء والكود أدناه، وإذا قمت بالطلب من خلال روابط الشركاء لدينا، فإن ذلك يساعدنا على الاستمرار في إنشاء هذه الدروس.
تثبيت لوحات هيلتيك ESP32
قم بإضافة هذا المسار في تفضيلات بيئة تطوير Arduino الخاصة بك كما هو موضح في الفيديو: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، القناة، والمعايير تمامًا كما هو موضح في الرسم التخطيطي المقدم.
إرسال الزاوية بأمان
كل دورة حلقة تعملrotary_loop()، التي:
-
يقرأ المشفر في خدمة المقاطعة للوقت الحقيقي (ISR)
-
عندما
servoAngelالتغييرات، ويضعها في مخزن بيانات بحجم 16 بايت، ويقوم بتشفيرها باستخدام AES-128encryptAES()من الرسم التخطيطي)، ويدعوcppCopyEditRadio.Send(data, sizeof(data)); -
مجموعات
lora_idle = falseحتىOnTxDone()يُشغّل ويعيد تعيينه.
3. معدات وترتيب جهاز الاستقبال (RX)
على جانب RX تحتاج إلى:
-
لوحة هيلتيك واي فاي لوارا 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.
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. مخطط الأسلاك
فيما يلي أماكن مخصصة حيث يمكنك وضع مخططات الإرسال والاستقبال الخاصة بك:


رمز وروابط الشركاء
جميع الرسومات المذكورة أعلاه متاحة للتنزيل في قسم "الكود والموارد" أدناه. إذا كنت ترغب في بناء هذا بنفسك، يرجى النظر في شراء وحدة Heltec LoRa32 V3، وعلبة Meshnology N33، وم encoder دوار، ومحرك SG90 من خلال روابطنا التابعة. لا يكلفك ذلك شيئًا إضافيًا ويساعدنا على الاستمرار في إنشاء دروس مجانية مثل هذه!
فصول الفيديو للرجوع إليها
-
00:00 المقدمة ونظرة عامة
-
مفاهيم التحكم عن بُعد
-
أساسيات الاتصال LoRa
-
00:23 عينة الأجهزة
-
عرض الحالات والبطاريات
-
01:03 ميزات الوحدة
-
01:42 المواصفات والاتصال
-
:54 تشغيل السيرفو
-
03:05 التوصيلات وتخطيط الدبابيس
-
09:35 وضع الهوائي
-
11:04 تجميع الحالة
-
:26 رفع الرسومات
-
35:09 اختبار المدى 1.2 كم
-
:38 اختبار النطاق 1.4 كم
-
ملخص الأداء 38:41
-
:04 الخاتمة والدعم
هذا الدليل هو جزء من: دروس تعليمية حول تقنية الواي فاي LoRa 32
- استخدام Heltec WiFi LoRa 32 V3 لنقل درجة الحرارة باستخدام DHT22 إلى مسافة 1.4 كم
- 13 ميل 20 كم بدون واي فاي؟ كيف أرسل LoRa الجهد عبر مسافات شاقة! (Heltec WiFi LoRa 32 V3)
- قم بتشغيل جهاز من مسافة 13 ميل (21 كم) - مشروع لوارا النهائي بعيدًا عن الشبكة مع واي فاي لوارا 32!
- نظام إنذار الباب عن بُعد من مسافة 13 ميل (21 كم) مع تقنية LoRa - خارج الشبكة! (Heltec WiFi LoRa 32 V3)
- مشروع جهاز التحكم عن بعد: وحدة Heltec LoRa 32 لمسافة 13 ميلاً دون واي فاي / دون شريحة SIM
- How to Use the Heltec LoRa CubeCell Development Board HTCC-AB01
Common Course Links
Common Course Files
الموارد والمراجع
-
خارجيرابط موقع Heltec WiFi Kit 32heltec.org
ملفات📁
لا توجد ملفات متاحة.