جدول المحتويات:
- الخطوة 1: المتطلبات الأساسية
- الخطوة الثانية: بناء المجلس
- الخطوة 3: التخطيطي
- الخطوة 4: إضافة مكتبة Irremote إلى برنامج Arduino
- الخطوة 5: سجل الرموز من أجهزة التحكم عن بعد
- الخطوة السادسة: قم بإنشاء صفحة ويب لجهاز التحكم عن بعد
- الخطوة 7: قم بتحميل رمز التحكم عن بعد إلى Arduino الخاص بك
- الخطوة 8: الاتصال بخادم الويب من جهاز الكمبيوتر الخاص بك
- الخطوة 9: خطوة اختيارية: قم بتحرير ملف Hosts الخاص بك لتسهيل استخدامه
فيديو: جهاز التحكم عن بعد المستند إلى متصفح Arduino (لينكس): 9 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:36
لدينا أطفال. أحبهم كثيرًا لكنهم ظلوا يخفون جهاز التحكم عن بعد للقمر الصناعي والتلفزيون عندما يضعون قنوات الأطفال. بعد أن حدث هذا بشكل يومي لعدة سنوات ، وبعد أن سمحت لي زوجتي العزيزة بالحصول على Arduino لعيد الميلاد ، قررت أن الوقت قد حان لصنع شيء مفيد (في عينيها!) باستخدام Arduino. إذن لدينا هنا تتويجًا لذلك: واجهة على شبكة الإنترنت إلى Arduino تحل محل أجهزة التحكم عن بعد الخاصة بي ويمكن الوصول إليها من شبكتي الداخلية. عندما أكتشف سبب عدم سماح درع إيثرنت لاردوينو الخاص بي بالاحتفاظ برسم تخطيطي ، سأكتب رسمًا جديدًا يستخدم درع الإيثرنت كخادم ويب ، مما يعني أنني لست بحاجة إلى تثبيت اباتشي على جهاز الكمبيوتر الخاص بي. ترقبوا ، سأصل إلى هناك!
الخطوة 1: المتطلبات الأساسية
الأجهزة: جانب Arduino: Arduino - أنا أستخدم Arduino Uno R2 Breadboard - متجر الإلكترونيات المحلي الخاص بك ، أو المطبخ إذا كنت تريد غلافًا أصليًا لتركيب اللوح - لقد استخدمت علبة بلاستيكية قديمة بغطاء شفاف. واحد من جهاز تحكم عن بعد مكسور (بفضل الأطفال!) جهاز استقبال الأشعة تحت الحمراء - حصلت على ترانزيستور من موسع سحري للعين عن بعد - استخدمت مقاومًا BC547 - استخدمت مقاومة متغيرة 1.5 كيلو أوم مضبوطة على 1 كيلو أوم أسلاك توصيل لوحة بريدية - حصلت على منجم من بكرة كبل RJ45 ذات النواة الصلبة جانب الكمبيوتر: الكمبيوتر المراد استخدامه كخادم USB يؤدي إلى برنامج Arduino: برنامج Arduino - من مكتبة arduino.cc irremote - من https://www.arcfn.com/2009/08/multi-protocol- infrared-remote-library.html (شكرًا لك ، عمل رائع!) خادم الويب Apache مع تثبيت PHP - عنوان IP الداخلي apache.org - لي هو 192.168.0.9 صورة لجهاز التحكم عن بُعد - google أو صورة تم التقاطها على الكاميرا. لقد قمت بحفظها بدقة 200 × 600
الخطوة الثانية: بناء المجلس
يوصى بشدة باستخدام لوح التجارب لاردوينو. لقد قمت بتركيب Arduino الخاص بي ولوح التجارب في نفس العلبة وقمت بتوصيل جميع المسامير التي أستخدمها بشكل منتظم مباشرة على اللوح بشكل دائم. دبابيس Arduino المستخدمة في هذا المشروع: 5 فولت ، دبابيس رقمية أرضية 3 ، 11 (دبوس 3 يتحكم في IR LED ، دبوس 11 يتصل بجهاز استقبال الأشعة تحت الحمراء)
الخطوة 3: التخطيطي
هذا التخطيطي بسيط للغاية ، 4 مكونات و 6 أسلاك. توصيلات IR LED: قم بتوصيل أحد أرجل المقاوم بدبوس Arduino الرقمي 3 قم بتوصيل الجزء الآخر من المقاوم بالدبوس الأساسي للترانزستور (الساق الوسطى في حالتي) قم بتوصيل باعث الترانزستور بالأرض قم بتوصيل المجمع من الترانزستور إلى الساق السالبة من LED (ساق قصيرة ، جانب مسطح من LED) قم بتوصيل الساق الموجبة (ساق طويلة ، جانب منحني) من LED بوصلات مستقبل 5 فولت IR (ستحتاج إلى العثور على pinout لـ جهاز استقبال الأشعة تحت الحمراء الخاص بك): GND pin to ground VS pin to 5v VO pin to Arduino digital pin 11
الخطوة 4: إضافة مكتبة Irremote إلى برنامج Arduino
irremote هي مكتبة رائعة كتبها كين شريف ومتاحة من مدونته على https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html قم بتنزيل المكتبة من https:// arcfn.com / files / IRremote.zip وتثبيته كما تفعل مع أي مكتبة أخرى لاردوينو. تحتوي مدونته على الكثير من المعلومات المفيدة حول المكتبة وكيفية تثبيتها.
الخطوة 5: سجل الرموز من أجهزة التحكم عن بعد
ها هي بداية الجزء الممل (ولكن الذي لا مفر منه): الضغط على كل زر في جهاز التحكم عن بعد وحفظ سلسلة الإخراج وتعيينها إلى جهاز التحكم عن بعد الافتراضي. ما عليك سوى القيام بذلك مرة واحدة ، وتوقع أن تستغرق حوالي 20 دقيقة أو نحو ذلك. ابدأ محرر نصوص لحفظ مخرجاتك. أنشئ مستندًا جديدًا واكتب كل زر على جهاز التحكم عن بُعد ، زرًا واحدًا في كل سطر: Power Up Down Left Right.. إلخ. ابدأ تشغيل Arduino IDE وانقر فوق "ملفات-> أمثلة-> IRremote-> IRrecvDump" وقم بتحميله إلى اردوينو الخاص بك. سيقوم هذا المثال بتفريغ الرموز البعيدة إلى المنفذ التسلسلي. ابدأ تشغيل شاشة المنفذ التسلسلي واضغط على أحد المفاتيح بجهاز التحكم عن بُعد. سترى سلسلة تظهر في نافذة الشاشة التسلسلية: "Decoded *: * (* bits)". انسخ هذا السطر واحفظه في مستندك في السطر المناسب. كرر حتى يتم تخزين جميع مفاتيحك في ملف نصي. أعرف مدى متعة هذا الجزء ، لقد فعلته مرتين حتى الآن: P نحتاج الآن إلى إجراء القليل من البحث والاستبدال في الملف النصي: ابحث عن "Decoded" واستبدل بـ "" search for ": 0x" واستبدل بـ "،" ابحث عن "(" استبدل بـ "،" ابحث عن "بت)" استبدل بـ "" لذلك بالنسبة إلى سطر مثل: NEC الذي تم فك ترميزه: 0x000110 (15 بت) ، يجب أن يكون لدينا الآن سطر يقول: NEC ، 000110 ، 15
الخطوة السادسة: قم بإنشاء صفحة ويب لجهاز التحكم عن بعد
نحتاج الآن إلى تعيين الأزرار الموجودة على صورتك لجهاز التحكم عن بُعد.
لقد استخدمت https://www.maschek.hu/imagemap/imgmap لتعيين الأزرار وتعديل الكود الذي يوفره لك موقع الويب لجعله يعمل.
انقر فوق "استخدام صورة على جهاز الكمبيوتر الخاص بك: [اختر ملفًا]" ، حدد صورتك ، انقر فوق [تحميل] ، انقر فوق [قبول] إسقاط المستطيلات والدوائر وما إلى ذلك في كل زر. بالنسبة إلى HREF ، ضع /remote.php؟command= والسطر لهذا الزر من المستند النصي على سبيل المثال /remote.php؟command=NEC، 000110، 15 سيكون من الحكمة (ويساعد كثيرًا في تصحيح الأخطاء) إذا قمت أيضًا بملء Alt: مع اسم الزر ولكن هذا الأمر متروك لك.
كرر لكل زر.
كله تمام؟ ثم سنواصل. في الجزء السفلي من هذه الصفحة يوجد "رمز" ، انقر فوق ذلك وسيتم فتح مربع يعرض رمز خريطة imageMap. انسخ ذلك والصقه في مستند نصي جديد. هذا هو الجزء الرئيسي من صفحة الويب الخاصة بنا.
ها هي صفحة الويب الكاملة الخاصة بي ، فقط استبدل…
باستخدام الكود الخاص بك أعلاه وحفظه كـ remote.php في دليل الويب الخاص بك (/ var / www on linux) جنبًا إلى جنب مع صور جهاز التحكم عن بُعد. قم بتغيير خطوط الصور الخاصة بك:
"https://www.w3.org/TR/html4/loose.dtd">
تحكم اردوينو LED
الخطوة 7: قم بتحميل رمز التحكم عن بعد إلى Arduino الخاص بك
أنشئ رسمًا جديدًا والصق الكود التالي فيه: / * * WebRemote * يجب توصيل IR LED بـ Arduino PWM pin 3. * الإصدار 0.1 يوليو ، 2009 * حقوق الطبع والنشر لهذا الرمز Gregory Fenton ، https://labby.co. uk / 2012/02 / irremote-arduino-experienceation / * حقوق الطبع والنشر لمكتبة IRremote 2009 Ken Shirriff ، https://arcfn.com * / #include template inline Print & المشغل << (Print & obj، T arg) {obj.print (arg) ؛ هدف العودة } قيمة منطقية = خطأ ؛ شار inData [64]؛ // الحجم حسب مؤشر البايت المناسب = 0 ؛ #define EOP "\ n" IRsend irsend؛ إعداد باطل () {Serial.begin (9600) ؛ المسلسل << "تهيئة المنفذ التسلسلي" << EOP ؛ } حلقة فارغة () {String pch، sType، sTemp؛ شار inChar ، sTest ، k ؛ عدد البتات عرافة طويلة int أنا ، ي ؛ while (1) {while (Serial.available ()> 0) {inChar = Serial.read () ؛ إذا (الفهرس == 0) {pch = "" ؛ } if (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {ended = true؛ الفهرس = 0 ؛ استراحة؛ } else {if (index <64) // Array size {pch + = inChar؛ فهرس ++ ؛ }}} إذا (انتهت) {// تحليل البيانات الموجودة في البيانات هنا… pch.toUpperCase ()؛ أنا = pch.indexOf ('')! = -1؟ pch.indexOf (''): pch.indexOf ('،') ؛ sType = pch.substring (0، i) ؛ أنا ++ ؛ // تخطي '،' أو '' // أنا الآن أشير إلى بداية hex j = pch.lastIndexOf ('')! = -1؟ pch.lastIndexOf (''): pch.lastIndexOf ('،') ؛ // j يشير الآن إلى "،" أو "بعد السداسي عشري sHex = 0 ؛ sTemp = pch.substring (i، j) ؛ if (sTemp.substring (0، 2) == String ("0X")) sTemp = sTemp.substring (2) ؛ لـ (i = 0 ؛ i <sTemp.length () ؛ i ++) {k = sTemp ؛ إذا (! ((k> = '0' && k = 'A' && k <= 'F'))) استراحة ؛ عرافة * = 16 ؛ إذا (k> = '0' && k <= '9') sHex + = (k - '0') ؛ وإلا إذا (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10) ؛ إذا (! ((k> = '0' && k = 'A' && k <= 'F'))) استراحة ؛ } sTemp = pch.substring (j + 1) ، سبت = 0 ؛ لـ (i = 0 ؛ i <sTemp.length () ؛ i ++) {k = sTemp ؛ وحدات بت * = 10 ؛ إذا (ك> = '0' && k <= '9') سبت + = (ك - '0') ؛ } if (sType.length ()> 0) {Serial << pch << EOP << "نوع الكود:" << sType << "Hex:"؛ Serial.print (sHex ، HEX) ؛ المسلسل << "Bits:" << sBits؛ } sendIt (sType، sHex، sBits) ؛ pch = "" ؛ انتهى = 0 ؛ }}} إرسال باطل (String sType، long sHex، int sBits) {for (int i = 0؛ i <2؛ i ++) {if (sType.equals (String ("RC6"))) {irsend.sendRC6 (sHex ، بت) ؛ } else if (sType.equals (String ("RC5"))) {irsend.sendRC5 (sHex، sBits)؛ } else if (sType.equals (String ("SONY"))) {irsend.sendSony (sHex، sBits)؛ } else if (sType.equals (String ("NEC"))) {if (! i) irsend.sendNEC (sHex، sBits)؛ } else if (sType.equals (String (""))) {Serial << "Delaying" << EOP؛ تأخير (450) ؛ } تأخير (30)؛ }}
الخطوة 8: الاتصال بخادم الويب من جهاز الكمبيوتر الخاص بك
.. أو الهاتف أو android أو ipad أو أيًا كان: انتقل إلى https:// webserver IP address / remote.php في متصفحك بالنسبة لي ، العنوان هو https://192.168.0.9/remote.php ولكن عنوانك سيكون مختلفًا بلا شك. إذا كان كل شيء يعمل ، يجب أن ترى صورة لجهاز التحكم عن بعد مع أزرار يمكنك النقر فوقها.
الخطوة 9: خطوة اختيارية: قم بتحرير ملف Hosts الخاص بك لتسهيل استخدامه
كانت الخطوة التي قمت بها هي تحرير ملف المضيفين (/ etc / hosts على linux ، C: / Windows / System32 / Drivers / etc / hosts على windows). لاحظ أنه لا يمكن تحرير هذا الملف إلا في موجه أوامر إداري (windows) أو عن طريق su (linux) أضف السطر ip.add.re.ss عن بُعد واستبدل ip.add.re.ss بعنوان IP للخادم واحفظ الملف. ستحتاج إلى القيام بذلك على كل جهاز ترغب في الوصول إلى صفحة الويب بالاسم المختصر. يمكنك الآن الوصول إلى جهاز التحكم عن بُعد باستخدام https://remote/remote.php هذا هو أول تدريب مناسب لي ، كن لطيفًا وأخبرني إذا كانت هناك أي مشاكل حتى أتمكن من إصلاحها.
موصى به:
أصبح جهاز التحكم عن بعد في التلفزيون جهاز تحكم عن بعد بالتردد اللاسلكي -- NRF24L01 + البرنامج التعليمي: 5 خطوات (بالصور)
أصبح جهاز التحكم عن بعد في التلفزيون جهاز تحكم عن بعد بالتردد اللاسلكي || NRF24L01 + Tutorial: في هذا المشروع سأوضح لك كيف استخدمت nRF24L01 + RF IC لضبط سطوع شريط LED لاسلكيًا من خلال ثلاثة أزرار غير مجدية لجهاز التحكم عن بعد في التلفزيون. هيا بنا نبدأ
قم بتحويل جهاز التحكم عن بعد IR الخاص بك إلى جهاز التحكم عن بعد RF: 9 خطوات (بالصور)
قم بتحويل جهاز التحكم عن بعد IR الخاص بك إلى جهاز التحكم عن بعد RF: في Instructable اليوم ، سأوضح لك كيف يمكنك استخدام وحدة RF العامة بدون وحدة تحكم دقيقة والتي ستقودنا في النهاية إلى بناء مشروع حيث يمكنك تحويل IR Remote لأي جهاز إلى RF بعيد. الميزة الرئيسية لتحويل
أضف مقياس سرعة الدوران البصري المستند إلى Arduino إلى جهاز التوجيه CNC: 34 خطوة (بالصور)
أضف مقياس سرعة الدوران البصري المستند إلى Arduino إلى جهاز التوجيه CNC: قم ببناء مؤشر RPM بصري لجهاز التوجيه CNC الخاص بك باستخدام Arduino Nano ، ومستشعر IR LED / IR Photodiode وشاشة OLED بأقل من 30 دولارًا. لقد استلهمت الأمر من قياس rPM الخاص بـ eletro18 - مقياس سرعة الدوران البصري Instructable وأردت إضافة مقياس سرعة الدوران
تحكم في أجهزتك الكهربائية باستخدام جهاز التحكم عن بعد الخاص بالتلفزيون (جهاز التحكم عن بعد بالأشعة تحت الحمراء) مع عرض درجة الحرارة والرطوبة: 9 خطوات
تحكم في أجهزتك الكهربائية باستخدام جهاز التحكم عن بعد في التلفزيون (جهاز التحكم عن بعد بالأشعة تحت الحمراء) مع شاشة عرض درجة الحرارة والرطوبة: مرحبًا ، أنا أبهاي وهي أول مدونة لي على Instructables واليوم سأوضح لك كيفية التحكم في أجهزتك الكهربائية باستخدام جهاز التحكم عن بعد الخاص بالتلفزيون عن طريق بناء هذا مشروع بسيط. بفضل مختبر atl لدعمه وتوفير المواد
إصدار كابل التحكم عن بُعد من Olympus Evolt E510 (الإصدار 2 مع التركيز التلقائي على جهاز التحكم عن بُعد): 6 خطوات (بالصور)
إصدار الكبل عن بُعد من Olympus Evolt E510 (الإصدار 2 مع التركيز التلقائي على جهاز التحكم عن بُعد): قمت بالأمس ببناء جهاز تحكم عن بعد بزر واحد بسيط لجهاز Olympus E510 الخاص بي. تحتوي معظم الكاميرات على زر تحرير الغالق (الزر الذي تضغط عليه لالتقاط صورة) الذي يحتوي على وضعين. إذا تم الضغط على الزر برفق ، فستقوم الكاميرا بالتركيز التلقائي وقياس الضوء