فهرست مطالب:

کنترل از راه دور مبتنی بر مرورگر آردوینو (لینوکس): 9 مرحله (همراه با تصاویر)
کنترل از راه دور مبتنی بر مرورگر آردوینو (لینوکس): 9 مرحله (همراه با تصاویر)

تصویری: کنترل از راه دور مبتنی بر مرورگر آردوینو (لینوکس): 9 مرحله (همراه با تصاویر)

تصویری: کنترل از راه دور مبتنی بر مرورگر آردوینو (لینوکس): 9 مرحله (همراه با تصاویر)
تصویری: Lesson 1: What is Arduino? Types of Arduino Boards and SunFounder Kit | SunFounder Robojax 2024, نوامبر
Anonim
کنترل از راه دور مبتنی بر مرورگر آردوینو (لینوکس)
کنترل از راه دور مبتنی بر مرورگر آردوینو (لینوکس)
کنترل از راه دور مبتنی بر مرورگر آردوینو (لینوکس)
کنترل از راه دور مبتنی بر مرورگر آردوینو (لینوکس)

ما بچه داریم. من آنها را کمی دوست دارم اما وقتی کانال های کودکان را روشن می کنند ، کنترل از راه دور را برای ماهواره و تلویزیون پنهان می کنند. بعد از چندین سال این اتفاق به صورت روزانه و بعد از اینکه همسر عزیزم به من اجازه داد تا برای کریسمس آردوینو داشته باشم ، تصمیم گرفتم که وقت آن رسیده است که با آردوینو چیزی مفید (در نظر او!) بسازم. بنابراین در اینجا ما نقطه اوج آن را داریم: یک رابط مبتنی بر وب برای آردوینو که جایگزین کنترل از راه دور من می شود و از طریق شبکه داخلی من قابل دسترسی است. هنگامی که می فهمم چرا سپر اترنت من به arduino من اجازه نمی دهد تا طرح خود را حفظ کند ، یک طرح جدید می نویسم که از سپر اترنت به عنوان سرور وب استفاده می کند ، به این معنی که من نیازی به apache نصب شده بر روی کامپیوتر خود ندارم. منتظر باشید ، من به آنجا می رسم!

مرحله 1: پیش نیازها

پیش نیازها
پیش نیازها

سخت افزار: سمت آردوینو: آردوینو - من از Arduino Uno R2 Breadboard استفاده می کنم - مغازه لوازم الکترونیکی محلی شما یا آشپزخانه اگر می خواهید محفظه نصب برای ورق نان معتبر باشد - من از یک جعبه پلاستیکی قدیمی با درب شفاف استفاده کردم. یکی از کنترل از راه دور شکسته (بچه ها تشکر می کنم!) گیرنده مادون قرمز - من از ترانزیستور تقویت کننده از راه دور چشم جادویی استفاده کردم - از یک مقاومت BC547 استفاده کردم - از یک مقاومت متغیر 1.5 کیلو اهم استفاده کردم که روی 1 کیلو اهم سیم های بلوز تخته نورد تنظیم شده بود - من خودم را دریافت کردم از یک حلقه کابل RJ45 با هسته اصلی سمت کامپیوتر: کامپیوتر برای استفاده به عنوان سرور USB از سرور به نرم افزار Arduino: نرم افزار Arduino - از arduino.cc irremote library - از https://www.arcfn.com/2009/08/multi-protocol- infrared -remote -library.html (با تشکر کن ، کار بسیار خوبی است!) وب سرور Apache با PHP نصب شده - apache.org آدرس IP داخلی - آدرس 192.168.0.9 است تصویر کنترل از راه دور خود - google یا تصویری که از دوربین شما گرفته شده است. من رزولوشن 200x600 را ذخیره کردم

مرحله 2: ایجاد هیئت مدیره

ساختن تخته
ساختن تخته

استفاده از تخته نان برای آردوینو بسیار توصیه می شود. من آردوینو و یک تخته نان را در همان محفظه نصب کردم و تمام پین هایی را که به طور مرتب استفاده می کنم مستقیماً به طور دائم روی تخته نان وصل کردم. پین های آردوینو مورد استفاده برای این پروژه: 5 ولت ، پایه های دیجیتال زمین 3 ، 11 (پین 3 LED IR را کنترل می کند ، پین 11 به گیرنده IR متصل می شود)

مرحله 3: شماتیک

شماتیک
شماتیک

این شماتیک بسیار ساده است ، 4 جزء و 6 سیم دارد. اتصالات LED IR: یکی از پایه های مقاومت را به پین دیجیتال آردوینو وصل کنید 3 پای دیگر مقاومت را به پایه پایه ترانزیستور وصل کنید (در مورد من پای وسط) امیتر ترانزیستور را به زمین وصل کنید کلکتور را وصل کنید ترانزیستور به پای منفی LED (پای کوتاه ، سمت مسطح LED) پای مثبت (پای بلند ، سمت خمیده) LED را به اتصالات گیرنده IR 5 پین وصل کنید (باید پین را برای گیرنده IR خاص شما): پین GND به پین VS زمینی تا پین VO 5V به پین دیجیتال آردوینو 11

مرحله 4: کتابخانه Irremote را به نرم افزار Arduino اضافه کنید

کتابخانه Irremote را به نرم افزار آردوینو اضافه کنید
کتابخانه Irremote را به نرم افزار آردوینو اضافه کنید

irremote یک کتابخانه عالی است که توسط کن شریرف نوشته شده است و از وبلاگ وی به آدرس https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html در دسترس است کتابخانه را از https:// arcfn.com/files/IRremote.zip و آن را مانند سایر کتابخانه های آردوینو نصب کنید. وبلاگ او اطلاعات مفید زیادی در مورد کتابخانه و نحوه نصب آن دارد.

مرحله 5: کدها را از ریموت کنترل خود ضبط کنید

در اینجا شروع قسمت خسته کننده (اما اجتناب ناپذیر) است: با فشار دادن هر دکمه روی کنترل از راه دور ، رشته خروجی را ذخیره کرده و روی کنترل از راه دور مجازی نقشه برداری کنید. شما فقط باید یک بار این کار را انجام دهید ، انتظار می رود تقریباً 20 دقیقه یا بیشتر طول بکشد. برای ذخیره خروجی خود ، ویرایشگر متن را راه اندازی کنید. یک سند جدید ایجاد کنید و هر دکمه روی کنترل از راه دور خود را تایپ کنید: آردوینو شما این مثال کدهای راه دور را به پورت سریال منتقل می کند. مانیتور پورت سریال را راه اندازی کنید و یک کلید روی کنترل از راه دور خود را فشار دهید. خواهید دید که یک رشته در پنجره سریال مانیتور ظاهر می شود: "رمزگشایی *: * (* بیت)". این خط را کپی کرده و در سند خود در خط مناسب ذخیره کنید. این کار را تکرار کنید تا همه کلیدهای خود را در فایل متنی ذخیره کنید. من می دانم که این بیت چقدر سرگرم کننده است ، من تا به حال دو بار آن را انجام داده ام: P ما اکنون باید کمی جستجو و جایگزینی را در فایل متنی انجام دهیم: عبارت "Decoded" را جایگزین "" search for ": 0x" جایگزین کنید "،" search for "(" جایگزینی با "،" جستجو برای "بیت" "جایگزینی با" "بنابراین برای خطی مانند: رمزگشایی NEC: 0x000110 (15 بیت) ما اکنون باید یک خط داشته باشیم که می گوید: NEC ، 000110 ، 15

مرحله 6: صفحه وب را برای کنترل از راه دور خود ایجاد کنید

اکنون باید دکمه های روی تصویر شما از کنترل از راه دور را نقشه برداری کنیم.

من از https://www.maschek.hu/imagemap/imgmap برای ترسیم نقشه دکمه ها استفاده کردم و کدی را که وب سایت به شما می دهد تغییر دادم تا کار کند.

روی "استفاده از یک تصویر در رایانه خود: [انتخاب فایل]" کلیک کنید ، تصویر خود را انتخاب کنید ، روی [بارگذاری] کلیک کنید ، روی [پذیرش] رها کردن مستطیل ها ، حلقه ها و غیره بر روی هر دکمه کلیک کنید. برای HREF قرار دهید /remote.php؟command= و خط آن دکمه از سند متنی به عنوان مثال /remote.php؟command=NEC، 000110، 15 اگر شما نیز آن را پر کنید عاقلانه خواهد بود (و در اشکال زدایی بسیار کمک می کند). Alt: با نام دکمه اما این به شما بستگی دارد.

برای هر دکمه این کار را تکرار کنید.

تمام شد؟ سپس ادامه می دهیم. در انتهای آن صفحه "Code" قرار دارد ، روی آن کلیک کنید و کادری باز می شود که کد نقشه تصویر را نشان می دهد. آن را کپی کرده و در یک سند متنی جدید جایگذاری کنید. این قسمت اصلی صفحه وب ما است.

در اینجا صفحه وب من کامل است ، فقط جایگزین کنید…

با کد خود در بالا و آن را به عنوان remote.php در فهرست وب خود (/var/www on linux) به همراه تصاویر کنترل از راه دور خود ذخیره کنید. خطوط تصاویر خود را تغییر دهید:

"https://www.w3.org/TR/html4/loose.dtd">

کنترل LED آردوینو

مرحله 7: کد کنترل از راه دور را در Arduino خود بارگذاری کنید

کد کنترل از راه دور را در آردوینو خود بارگذاری کنید
کد کنترل از راه دور را در آردوینو خود بارگذاری کنید

یک طرح جدید ایجاد کنید و کد زیر را در آن بچسبانید: uk/2012/02/irremote-arduino-experimental/ * IRremote Library کپی رایت 2009 Ken Shirriff، https://arcfn.com */ #شامل قالب داخلی چاپ و اپراتور << (Print & obj، T arg) {obj.print (arg)؛ بازگشت obj؛ } boolean end = false؛ char inData [64]؛ // اندازه متناسب با شاخص بایت = 0؛ #تعریف EOP "\ n" IRsend irsend؛ void setup () {Serial.begin (9600)؛ سریال << "پورت سریال راه اندازی شد" << EOP؛ } void loop () {string pch، sType، sTemp؛ char inChar، sTest، k؛ int sBits ؛ sHex طولانی ؛ int i، j؛ while (1) {while (Serial.available ()> 0) {inChar = Serial.read ()؛ if (index == 0) {pch = ""؛ } if (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {end = true؛ index = 0؛ زنگ تفريح؛ } else {if (index <64) // اندازه آرایه {pch += inChar؛ شاخص ++ ؛ }}} if (end) {// تجزیه داده ها در inData اینجا … pch.toUpperCase ()؛ i = pch.indexOf ('')! = -1؟ pch.indexOf (''): pch.indexOf ('،')؛ sType = pch.substring (0 ، i) ؛ من ++ ؛ // از حال عبور کنید '،' یا '' // من اکنون به شروع hex j = pch.lastIndexOf ('') اشاره می کنم! = -1؟ pch.lastIndexOf (''): pch.lastIndexOf ('،')؛ // j پس از hex 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'))) شکستن ؛ sHex *= 16 ؛ if (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)؛ sBits = 0؛ برای (i = 0؛ i <sTemp.length ()؛ i ++) {k = sTemp ؛ sBits *= 10 ؛ if (k> = '0' && k <= '9') sBits += (k - '0')؛ } if (sType.length ()> 0) {سریال << pch << EOP << "نوع کد:" << sType << "Hex:"؛ Serial.print (sHex ، HEX) ؛ سریال << "بیت:" << sBits؛ } sendIt (sType ، sHex ، sBits) ؛ pch = ""؛ به پایان رسید = 0 ؛ }}} void sendIt (String sType ، long sHex، int sBits) {for (int i = 0؛ i <2؛ i ++) {if (sType.equals (String ("RC6"))) {irsend.sendRC6 (sHex ، sBits) ؛ } 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: از رایانه خود به سرور وب متصل شوید

از رایانه خود به سرور وب متصل شوید
از رایانه خود به سرور وب متصل شوید

. اگر همه چیز کار می کند ، باید تصویری از کنترل از راه دور خود را با دکمه هایی مشاهده کنید که می توانید روی آنها کلیک کنید.

مرحله 9: مرحله اختیاری: فایل میزبان خود را ویرایش کنید تا استفاده از آن آسان تر شود

مرحله اختیاری: فایل میزبان خود را ویرایش کنید تا استفاده از آن آسان تر شود
مرحله اختیاری: فایل میزبان خود را ویرایش کنید تا استفاده از آن آسان تر شود

گامی که من انجام دادم ویرایش فایل میزبان من (/etc/hosts در linux ، C: / Windows / System32 / Drivers / etc / host در Windows) بود. توجه داشته باشید که این فایل فقط در یک فرمان فرمان اداری (ویندوز) یا توسط su (linux) قابل ویرایش است. خط ip.add.re.ss را از راه دور جایگزین ip.add.re.ss با آدرس IP سرور کرده و فایل را ذخیره کنید به لازم است این کار را در هر دستگاهی که مایل به دسترسی به صفحه وب با نام کوتاه هستید انجام دهید. اکنون می توانید با https://remote/remote.php به کنترل از راه دور دسترسی داشته باشید

توصیه شده: