دليل ESP32 49/55 - التحكم في محرك التيار المستمر عبر الإنترنت باستخدام Adafruit IoT | مجموعة ESP32 من SunFounder

دليل ESP32 49/55 - التحكم في محرك التيار المستمر عبر الإنترنت باستخدام Adafruit IoT | مجموعة ESP32 من SunFounder

في هذا الدليل، سنستكشف كيفية التحكم في موتور تيار مستمر عبر الإنترنت باستخدام ESP32 وخدمة Adafruit IO MQTT. يمكن التحكم في سرعة واتجاه موتور التيار المستمر عن بُعد، مما يسمح بتحكم فعال من أي مكان متصل بالإنترنت. يعرض هذا المشروع إمكانيات متحكم ESP32 الدقيق، الذي يتميز بشبكة Wi-Fi مدمجة، مما يجعله مثالياً لتطبيقات إنترنت الأشياء (IoT).

esp32-49-DC-motor-mqtt-main

سنقوم بتنفيذ نظام يمكن من خلاله بدء المحرك وإيقافه وضبط سرعته عبر واجهة ويب متصلة بـ Adafruit IO. يمكن للمستخدمين الاشتراك في مواضيع محددة للتحكم في المحرك وضبط المعلمات وفقًا لذلك. لفهم العملية بشكل أفضل، تأكد من مشاهدة الفيديو المرافق لهذا الدليل (في الفيديو عند 00:00).

شرح الأجهزة

لهذا المشروع، سنستخدم متحكم ESP32، الذي هو قلب نظامنا. يتمتع ESP32 بقدرة على التعامل مع اتصالات الواي فاي، مما يجعله مثالياً لتطبيقات إنترنت الأشياء الخاصة بنا. يتصل بمنصة Adafruit IO، مما يتيح لنا إرسال واستقبال الرسائل عبر بروتوكول MQTT.

بالإضافة إلى ذلك، سنستخدم وحدة قيادة المحرك L293D، والتي تعد ضرورية للتحكم في المحرك DC. يمكن لوحدة L293D قيادة محركين DC وتسمح بالتحكم في كل من الاتجاه والسرعة من خلال تعديل عرض النبضة (PWM). تعمل هذه الوحدة بشكل أساسي كواجهة بين ESP32 والمحرك، حيث تدير التيار العالي الذي يتطلبه المحرك مع عزل ESP32 عن أي إشارات عكسية قد تضر بالجهاز.

تفاصيل ورقة البيانات

المص manufacturer تكساس إنسترومنتس
رقم الجزء L293D
جهد المنطق/المدخلات والمخرجات ٤.٥ - ٣٦ فولت
جهد الإمداد ٤.٥ - ٣٦ فولت
جهد الخرج (لكل قناة) 600 ميللي أمبير
تيار الذروة (لكل قناة) 1.2 أ
إرشادات تردد PWM 10 كيلو هرتز (تقريباً)
عتبات منطق الإدخال 0.8 فولت (مرتفع)، 2.0 فولت (منخفض)
فقدان الجهد / RDS(on)/ التشبع 1.5 فولت كحد أقصى
الحدود الحرارية ١٥٠ درجة مئوية
حزمة DIP-16
ملاحظات / متغيرات سائق نصف H عالي التيار رباعي

  • تأكد من توافر تبريد مناسب للتشغيل المستمر.
  • استخدم PWM للتحكم في سرعة المحرك بفاعلية.
  • راقب حدود جهد الإدخال لتجنب التلف.
  • تحقق من الاتصالات الأرضية الصحيحة بين جميع المكونات.
  • كن حذرًا من الجهد العكسي؛ استخدم الديودات إذا لزم الأمر.
  • تحقق من الأسلاك مرة أخرى حيث يمكن أن تؤثر القطبية على اتجاه المحرك.
  • اختبر باستخدام جهد أقل قبل التشغيل الكامل.
  • راقب سخونة الجهاز أثناء الاستخدام المطول.
  • تأكد من تقليل الاهتزازات للمفاتيح الميكانيكية إذا تم استخدامها.
  • تأكد من أن ESP32 ليس محملاً بشكل زائد بواسطة تيار المحرك.

تعليمات التوصيل

ESP32-15_L293D_مخطط_المحرك

ابدأ بتوصيل مصدر الطاقة. اربط القطب الموجب لمصدر الطاقة الخارجي بدبوس VCC من L293D (دبوس 8) والأرضي بدبوس GND (دبوس 4). تأكد من أن الـ ESP32 يعمل بشكل منفصل إذا لزم الأمر، عادةً من خلال اتصال ميكرو USB.

بعد ذلك، قم بتوصيل المحرك بالـ L293D. يجب توصيل طرف واحد من المحرك برقم الخرج 3 (رجل 2 من الـ L293D) والطرف الآخر برقم الخرج 6 (رجل 7 من الـ L293D). بالنسبة لإشارات التحكم، قم بتوصيل رجل 13 من ESP32 برقم المدخل 2 (رجل 1 من الـ L293D) ورجل 14 برقم المدخل 7 (رجل 2 من الـ L293D). يجب أيضًا توصيل رجل التفعيل (رجل 1) بمصدر 5 فولت لتفعيل السائق. وأخيرًا، تأكد من توصيل أرضية ESP32 بأرضية الـ L293D كمرجع مشترك.

أمثلة الشيفرة وبرنامج الشرح

يقوم الكود المقدم بتهيئة المكتبات الضرورية ويقوم بإعداد واي فاي وعميل MQTT. تشمل المعرفات الرئيسيةmotorSpeed,motorDirection, وmotorStart، التي تدير تشغيل المحرك بناءً على الأوامر المستلمة من Adafruit IO.

bool debug = false;
#define motor1A 13
#define motor2A 14
int motorSpeed = 0;
int motorDirection = 1;
int motorStart = 1;

في هذا المقتطف، يتم تعريف دبابيس المحرك جنبًا إلى جنب مع المتغيرات الأولية للتحكم في السرعة، الاتجاه، وحالة التشغيل/الإيقاف للمحرك. المتغيرmotorSpeedسيتم تعديلها بناءً على المدخلات من Adafruit IO.

void setup() {
  Serial.begin(115200);
  WiFi.begin(WLAN_SSID, WLAN_PASS);
  delay(2000);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }
}

في وظيفة الإعداد، يتم بدء الاتصال التسلسلي، ويتصل جهاز ESP32 بشبكة الواي فاي المحددة. هذه الاتصال ضروري لتمكين الاتصال عبر MQTT.

void loop() {
  MQTT_connect();
  mqtt.processPackets(500);
  runMotor();
}

تقوم هذه الدالة بحلقة لتأسيس اتصال MQTT ومعالجة الحزم الواردة للتحكم في الموتور بناءً على آخر الأوامر المستلمة. الدالةrunMotor()يُطلب منه تطبيق الإعدادات الحالية على المحرك.

عرض / ما يمكن توقعه

عندما تكتمل الإعدادات ويتم رفع الشيفرة، يجب أن تكون قادرًا على التحكم في المحرك من خلال لوحة تحكم Adafruit IO. يمكنك ضبط سرعة المحرك باستخدام منزلق وتغيير اتجاهه باستخدام مفتاح تبديل. إذا كانت الأسلاك متصلة بشكل صحيح، سيتفاعل المحرك مع هذه الأوامر في الوقت الحقيقي، مما يظهر انخفاض زمن الانتقال للنظام (في الفيديو عند 00:00).

تشمل المشكلات الشائعة اتجاه المحرك المعكوس بسبب التوصيل الخاطئ، لذا تحقق مرة أخرى من التوصيلات إذا لم يتصرف المحرك كما هو متوقع. بالإضافة إلى ذلك، تأكد من أن مواضيع MQTT الخاصة بك معدة بشكل صحيح في Adafruit IO لتتناسب مع الكود.

طوابع زمنية للفيديو

  • 00:00 بدء
  • ٢:٢١ مقدمة إلى المشروع
  • كيفية التحكم في المحرك الكهربائي المستمر 4:20
  • 6:39 سائق المحرك L293D
  • 11:42 ما هو MQTT؟
  • 15:03 إعداد Adafruit IO
  • 19:17 شرح الأسلاك
  • 22:42 شرح الكود
  • عرض المشروع 35:28

الصور

ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_schematic
esp32-49-DC-motor-mqtt-main
esp32-49-DC-motor-mqtt-main
851-ESP32 Tutorial 49/55- Arduino code using ESP32 to DC Motor using MQTT service of Adafruit
اللغة: C++
تم النسخ!

الموارد والمراجع

لا توجد موارد حتى الآن.

ملفات📁

لا توجد ملفات متاحة.