فئات: أتمتة المنزل, دوائر متحكم
مرات المشاهدة: 17351
تعليقات على المقال: 0

متحكم عن بعد: IR Remote، Arduino، ESP8266، 433 MHz

 

لطالما كانت مسألة التحكم عن بعد أو عن بعد في المعدات الكهربائية ذات صلة وستظل ذات صلة ، بغض النظر عما إذا كانت هناك أدوات أتمتة في النظام أم لا. لتنظيم التحكم عن بعد لا يهم إذا متحكم، كل هذا يتوقف على الوظائف الضرورية المخصصة للجهاز المدار. في هذه المقالة ، ستتعلم معلومات عامة حول كيفية التحكم عن بُعد في متحكم دقيق.

متحكم التحكم عن بعد

أنواع

هناك نوعان رئيسيان من الاتصالات عن بُعد:


سلكي. عندما يتم تنفيذ التحكم في المشغلات الموجودة في غرفة واحدة (أو لا في الغرفة) من لوحة التحكم أو من وظيفة زر موجودة في مكان آخر. في هذه الحالة ، يتم توفير اتصال سلك كهربائي من دوائر التحكم والمحركات (المرحلات ، الموصلات ، والتي تشمل آليات ، مثل المحركات أو الأنظمة ، على سبيل المثال ، الإضاءة).


لاسلكي. في هذا التجسيد ، لا يلزم التوصيل الكهربائي للدوائر التحكم والدوائر التنفيذية. في الدوائر اللاسلكية ، يوجد جهازان: جهاز إرسال أو جهاز تحكم عن بعد (RC) وجهاز استقبال ، وهو جزء من الدائرة التي يتم التحكم فيها. التحكم اللاسلكي ، بدوره ، شائع في نسختين:

  • بواسطة إشارة بصرية. توجد مثل هذه الأنظمة في كل منزل ، لذلك يمكنك التحكم في تشغيل التلفزيون وتكييف الهواء والأجهزة المنزلية الأخرى.

  • بواسطة إشارة الراديو. يوجد بالفعل عدد من الخيارات: Bluetooth ، ZigBee ، Wi-Fi ، مستقبلات مرسل 433 MHz وتغيرات أخرى حول هذا الموضوع.

تجدر الإشارة إلى أنه من خلال الوسائل التقنية الحديثة ، يمكنك التحكم في المتحكم الدقيق ، سواء من جهاز التحكم عن بعد أو عبر الإنترنت على شبكة محلية أو من خلال الوصول من أي مكان في العالم.



الأشعة تحت الحمراء البعيدة

نبدأ نظرنا في الإصدار الأكثر بساطة والأكثر كلاسيكية. التحكم في الجهاز عن طريق إرسال رمز من تسلسل وميض LED IR إلى جهاز الاستقبال البصري المثبت على الجهاز. تجدر الإشارة إلى أن طيف الأشعة تحت الحمراء غير مرئي للعين البشرية ، ولكن معظم كاميرات الصور والفيديو تراه.

نظرًا لأن معظم الكاميرات ترى الأشعة تحت الحمراء ، يمكنك التحقق إمكانية تشغيل أجهزة التحكم عن بُعد. للقيام بذلك ، ما عليك سوى توجيه وحدة التحكم عن بُعد حتى ينظر المشغل إلى الكاميرا واضغط على الأزرار. عادةً ما يكون هناك توهج أبيض مع صبغة أرجوانية مرئيًا على الشاشة.

يحتوي عنصر التحكم هذا على عيب واضح - يجب توجيه جهاز التحكم عن بعد نحو المستقبل. وإذا كانت البطاريات في جهاز التحكم عن بُعد قد نفدت ، فعليك أيضًا أن تستهدف ، لأن العمليات أصبحت أقل فأقل.

المزايا هي البساطة ، الصيانة العالية ، كل من المرسل والمستقبل. يمكنك العثور على التفاصيل من خلال تفكيك أجهزة التحكم عن بعد وأجهزة التلفزيون المكسورة من أجل تطبيق ذلك في مشاريعك الخاصة.

جهاز استشعار نموذجي هو على النحو التالي. نظرًا لاستقبال الإشارة الضوئية ، من الضروري استبعاد التسبب في مصادر ضوئية دخيلة ، مثل الشمس ومصابيح الإضاءة وغيرها. تجدر الإشارة أيضًا إلى أن إشارة الأشعة تحت الحمراء يتم استقبالها بشكل أساسي عند تردد قدره 38 كيلو هرتز.

جهاز استشعار الأشعة تحت الحمراء

فيما يلي مواصفات أحد أجهزة استشعار الأشعة تحت الحمراء:

  • تردد الموجة الحاملة: kHz 38 ؛

  • امدادات التيار الكهربائي: 2.7 - 5.5 فولت ؛

  • الاستهلاك الحالي: 50 μA.

ومخطط اتصاله:

مخطط اتصال مستشعر الأشعة تحت الحمراء

يمكن استخدام جهاز التحكم عن بُعد بواسطة أي شخص لديه مبدأ تشغيل مماثل ، وأجهزة التحكم عن بُعد من:

  • التلفزيونات.

  • مشغلات DVD

  • مسجلات شريط الراديو؛

  • من أجهزة الإضاءة الحديثة ، مثل الثريات الذكية وشرائط LED وأكثر من ذلك.

لوحة التحكم

هنا مثال على استخدام هذا الاستشعار مع اردوينو

اردوينو استشعار الأشعة تحت الحمراء سبيل المثال

لكي يفهم المتحكم ، في حالتنا Arduin ، الإشارة من المستشعر ، تحتاج إلى استخدام مكتبة IRremote.h. للحصول على مثال عن كيفية قراءة إشارة من جهاز استشعار ، سنقدم رمزًا للتعرف عليها من خلال قراءة المنفذ التسلسلي لجهاز التحكم المتحكم من Arduino IDE:

#include "IRremote.h" // قم بتوصيل المكتبة للعمل مع إشارة IR.

IRrecv irrecv (2)؛ / / تشير إلى الإخراج الذي يتصل به جهاز الاستقبال

نتائج فك شفرة.

إعداد باطل () {

Serial.begin (9600)؛ / / ضبط سرعة منفذ COM

irrecv.enableIRIn ()؛ // ابدأ الاستقبال

}

حلقة باطلة () {

if (irrecv.decode (& results)) {// إذا جاءت البيانات

Serial.println (results.value، HEX)؛ // طباعة البيانات

irrecv.resume ()؛ / / تقبل الأمر التالي

  }

}

نتيجة لذلك ، عند وميض arduino ، والبدء في "التألق" في جهاز الاستقبال باستخدام جهاز التحكم عن بُعد ، سنرى الصورة التالية في شاشة المنفذ التسلسلي:

مراقبة المنفذ التسلسلي

هذه هي الرموز التي ترسل الأزرار في شكل سداسي عشري. وبالتالي ، يمكنك معرفة أي زر في وحدة التحكم عن بعد يرسل الرمز ، وبالتالي لا توجد متطلبات محددة لجهاز التحكم عن بعد المستخدم ، لأنه يمكنك التعرف على أي وربطه. بالمناسبة ، هذه فكرة لمشروع وحدة تحكم عن بعد عالمية مدربة ، تم بيعها سابقًا. ولكن الآن في عصر الإنترنت ، تتناقص كمية التكنولوجيا التي يتم التحكم بها بهذه الطريقة كل عام.

وباستخدام هذا الرمز ، يمكنك التعرف على الإشارات وإدارة الحمل:

# تضمين "IRremote.h"

IRrecv irrecv (2)؛ / / تشير إلى الإخراج الذي يتصل به جهاز الاستقبال

نتائج فك شفرة.

إعداد باطل () {

irrecv.enableIRIn ()؛ // ابدأ الاستقبال

}

حلقة باطلة () {

if (irrecv.decode (& results)) {// إذا جاءت البيانات

رمز التبديل (النتائج. القيمة) {

الحالة 0xFFA857:

digitalWrite (13 ، عالية) ؛

كسر.

الحالة 0xFFE01F:

digitalWrite (13 ، منخفض) ؛

كسر.

    }   

irrecv.resume ()؛ / / تقبل الأمر التالي

  }

}

الشيء الرئيسي في الكود هو التعرف من خلال وظيفة Switch ، وأحيانًا ما يطلق عليها "switchcase". إنه تمثيلي للفروع إذا كان ، ولكن لديه شكل أكثر جمالا للإدراك. الحالة - هذه هي الخيارات ، "إذا وصل هذا الرمز ، ثم ..." يتحكم الكود في 13 دبابيس لإشارات معينة. واسمحوا لي أن أذكركم بأن مصباح LED المدمج في لوحة ARDUINO متصل بالدبوس 13 ، أي المؤلف من رمز تسيطر على الصمام.

يمكنك التحكم في أي شيء باستخدام دبوس رقمي عالي أو منخفض من خلال ترانزستور طاقة (والذي قمنا بتغطيته في مقالتين سابقًا هنا و هنا) مع الحمل الحالي المباشر ، أو من خلال triac وسائق له مع الحمل الحالي المباشر ، يمكنك أيضًا استخدام التبديلات والملامسات ، بشكل عام ، حقل كامل للخيال.


استقبال إشارة الراديو ونقلها

للاستخدام مع ميكروكنترولر ، تكون أجهزة الإرسال ذات ترددات التشغيل 433 ميجاهرتز أو 315 ميجاهرتز شائعة ، قد تكون هناك ترددات أخرى ، اعتمادًا على اللوحة المحددة ، لكنها الأكثر شيوعًا. يتكون النظام من عقدتين - مستقبل وجهاز إرسال ، وهو أمر منطقي.

استقبال إشارة الراديو ونقلها

في الصورة ، يتم عرض جهاز الإرسال في أعلى اليمين ، وجهاز الاستقبال في أسفل اليسار. اسمهم للبحث: وحدة راديو 433 ميجا هرتز ، MX-05V / XD-RF-5V (مستقبل وجهاز إرسال).

يتم تثبيت pinout ، كما هو الحال غالبًا في الوحدات النمطية ، على اللوحة ، مثل جهاز الإرسال:

جهاز إرسال الراديو

جهاز الاستقبال ليس واضحًا تمامًا ، لأن البيانات الموجودة على لوحة الدوائر المطبوعة تتم كتابتها على اثنين من المسامير ، في الواقع لا يتم استخدام أحدها.

استقبال الراديو

على سبيل المثال ، نقدم مخططًا ورمزًا لتشغيل المصباح من لوحة Arduino متصلة بلوحة مماثلة أخرى ، بدون أسلاك. يتم توصيل المستقبِل والمرسل بنفس الطريقة لكلتا اللوحتين:

المتلقي والارسال على لوحات

جهاز

وحدة

دبابيس اردوينو

المتلقي

VCC

GND

البيانات

+ 5V

GND

2

مرسل

VCC

GND

البيانات

+ 5V

GND

2 

بعد ذلك ، تحتاج إلى توصيل مكتبة RCswitch.h بـ Arduino IDE

للبدء ، نكتب برنامج الإرسال:

# تضمين

RCSwitch mySwitch = RCSwitch()؛ / / قم بإنشاء كائن للعمل مع الواجهة الأمامية

إعداد باطل () {

    mySwitch.enableTransmit(2)؛ / / أخبر البرنامج عن دبوس توصيل قناة المعلومات

}

حلقة باطلة () {

mySwitch.send (B0100،4) ؛

تأخير (1000) ؛

mySwitch.send (B1000، 4)؛

    تأخير (1000) ؛

} 

يمكن للمرسل أن يرسل الشفرة الثنائية ، ولكن يمكن كتابة قيمها في شكل عشري.

mySwitch.send (B0100،4) ؛

و

mySwitch.send (B1000، 4)؛

هذه هي أوامر النقل ، mySwitch هو اسم المرسل الذي أشرنا إليه في بداية الكود ، والإرسال هو أمر النقل. الوسائط لهذه الوظيفة هي:

اسم المرسل. إرسال (القيمة ، وحجم الحزمة من البقول أرسلت إلى الهواء) ؛

B1000 - الرمز B - يعني ثنائيًا ، يمكن كتابته بالرقم 8 ، أي بالتدوين العشري. كان هناك خيار آخر لكتابة "1000" كسلسلة (بعلامات اقتباس).

بعد ذلك ، نكتب رمز جهاز الاستقبال (يتم وميضه في اللوحة التي يتصل بها جهاز الاستقبال):

# تضمين

RCSwitch mySwitch = RCSwitch ()؛

إعداد باطل () {

pinMode (3 ، الإخراج) ؛

mySwitch.enableReceive (0)؛

}

حلقة باطلة () {

إذا (mySwitch.available ()) {

int value = mySwitch.getReceivedValue ()؛

إذا (القيمة == B1000)

digitalWrite (3 ، عالية) ؛

آخر إذا (القيمة == B0100)

digitalWrite (3 ، منخفض) ؛

mySwitch.resetAvailable ()؛

    }

}

نعلن هنا أنه يتم تخزين القيمة المقبولة في متغير القيمة في السلسلة mySwitch.getReceivedValue (). ويرد وصف حقيقة أن المتلقي هو دبوس 2 هنا من قبل mySwiitch.enableReceive (0).

باقي الكود هو عنصر أولي ، إذا تم استلام الإشارة 0100 ، فسيتم تعيين الرقم السري 3 على القيمة العالية (log. Unit) ، وإذا كان 1000 ، ثم إلى low (log. Zero).

عجب الأول:

في السطر mySwitch.enableTransmit (0) ، نقول للبرنامج أن جهاز الاستقبال متصل بالطرف الثاني وأن وضع الاستقبال قيد التشغيل. لاحظت الأكثر اهتمامًا أن وسيطة هذه الطريقة ليست رقم التعريف الشخصي "2" ، ولكن "0" ، والحقيقة هي أن أسلوب enableTransmit (الرقم) لا يقبل رقم التعريف الشخصي ، ولكن رقم المقاطعة ، ولكن في atmega328 اردوينو أونو ، نانو ، بروميني والعديد من الآخرين، على دبوس الثاني (PortD pin PD2) توقف مقاطعة مع الرقم صفر. يمكنك رؤية ذلك في pinm Atmega المطبق على لوحة Arduino ، تتم كتابة أرقام الدبوس في صناديق وردية.

Atmega pinout

إن طريقة الإرسال والاستقبال هذه بسيطة ورخيصة للغاية ؛ حيث يكلف زوج المستقبل وجهاز الإرسال حوالي 1.5 دولار في وقت كتابة هذا التقرير.


Wi-Fi و Adruino و ESP8266

لتبدأ ، ESP8266 هو متحكم مع دعم الأجهزة لشبكة Wi-Fi، يباع كرقاقة منفصلة ، وملحوم إلى المجلس ، مثل اردوينو. يحتوي على نواة 32 بت ، ويتم برمجته عبر منفذ تسلسلي (UART).

تحتوي اللوحات عادةً على دبابيس GPIO مجانية أو أكثر ، وهناك دائمًا دبابيس للبرامج الثابتة ، ويجب أن يتم ذلك عبر USB إلى محول تسلسلي. تحت إدارة فرق AT ، يمكن العثور على قائمة كاملة بالأوامر على موقع ESP8266 الرسمي وعلى جيثب.

ESP8266

هناك خيار أكثر إثارة للاهتمام ، لوحات NodeMCU ، لديهم القدرة على فلاش عبر USB ، لأنه يوجد بالفعل محول USB-UART على السبورة ، وعادة ما يتم تصنيعه على شريحة CP2102. Node MCU عبارة عن برنامج ثابت ، يشبه نظام التشغيل ، وهو مشروع يعتمد على لغة البرمجة النصية Lua.

مجلس NodeMCU

يمكن للبرنامج الثابت تنفيذ البرامج النصية للـ Lua ، إما بقبولها على منفذ تسلسلي أو عن طريق إعادة إنتاج الخوارزميات المخزنة في ذاكرة الفلاش.

بالمناسبة ، لديها نظام ملفات خاص بها ، على الرغم من عدم وجود أدلة فيه ، أي الملفات فقط دون مجلدات. في الذاكرة ، لا يمكن تخزين البرامج النصية فقط ، ولكن أيضًا البيانات المتنوعة ، أي يمكن للمجلس تخزين المعلومات المسجلة ، على سبيل المثال ، من أجهزة الاستشعار.

تعمل اللوحة مع واجهات:

  • 1-البرقية؛

  • I2C.

  • SPI.

  • UART.

لديها مجموعة كاملة من الوظائف:

  • وحدة التشفير ؛

  • جدولة المهام ؛

  • الوقت الحقيقي على مدار الساعة.

  • بروتوكول تزامن الساعة عبر الإنترنت SNTP ؛

  • توقيت.

  • قناة ADC (واحد) ؛

  • تشغيل الملفات الصوتية ؛

  • توليد إشارة عند النواتج PWM (حتى 6) ؛

  • استخدم مآخذ توصيل ، وهناك دعم لـ FatFS ، أي يمكنك توصيل بطاقات SD وما إلى ذلك.

ESP-12E

وفيما يلي قائمة قصيرة بما يمكن للمجلس أن يعمل به:

  • التسارع ADXL345.

  • HMC5883L المغناطيسية

  • الجيروسكوبات L3G4200D ؛

  • أجهزة استشعار درجة الحرارة والرطوبة AM2320 ، DHT11 ، DHT21 ، DHT22 ، DHT33 ، DHT44 ؛

  • أجهزة استشعار درجة الحرارة والرطوبة والضغط الجوي BME280 ؛

  • درجة الحرارة والضغط الجوي مجسات BMP085.

  • العديد من العروض تعمل على I2C ، SPI الحافلات. مع القدرة على العمل مع خطوط مختلفة.

  • يعرض TFT ILI9163 و ILI9341 و PCF8833 و SEPS225 و SSD1331 و SSD1351 و ST7735 ؛

  • المصابيح الذكية وأجهزة التحكم LED - WS2812 ، tm1829 ، WS2801 ، WS2812.

بالإضافة إلى استخدام لغة Lua ، يمكنك برمجة اللوحة من أسفل Arduino IDE.

يمكن استخدام ESP8266 كجهاز مستقل أو كوحدة نمطية للاتصال اللاسلكي مع Arduino.

وحدة للاتصالات اللاسلكية مع اردوينو

سيستغرق النظر في جميع وظائف وميزات هذا المنتدى سلسلة كاملة من المقالات.

لذا فإن هذه اللوحة تعد خيارًا رائعًا للتحكم عن بعد عبر Wi-Fi. يكون النطاق هائلاً ، على سبيل المثال ، لاستخدام الهاتف الذكي كلوحة تحكم لآلة تحكم أو راديو quadrocopter مؤقتة ، التحكم في الإضاءة عن بعد، ما يصل إلى ترتيب شبكات للمنزل بأكمله وإدارة كل منفذ ، مصباح ، إلخ. إذا كان هناك فقط ما يكفي من المسامير.

إن أبسط طريقة للعمل مع المتحكم الدقيق هي استخدام لوحة ESP8266 واحدة. يوجد أدناه مخطط لمنفذ Wi-fi بسيط.

مخطط أبسط منفذ واي فاي

لتجميع هذه الدائرة ، تحتاج إلى وحدة ترحيل أو مرحل تقليدي متصل بدبوس من خلال الترانزستور. تحتاج أولاً إلى برنامج لهاتف ذكي RoboRemoFree ،. في ذلك ، سوف تقوم بتكوين الاتصال إلى ESP وجعل واجهة للسيطرة على المخرج. لوصف كيفية استخدامها ، تحتاج إلى كتابة مقالة منفصلة ، لذلك دعونا نحذف هذه المادة في الوقت الحالي.

في ESP نقوم بتحميل البرامج الثابتة التالية ، من خلال برنامج ESPlorer (برنامج للعمل مع اللوحة)

- واي فاي AP Settup

wifi.setmode (wifi.STATIONAP)

cfg = {}

cfg.ssid = "ESPTEST"

cfg.pwd = "1234567890"

wifi.ap.config (cfg)

- وضع وضع دبوس

my_pin_nummber = 1

--gpio.mode (my_pin_nummber، gpio.OUTPUT)

gpio.mode (my_pin_nummber ، gpio.OPENDRAIN)

- إنشاء خادم

sv = net.createServer (net.TCP)

وظيفة الاستقبال (sck ، البيانات)

إذا string.sub (البيانات ، 0 ، 1) == "1" بعد ذلك

--gpio.write (my_pin_nummber ، gpio.HIGH)

gpio.write (my_pin_nummber ، gpio.LOW)

آخر

إذا string.sub (البيانات ، 0 ، 1) == "0" بعد ذلك

--gpio.write (my_pin_nummber، gpio.LOW)

gpio.write (my_pin_nummber ، gpio.HIGH)

نهاية

نهاية

طباعة (بيانات)

نهاية

إذا SV ثم

sv: استماع (333 ، وظيفة (conn)

كون: على ("استقبال" ، المتلقي)

conn: send ("Hello!")

النهاية)

نهاية

- إنشاء خادم HTTP

http = net.createServer (net.TCP)

وظيفة rece_http (sck ، بيانات)

طباعة (بيانات)

طلب محلي = string.match (بيانات ، "([^ \ r ، \ n] *) [\ r ، \ n]" ، 1)

إذا طلب == "الحصول على / على HTTP / 1.1" ثم

--gpio.write (my_pin_nummber ، gpio.HIGH)

gpio.write (my_pin_nummber ، gpio.LOW)

نهاية

إذا طلب == "الحصول على / إيقاف HTTP / 1.1" ثم

--gpio.write (my_pin_nummber، gpio.LOW)

gpio.write (my_pin_nummber ، gpio.HIGH)

نهاية

sck: on ("sent"، function (sck) sck: close () end collectgarbage () end)

استجابة محلية = "HTTP / 1.0 200 موافق \ r \ n الخادم: NodeMCU على ESP8266 \ r \ n نوع المحتوى: text / html \ r \ n \ r \ n" ..

" NodeMCU على ESP8266 " ..

"

NodeMCU على ESP8266

" ..

"


" ..

" On Off " ..

" "

sck: إرسال (استجابة)

نهاية

إذا المتشعب ثم

http: استماع (80 ، وظيفة (كون)

conn: on ("received"، rece_http)

النهاية)

نهاية

طباعة ("بدأت")

يمكنك الآن التحكم في البرنامج إما من برنامج Roboremo ، أو من خلال أي متصفح ويب ، لذلك تحتاج إلى كتابة عنوان IP للوحة في شريط العناوين في وضع نقطة wi-fi 192.168.4.1.

يوجد مقتطف في الكود:

" NodeMCU على ESP8266 " ..

"

NodeMCU على ESP8266

" ..

"


" ..

" On Off " ..

" "

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

الصفحة في متصفح الهاتف الذكي الذي يعمل بنظام التشغيل Android OS

هذه هي الصفحة التي تم إطلاقها في متصفح هاتف ذكي يعمل بنظام Android OS. ما سبق ليس تعليماً كاملاً ، لأنه سيستغرق مبلغًا كبيرًا ، إذا كنت مهتمًا بهذه المعلومات - اكتب التعليقات وسنقوم بالتأكيد بمراجعة وكتابة مقال حول العمل معها.

انظر أيضا في bgv.electricianexp.com:

  • ربط وبرمجة اردوينو للمبتدئين
  • طرق لقراءة وإدارة منافذ الإدخال / الإخراج من Arduino
  • ما هي عروض Nextion وكيفية العمل معها؟
  • ميكروكنترولر للبرمجة في جافا سكريبت: أي واحد للاختيار ، الخصائص ...
  • أنواع وترتيب ميكروكنترولر AVR

  •