সুচিপত্র:

আরডুইনো ব্রাউজার ভিত্তিক রিমোট কন্ট্রোল (লিনাক্স): 9 টি ধাপ (ছবি সহ)
আরডুইনো ব্রাউজার ভিত্তিক রিমোট কন্ট্রোল (লিনাক্স): 9 টি ধাপ (ছবি সহ)

ভিডিও: আরডুইনো ব্রাউজার ভিত্তিক রিমোট কন্ট্রোল (লিনাক্স): 9 টি ধাপ (ছবি সহ)

ভিডিও: আরডুইনো ব্রাউজার ভিত্তিক রিমোট কন্ট্রোল (লিনাক্স): 9 টি ধাপ (ছবি সহ)
ভিডিও: Teleduino ile Uzaktan Kontrol | Arduino'yu İnternete Bağlamak | Arduino Ethernet Shield 2024, ডিসেম্বর
Anonim
আরডুইনো ব্রাউজার ভিত্তিক রিমোট কন্ট্রোল (লিনাক্স)
আরডুইনো ব্রাউজার ভিত্তিক রিমোট কন্ট্রোল (লিনাক্স)
আরডুইনো ব্রাউজার ভিত্তিক রিমোট কন্ট্রোল (লিনাক্স)
আরডুইনো ব্রাউজার ভিত্তিক রিমোট কন্ট্রোল (লিনাক্স)

আমাদের বাচ্চা আছে। আমি তাদের বিট করতে ভালোবাসি কিন্তু তারা স্যাটেলাইট এবং টিভির জন্য রিমোট কন্ট্রোল লুকিয়ে রাখে যখন তারা শিশুদের চ্যানেল চালু করে। এটি বেশ কয়েক বছর ধরে দৈনিক ভিত্তিতে ঘটার পরে, এবং আমার প্রিয়তম স্ত্রী আমাকে ক্রিসমাসের জন্য একটি আরডুইনো দেওয়ার অনুমতি দেওয়ার পরে আমি সিদ্ধান্ত নিয়েছিলাম যে এটি আরডুইনোর সাথে কিছু দরকারী (তার চোখে!) করার সময় এসেছে। সুতরাং এখানে আমাদের এর চূড়ান্ততা রয়েছে: আরডুইনোতে একটি ওয়েব-ভিত্তিক ইন্টারফেস যা আমার রিমোটগুলি প্রতিস্থাপন করে এবং আমার অভ্যন্তরীণ নেটওয়ার্ক থেকে অ্যাক্সেসযোগ্য। যখন আমি বুঝতে পারি কেন আমার ইথারনেট ieldাল আমার arduino কে একটি স্কেচ রাখতে দেয় না তখন আমি একটি নতুন স্কেচ লিখব যা ওয়েব সার্ভার হিসাবে ইথারনেট ieldাল ব্যবহার করে, যার মানে আমার কম্পিউটারে অ্যাপাচি ইনস্টল করার দরকার নেই। সাথে থাকুন, আমি সেখানে যাব!

ধাপ 1: পূর্বশর্ত

পূর্বশর্ত
পূর্বশর্ত

হার্ডওয়্যার: Arduino পার্শ্ব: Arduino - আমি একটি Arduino Uno R2 ব্রেডবোর্ড ব্যবহার করছি - আপনার স্থানীয় ইলেকট্রনিক্স দোকান, অথবা রান্নাঘর যদি আপনি একটি খাঁটি ব্রেডবোর্ড মাউন্টিং এনক্লোজার চান - আমি একটি স্বচ্ছ idাকনা সহ একটি পুরানো প্লাস্টিকের কেস ব্যবহার করেছি: ইনফ্রারেড LED - আমি desoldered একটি ভাঙা রিমোট কন্ট্রোল থেকে (ধন্যবাদ বাচ্চারা!) ইনফ্রারেড রিসিভার - আমি একটি ম্যাজিক আই রিমোট এক্সটেন্ডার ট্রানজিস্টার থেকে পেয়েছি - আমি একটি BC547 রেজিস্টর ব্যবহার করেছি - আমি 1.5k ওহম ভেরিয়েবল রিসিস্টর ব্যবহার করেছি যা 1k ওহম ব্রেডবোর্ড জাম্পার তারে সেট করা আছে - আমি আমার পেয়েছি একটি সলিড কোর RJ45 কেবল রিল কম্পিউটার সাইড থেকে: কম্পিউটারকে সার্ভার ইউএসবি হিসাবে ব্যবহার করার জন্য Arduino সফটওয়্যার: Arduino সফটওয়্যার - arduino.cc irremote লাইব্রেরি থেকে - https://www.arcfn.com/2009/08/multi-protocol- থেকে ইনফ্রারেড -রিমোট -লাইব্রেরি.এইচটিএমএল (ধন্যবাদ কেন, দুর্দান্ত কাজ!) পিএইচপি ইনস্টল সহ অ্যাপাচি ওয়েব সার্ভার - apache.org অভ্যন্তরীণ আইপি ঠিকানা - আমার হল 192.168.0.9 আপনার রিমোট কন্ট্রোলের ছবি - গুগল বা আপনার ক্যামেরায় তোলা ছবি। আমি 200x600 রেজোলিউশনে আমার সংরক্ষণ করেছি

ধাপ 2: বোর্ড গঠন

বোর্ড নির্মাণ
বোর্ড নির্মাণ

একটি arduino জন্য একটি breadboard ব্যবহার অত্যন্ত সুপারিশ করা হয়। আমি আমার Arduino এবং একটি রুটিবোর্ড একই ঘের মধ্যে মাউন্ট এবং আমি নিয়মিতভাবে ব্রেডবোর্ড স্থায়ীভাবে ব্যবহার সব পিন তারের। এই প্রকল্পের জন্য ব্যবহৃত Arduino পিন: 5v, গ্রাউন্ড ডিজিটাল পিন 3, 11 (পিন 3 IR LED নিয়ন্ত্রণ করে, পিন 11 IR রিসিভারের সাথে সংযোগ স্থাপন করে)

ধাপ 3: পরিকল্পিত

পরিকল্পিত
পরিকল্পিত

এই পরিকল্পিত খুব সহজ, 4 উপাদান এবং 6 তারের। IR LED সংযোগ: প্রতিরোধকের একটি পা Arduino ডিজিটাল পিনের সাথে সংযুক্ত করুন 3 প্রতিরোধকের অন্য পাটি ট্রানজিস্টারের বেস পিনের সাথে সংযুক্ত করুন (আমার ক্ষেত্রে মাঝের পা) ট্রানজিস্টরের ইমিটরকে মাটিতে সংযুক্ত করুন সংগ্রাহককে সংযুক্ত করুন LED এর নেগেটিভ লেগে ট্রানজিস্টারের (ছোট লেগ, LED এর ফ্ল্যাট সাইড) LED এর পজিটিভ লেগ (লম্বা লেগ, বাঁকানো পাশ) 5v পিন IR রিসিভার সংযোগের সাথে সংযুক্ত করুন (আপনাকে পিনআউট খুঁজে বের করতে হবে আপনার বিশেষ IR রিসিভার): GND পিন থেকে গ্রাউন্ড VS পিন থেকে 5v VO পিন থেকে Arduino ডিজিটাল পিন 11

ধাপ 4: Arduino সফটওয়্যারে Irremote লাইব্রেরি যোগ করুন

Arduino সফটওয়্যারে Irremote লাইব্রেরি যোগ করুন
Arduino সফটওয়্যারে Irremote লাইব্রেরি যোগ করুন

irremote কেন শিরিফ দ্বারা লিখিত একটি মহান গ্রন্থাগার এবং https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html এ তার ব্লগ থেকে পাওয়া যায় https:// arcfn থেকে লাইব্রেরি ডাউনলোড করুন.com/ফাইল/IRremote.zip এবং এটি ইনস্টল করুন যেমন আপনি arduino এর জন্য অন্য কোন লাইব্রেরি। তার ব্লগে লাইব্রেরি এবং এটি কিভাবে ইনস্টল করা যায় সে সম্পর্কে অনেক সহায়ক তথ্য রয়েছে।

ধাপ 5: আপনার রিমোট কন্ট্রোল থেকে কোডগুলি রেকর্ড করুন

এখানে বিরক্তিকর (কিন্তু অনিবার্য) অংশের শুরু হল: রিমোট কন্ট্রোলের প্রতিটি বোতাম টিপুন, আউটপুট স্ট্রিং সংরক্ষণ করুন এবং এটি ভার্চুয়াল রিমোট কন্ট্রোলে ম্যাপ করুন। আপনাকে কেবল একবার এটি করতে হবে, প্রায় 20 মিনিট বা তারও বেশি সময় লাগবে। আপনার আউটপুট সংরক্ষণ করতে একটি টেক্সট এডিটর শুরু করুন। একটি নতুন ডকুমেন্ট তৈরি করুন এবং আপনার রিমোট কন্ট্রোলের প্রতিটি বোতাম টাইপ করুন, প্রতি লাইনে একটি করে: পাওয়ার আপ ডাউন বাম ডান.. ইত্যাদি। Arduino IDE শুরু করুন এবং "ফাইল-> উদাহরণ-> IRremote-> IRrecvDump" এ ক্লিক করুন এবং এটি আপলোড করুন তোমার আরডুইনো। এই উদাহরণটি দূরবর্তী কোডগুলিকে সিরিয়াল পোর্টে ফেলে দেবে। সিরিয়াল পোর্ট মনিটর শুরু করুন এবং আপনার রিমোট কন্ট্রোলে একটি কী চাপুন। আপনি সিরিয়াল মনিটর উইন্ডোতে একটি স্ট্রিং দেখতে পাবেন: "ডিকোডেড *: * (* বিট)"। এই লাইনটি অনুলিপি করুন এবং যথাযথ লাইনে আপনার নথিতে সংরক্ষণ করুন। পাঠ্য ফাইলে আপনার সমস্ত কী সংরক্ষণ না করা পর্যন্ত পুনরাবৃত্তি করুন। আমি জানি এই বিটটি কতটা মজার, আমি এখন পর্যন্ত দুবার এটি করেছি: P আমাদের এখন টেক্সট ফাইলে একটু অনুসন্ধান এবং প্রতিস্থাপন করতে হবে: "ডিকোডেড" এর জন্য অনুসন্ধান করুন "" এর জন্য অনুসন্ধান করুন: 0x "এর সাথে প্রতিস্থাপন করুন "," অনুসন্ধান করুন "(" এর সাথে প্রতিস্থাপন করুন "," "বিটগুলির জন্য অনুসন্ধান করুন" "" দিয়ে প্রতিস্থাপন করুন "সুতরাং একটি লাইনের জন্য যেমন: ডিকোড এনইসি: 0x000110 (15 বিট) আমাদের এখন একটি লাইন থাকা উচিত যা বলে: NEC, 000110, ১৫

ধাপ 6: আপনার রিমোট কন্ট্রোলের জন্য ওয়েব পেজ তৈরি করুন

আমাদের এখন আপনার রিমোট কন্ট্রোলের আপনার ছবির বোতামগুলি ম্যাপ করতে হবে।

আমি বোতামগুলি ম্যাপ করার জন্য https://www.maschek.hu/imagemap/imgmap ব্যবহার করেছি এবং ওয়েবসাইটটি আপনাকে যে কোডটি কাজ করে তা সংশোধন করেছে।

"আপনার কম্পিউটারে একটি ছবি ব্যবহার করুন: [ফাইল নির্বাচন করুন]" এ ক্লিক করুন, আপনার ছবি নির্বাচন করুন, [আপলোড] ক্লিক করুন, [স্বীকার করুন] প্রতিটি বোতামে আয়তক্ষেত্র, বৃত্ত ইত্যাদি ড্রপ করুন। HREF- এর জন্য /remote.php?command= এবং টেক্সট ডকুমেন্ট থেকে সেই বোতামের লাইন ধরুন উদাহরণস্বরূপ Alt: বোতামের নামের সাথে কিন্তু এটি আপনার উপর নির্ভর করে।

প্রতিটি বোতামের জন্য পুনরাবৃত্তি করুন।

সব শেষ? তারপর আমরা চালিয়ে যাব। সেই পৃষ্ঠার নীচে "কোড" আছে, এতে ক্লিক করুন এবং একটি বাক্স খোলা হবে যা চিত্র ম্যাপের কোড দেখাবে। এটি অনুলিপি করুন এবং এটি একটি নতুন পাঠ্য নথিতে পেস্ট করুন। এটি আমাদের ওয়েব পেজের প্রধান অংশ।

এখানে আমার সম্পূর্ণ ওয়েব পেজ, শুধু প্রতিস্থাপন করুন…

উপরে আপনার নিজের কোড সহ এবং আপনার রিমোট কন্ট্রোল ইমেজ সহ আপনার ওয়েব ডিরেক্টরিতে (/var/www লিনাক্সে) দূরবর্তী.php হিসাবে সংরক্ষণ করুন। আপনার নিজের ছবির লাইন পরিবর্তন করুন:

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

Arduino LED নিয়ন্ত্রণ

ধাপ 7: আপনার আরডুইনোতে রিমোট কন্ট্রোল কোড আপলোড করুন

আপনার আরডুইনোতে রিমোট কন্ট্রোল কোড আপলোড করুন
আপনার আরডুইনোতে রিমোট কন্ট্রোল কোড আপলোড করুন

একটি নতুন স্কেচ তৈরি করুন এবং এতে নিচের কোডটি পেস্ট করুন: uk/2012/02/irremote-arduino-experimentation); obj ফেরত; } বুলিয়ান শেষ = মিথ্যা; char inData [64]; // উপযুক্ত বাইট সূচক = 0 আকার; #ডিফাইন EOP "\ n" IRsend irsend; অকার্যকর সেটআপ () {Serial.begin (9600); সিরিয়াল << "সিরিয়াল পোর্ট শুরু হয়েছে" << ইওপি; } অকার্যকর লুপ () {স্ট্রিং pch, sType, sTemp; in inChar, sTest, k; int sBits; দীর্ঘ sHex; int i, j; while (1) {while (Serial.available ()> 0) {inChar = Serial.read (); যদি (সূচক == 0) {pch = ""; } যদি (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {সমাপ্ত = সত্য; সূচক = 0; বিরতি; } অন্য {যদি (সূচী <64) // অ্যারের আকার {pch += inChar; সূচক ++; }}} যদি (সমাপ্ত) {// এখানে ডাটাতে ডেটা বিশ্লেষণ করুন … pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); আমি ++; // skip over ',' or '' // i now points to hex j = pch.lastIndexOf ('')! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j এখন হেক্স sHex = 0 এর পরে ',' বা '' নির্দেশ করে; sTemp = pch.substring (i, j); যদি (sTemp.substring (0, 2) == স্ট্রিং ("0X")) sTemp = sTemp.substring (2); জন্য (i = 0; i <sTemp.length (); i ++) {k = sTemp ; যদি (! ((k> = '0' && k = 'A' && k <= 'F'))) বিরতি; sHex *= 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); sBits = 0; জন্য (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBits *= 10; যদি (k> = '0' && k <= '9') sBits += (k - '0'); } if (sType.length ()> 0) {Serial << pch << EOP << "code type:" << sType << "Hex:"; Serial.print (sHex, HEX); সিরিয়াল << "বিটস:" << sBits; } sendIt (sType, sHex, sBits); pch = ""; শেষ = 0; }}} পাঠান বাতিল করুন, sBits); } অন্যথায় যদি (sType.equals (স্ট্রিং ("RC5"))) {irsend.sendRC5 (sHex, sBits); } অন্যথায় যদি (sType.equals (স্ট্রিং ("SONY"))) {irsend.sendSony (sHex, sBits); } অন্যথায় যদি (sType.equals (স্ট্রিং ("NEC"))) {if (! i) irsend.sendNEC (sHex, sBits); } অন্যথায় যদি (sType.equals (স্ট্রিং (""))) {সিরিয়াল << "বিলম্ব" << ইওপি; বিলম্ব (450); } বিলম্ব (30); }}

ধাপ 8: আপনার কম্পিউটার থেকে ওয়েব সার্ভারের সাথে সংযোগ করুন

আপনার কম্পিউটার থেকে ওয়েব সার্ভারের সাথে সংযোগ করুন
আপনার কম্পিউটার থেকে ওয়েব সার্ভারের সাথে সংযোগ করুন

.. অথবা ফোন বা অ্যান্ড্রয়েড বা আইপ্যাড বা যাই হোক না কেন: আপনার ব্রাউজারে https:// webserver IP address/remote.php এ যান আমার জন্য ঠিকানা হল https://192.168.0.9/remote.php কিন্তু আপনার সন্দেহ হবে ভিন্ন। যদি সবকিছু কাজ করে তবে আপনার বোতাম সহ আপনার রিমোট কন্ট্রোলের একটি ছবি দেখতে হবে যেখানে আপনি ক্লিক করতে পারেন।

ধাপ 9: Stepচ্ছিক ধাপ: আপনার হোস্ট ফাইল সম্পাদনা করুন যাতে এটি ব্যবহার করা সহজ হয়

Stepচ্ছিক পদক্ষেপ: এটি ব্যবহার করা সহজ করার জন্য আপনার হোস্ট ফাইল সম্পাদনা করুন
Stepচ্ছিক পদক্ষেপ: এটি ব্যবহার করা সহজ করার জন্য আপনার হোস্ট ফাইল সম্পাদনা করুন

আমি একটি পদক্ষেপ করেছি আমার হোস্ট ফাইল সম্পাদনা করা (/etc/hosts on linux, C: / Windows / System32 / Drivers / etc / windows on windows)। মনে রাখবেন যে এই ফাইলটি শুধুমাত্র একটি প্রশাসনিক কমান্ড প্রম্পটে (উইন্ডোজ) অথবা su (linux) দ্বারা সম্পাদনা করা যেতে পারে ip.add.re.ss লাইন যোগ করুন । আপনি সংক্ষিপ্ত নাম দিয়ে ওয়েব পেজ অ্যাক্সেস করতে চান এমন প্রতিটি ডিভাইসে এটি করতে হবে। এখন আপনি https://remote/remote.php দিয়ে রিমোট অ্যাক্সেস করতে পারেন এটি আমার প্রথম সঠিক নির্দেশযোগ্য, ভদ্র হোন এবং যদি কোন সমস্যা থাকে তবে আমাকে জানান যাতে আমি সেগুলি ঠিক করতে পারি।

প্রস্তাবিত: