সুচিপত্র:

রাস্পবেরি পাই-আরডুইনো-সিগন্যালআর হোম অটোমেশন হাব: 11 টি ধাপ (ছবি সহ)
রাস্পবেরি পাই-আরডুইনো-সিগন্যালআর হোম অটোমেশন হাব: 11 টি ধাপ (ছবি সহ)

ভিডিও: রাস্পবেরি পাই-আরডুইনো-সিগন্যালআর হোম অটোমেশন হাব: 11 টি ধাপ (ছবি সহ)

ভিডিও: রাস্পবেরি পাই-আরডুইনো-সিগন্যালআর হোম অটোমেশন হাব: 11 টি ধাপ (ছবি সহ)
ভিডিও: আরডুইনো টিউটোরিয়াল এর ৫ম পার্ট আরডুইনোতে এনালগ ইনপুট ||arduino analogread 2024, জুন
Anonim
রাস্পবেরি পাই-আরডুইনো-সিগন্যালআর হোম অটোমেশন হাব
রাস্পবেরি পাই-আরডুইনো-সিগন্যালআর হোম অটোমেশন হাব

এখানে এবং এখানে প্রকাশিত আমার কয়েকটি প্রস্তাবনা IBLEs অনুসরণ করে, এই প্রকল্পটি একটি কার্যকরী হোম অটোমেশন হাবের একটি মৌলিক সংস্করণ তৈরির দিকে প্রথম পদক্ষেপ নেয়।

আমি অতীতে যা কিছু শিখেছি এবং যে নতুন বিষয়গুলি দিন দিন অগ্রগতি হিসাবে শিখতে থাকি তা আমি কীভাবে ব্যবহার করতে পারি তা বোঝার জন্য আমি বিভিন্ন ধরণের প্রযুক্তি ব্যবহার করেছি।

অতএব, এই অটোমেশন হাবটি নিম্নলিখিত উপাদানগুলি নিয়ে গঠিত:

একটি এসকিউএল সার্ভার 2012 ডাটাবেস যা:

  • একটি অনন্য "কোড কী" সহ একটি টেবিলে পূর্বনির্ধারিত ইনফ্রারেড (IR) কোডগুলির একটি তালিকা সংরক্ষণ করে
  • কোড কীগুলি স্বজ্ঞাতভাবে (ব্যবহারকারীর দ্বারা) নামকরণ করা হয় যাতে তাদের সংশ্লিষ্ট আইআর কোডগুলির উদ্দেশ্য চিহ্নিত করা যায়

একটি রিয়েল-টাইম ASP. NET সিগন্যালআর হাব ওয়েব অ্যাপ্লিকেশন যা:

  • এইচটিএমএল ক্লায়েন্টের মুখোমুখি ব্যবহারকারীর কাছ থেকে কমান্ড হিসাবে "কোড কী" অপেক্ষা করে এবং গ্রহণ করে
  • প্রাপ্ত হলে, SQL ডাটাবেসের সাথে সংযোগ স্থাপন করে এবং সরবরাহকৃত কোড কী ব্যবহার করে একটি IR কোড পুনরুদ্ধার করে
  • একটি পাইথন সিগন্যালআর ক্লায়েন্টকে পুনরুদ্ধারকৃত আইআর কোড রিলে করে

এইচটিএমএল সিগন্যালআর ড্যাশবোর্ড ক্লায়েন্টের মুখোমুখি একজন ব্যবহারকারী:

  • jQuery SignalR ক্লায়েন্ট API গুলির মাধ্যমে হাবের একটি অনন্য কোড কী যোগাযোগ করে
  • ড্যাশবোর্ডের প্রতিটি বোতাম SQL ডাটাবেস টেবিলে রেকর্ড করা একটি অনন্য কোড কী উপস্থাপন করবে

রাস্পবেরি পাই 2.0 এ চলমান একটি পাইথন সিগন্যালআর ব্যাকগ্রাউন্ড সার্ভিস অ্যাপ্লিকেশন:

  • হাব থেকে কমান্ড হিসাবে আইআর কোড গ্রহণ করে
  • আইআর কোডে ডিলিমিটার খুঁজে বের করে এবং খুব দীর্ঘ কোডকে সেগমেন্টে বিভক্ত করে
  • সিরিয়াল পোর্টের মাধ্যমে আরডুইনোতে যোগাযোগ করে এবং প্রতিটি বিভাগকে পর পর লিখে দেয়

একটি Arduino IR ট্রান্সমিটার স্কেচ যে:

  • সিরিয়াল পোর্টের উপর প্রতিটি আইআর কোড সেগমেন্টের জন্য অপেক্ষা করে এবং গ্রহণ করে
  • কোড বিভাগগুলিকে একটি IR কোড বাফার অ্যারেতে একত্রিত করে
  • IRLib Arduino লাইব্রেরি ব্যবহার করে একটি IR ট্রান্সমিট কমান্ডে বাফার প্যাকেজ করে

যদি টার্গেট যন্ত্রটি আইআর ট্রান্সমিটারের আশেপাশে থাকে, তবে যন্ত্রটি (হতে পারে) আরডুইনো দ্বারা প্রেরিত আইআর সিগন্যালে প্রতিক্রিয়া দেখায়

বিঃদ্রঃ

যদিও, এই প্রদর্শনে আমি যে টার্গেট অ্যাপ্লায়েন্স ব্যবহার করি তা IR সিগন্যালে প্রতিক্রিয়া দেখায়, আপনি আমার অন্যান্য IBLE- এর এই অংশটি পড়তে চাইতে পারেন কেন আমি বলছি যে অ্যাপ্লাইন্স (হতে পারে) IR সিগন্যালে প্রতিক্রিয়া দেখায়।

রোল করার সময়।

ধাপ 1: আপনার যা প্রয়োজন, তার আগে আপনার যা প্রয়োজন

তোমার যা দরকার, তার আগে তোমার যা দরকার
তোমার যা দরকার, তার আগে তোমার যা দরকার
তোমার যা দরকার, তার আগে তোমার যা দরকার
তোমার যা দরকার, তার আগে তোমার যা দরকার
তোমার যা দরকার, তার আগে তোমার যা দরকার
তোমার যা দরকার, তার আগে তোমার যা দরকার

এই নির্দেশযোগ্যটি পূর্বে করা কিছু কাজের সাথে বন্ধ হয়ে যায় যার ফলে আমার শেষ আইবিএলও হয়েছিল।

সুতরাং, এই আইবিএল -এর জন্য আমাদের যা প্রয়োজন তার মধ্যে যাওয়ার আগে, এটি সুপারিশ করা হয় যে আপনি কীভাবে এই নির্দেশনাটি কিছু পটভূমির জন্য পড়ুন:

  1. Arduino IRLib ইনফ্রারেড লাইব্রেরি স্থাপন করা হয়েছিল
  2. এই আইবিএল -তে ব্যবহৃত আইআর কোডগুলি কীভাবে আইআর রিসিভার ব্যবহার করে ধরা পড়ে
  3. কিভাবে একটি IR ট্রান্সমিটারের মাধ্যমে টার্গেট অ্যাপ্লায়েন্স নিয়ন্ত্রণ করার জন্য ক্যাপচার করা IR কোডগুলি ব্যবহার করা হতো

এই IBLE সমাপ্তির পরে, আমি একটি ASP. NET IR কোড রেকর্ডার ওয়েব অ্যাপ্লিকেশন স্থাপন করেছি যা হবে:

  • একটি ওয়েব ফর্মের মাধ্যমে ইনপুট হিসাবে একটি স্বজ্ঞাত নামযুক্ত কোড কী সহ ক্যাপচার করা আইআর কোড গ্রহণ করুন
  • Arduino Uno এর সিরিয়াল বাফার সীমার অধীনে থাকার জন্য 64 অক্ষরের কম অংশে খুব দৈর্ঘ্যের IR কোডটি ভেঙে দিন
  • কোডের শেষ সেগমেন্টটি "E" দিয়ে প্রি-ফিক্সড হবে যা Arduino কে নির্দেশ করে যে এটি কোডের শেষ সেগমেন্ট পেয়েছে
  • একটি লম্বা স্ট্রিংয়ে একত্রিত হওয়ার আগে প্রতিটি সেগমেন্ট একটি পাইপ ডিলিমিটার দ্বারা আলাদা করা হবে
  • অবশেষে, বিভক্ত আইআর কোড তার কোড কী সহ একটি এসকিউএল সার্ভার 2012 ডাটাবেসে সংরক্ষণ করা হয়েছিল

এটি এই এসকিউএল ডাটাবেস যা এই আইবিএলে বিস্তারিতভাবে বর্ণনা করা হোম অটোমেশন হাবের একটি উপাদান গঠন করে।

বিঃদ্রঃ

আইআর কোড রেকর্ডার ওয়েব অ্যাপ্লিকেশন নিম্নলিখিত কারণে এখানে আলোচনার অংশ নয়:

  • আপনি আরডুইনো স্কেচ ব্যবহার করে ম্যানুয়ালি কোডগুলি ক্যাপচার করতে পারেন, সেগুলিকে পাইপ-সীমাবদ্ধ বিভাগে বিভক্ত করতে পারেন এবং একটি বিস্তৃত ওয়েব অ্যাপ্লিকেশন তৈরি না করে ডাটাবেসে সংরক্ষণ করতে পারেন
  • এই আইবিএলই থেকে ভিন্ন, আইআর রেকর্ডার আরডুইনো থেকে রাস্পবেরি পাই পর্যন্ত বিপরীত যোগাযোগের দিকে মনোনিবেশ করে

অতএব এই প্রকল্পের বিবরণ অন্য আইবিএলএর জন্য একটি বিষয় হবে

ধাপ 2: আপনার যা প্রয়োজন - হার্ডওয়্যার

আপনার যা প্রয়োজন - হার্ডওয়্যার
আপনার যা প্রয়োজন - হার্ডওয়্যার
আপনার যা প্রয়োজন - হার্ডওয়্যার
আপনার যা প্রয়োজন - হার্ডওয়্যার

একটি কার্যকরী রাস্পবেরি পাই 2.0 - আমি উবুন্টু মেট ইনস্টল করার সুপারিশ করি কারণ এতে ওপেনলাইব্রে অফিস সহ বৈশিষ্ট্যগুলির একটি সমৃদ্ধ সেট রয়েছে যা রাস্পবেরি পাইতে এই নির্দেশযোগ্য ডকুমেন্ট করার ক্ষেত্রে অবশ্যই অপরিহার্য ছিল।

উপরন্তু, পাই, আপনি নিম্নলিখিত বহিরাগত প্রয়োজন হবে:

  • আরডুইনো ইউনো প্রোটোটাইপিং প্ল্যাটফর্ম বা একটি ক্লোন
  • একটি IR ট্রান্সমিটার LED - আমি Amazon.com থেকে থ্রি লেগস নামে একটি ব্র্যান্ড ব্যবহার করেছি
  • 330 বা 220 ওহম প্রতিরোধক-আমি 220 (রঙ কোড লাল-লাল-বাদামী) ব্যবহার করেছি কারণ আমার বেশ কয়েকটি কাজ ছিল
  • স্বাভাবিক রুটি বোর্ড, সংযোগকারী, এবং Arduino পরিবেশের সঙ্গে একটি পিসি ইনস্টল করা
  • একটি পরীক্ষার্থী - যেমন একটি রিমোট সহ সর্বব্যাপী স্যামসাং এলইডি মনিটর

ধাপ 3: আপনার যা প্রয়োজন - সফটওয়্যার

সমস্ত টুকরা একসাথে পেতে, নিম্নলিখিত সফ্টওয়্যার সেটআপ ইনস্টল এবং চালাতে হবে:

রাস্পবেরি পাইতে, আপনাকে নিম্নলিখিতগুলি ইনস্টল করতে হবে:

  • আরডুইনো আইডিই - স্কেচ তৈরি করতে এবং ইউএনওকে ফ্ল্যাশ করতে ব্যবহৃত হয়
  • Arduino এর জন্য পাইথন মডিউল - UNO এবং Pi এর মধ্যে সিরিয়াল যোগাযোগের জন্য
  • পাইথন সিগন্যালআর ক্লায়েন্ট লাইব্রেরি - আপনি এখানে সংযুক্ত নির্দেশাবলী উল্লেখ করতে পারেন

নিম্নলিখিত ডেভেলপমেন্ট এনভায়রনমেন্ট সহ একটি উইন্ডোজ মেশিন ইনস্টল করা হয়েছে:

  • সিগন্যালআর হাব এবং ওয়েব ক্লায়েন্ট অ্যাপ্লিকেশন তৈরি করতে মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও এক্সপ্রেস 2013 এর বিনামূল্যে সংস্করণ
  • ব্যাক-এন্ড ডাটাবেস ডিজাইন এবং তৈরির জন্য SQL সার্ভার 2012 এক্সপ্রেসের বিনামূল্যে সংস্করণ

একটি উইন্ডোজ ইন্টারনেট তথ্য সার্ভার (IIS) হোস্টিং পরিবেশ:

  • একবার সিগন্যালআর হাব এবং ওয়েব ক্লায়েন্ট তৈরি এবং পরীক্ষা করা হলে, এটি একটি স্থানীয় আইআইএস সার্ভারে স্থাপন করতে হবে
  • আমার ক্ষেত্রে, আমি আমার হোম নেটওয়ার্কে আইআইএস সহ উইন্ডোজ 7 চালানো একটি পুরানো ল্যাপটপ ব্যবহার করার পরিকল্পনা করছি

বিঃদ্রঃ

সমস্ত নির্দেশনা পাইথন 2.7.x সংস্করণে প্রযোজ্য। সংস্করণ 3.0 এর পুনর্লিখনের প্রয়োজন হতে পারে

ধাপ 4: SQL সার্ভার ডাটাবেস

এসকিউএল সার্ভার ডাটাবেস
এসকিউএল সার্ভার ডাটাবেস

সংযুক্ত পরিকল্পিত এই অ্যাপ্লিকেশনে ব্যবহৃত একটি মৌলিক SQL সার্ভার ডাটাবেসের কাঠামো দেখায় এবং মাত্র দুটি টেবিল রয়েছে।

টেবিল AutoHubCode

এই টেবিলে দুটি গুরুত্বপূর্ণ কলাম হল:

AutoCodeKey - কোড কী এর ব্যবহারকারী বান্ধব নাম সংরক্ষণ করে

প্রতিটি কোড কী একটি অটোমেশন ক্লায়েন্ট দ্বারা প্রেরণ করা হয় - আমাদের ক্ষেত্রে, একটি ওয়েব পৃষ্ঠা থেকে একটি HTML বোতাম

অটোকোডভ্যাল - কাঁচা আইআর কোড ক্রম সঞ্চয় করে

এটি আসল আইআর কোড যা সিগন্যালআর হাবের জবাবে ক্লায়েন্টকে ফেরত পাঠানো হয়

এই ক্ষেত্রে, একটি পাইথন ক্লায়েন্ট ক্রমাগত হাবের সাথে যোগাযোগ করে আইআর কোড ক্রম গ্রহণ করে এবং এটি সিরিয়াল পোর্টের মাধ্যমে Arduino UNO- এ প্রেরণ করে।

টেবিল AutoHubLog

  • অটোমেশন ক্লায়েন্টের অনুরোধ করা কোড লগ করে।
  • কে এবং কখন সিস্টেমটি ব্যবহার করেছে এবং কোন কোডটি অনুরোধ করা হয়েছিল তা ট্র্যাক করার জন্য এটি একটি পরিমাপ

উল্লিখিত হিসাবে, আমি আমার পছন্দের ডাটাবেস প্ল্যাটফর্ম হিসাবে SQL সার্ভার 2012 ব্যবহার করেছি। আপনি এই সহজ নকশাটি একটি ভিন্ন ডাটাবেস প্ল্যাটফর্ম যেমন মাইএসকিউএল, ওরাকল ইত্যাদিতে পুনরায় তৈরি করতে পারেন।

তবুও, এই ডাটাবেস তৈরির জন্য SQL স্ক্রিপ্ট এখানে সংযুক্ত করা হয়েছে।

বিঃদ্রঃ

  1. সিগন্যালআর হাবের কোডটি একটি এসকিউএল সার্ভার 2012 ডাটাবেসের সাথে সংযুক্ত করার জন্য ডিজাইন করা হয়েছে
  2. একটি ভিন্ন ডাটাবেসের সাথে কাজ করার অর্থ হাবকে একটি ভিন্ন ডাটাবেস ড্রাইভার ব্যবহার করার জন্য পরিবর্তন করা

ধাপ 5: ASP. NET সিগন্যালআর হাব ওয়েব অ্যাপ্লিকেশন

ASP. NET সিগন্যালআর হাব ওয়েব অ্যাপ্লিকেশন
ASP. NET সিগন্যালআর হাব ওয়েব অ্যাপ্লিকেশন
ASP. NET সিগন্যালআর হাব ওয়েব অ্যাপ্লিকেশন
ASP. NET সিগন্যালআর হাব ওয়েব অ্যাপ্লিকেশন

ASP. NET সিগন্যালআর হাব ওয়েব অ্যাপ্লিকেশনটি যৌথভাবে নিম্নলিখিত উপাদানগুলি নিয়ে গঠিত যা সংযুক্ত পরিকল্পনায় নির্দেশিত হয়েছে:

বিভাগ 1 - সিগন্যালআর হাব যা ক্লায়েন্টের কাছ থেকে অনুরোধ গ্রহণ করে এবং সাড়া দেয়

সেকশন 2, 4 - এইচটিএমএল ক্লায়েন্ট ওয়েব পেজ এবং এটি স্টাইল শীট যা সম্মিলিতভাবে অটোমেশন সিস্টেমের সামনের প্রান্ত গঠন করে এবং অটোমেশন হাবকে কমান্ড দেয়

অধ্যায় 3 - এইচটিএমএল ক্লায়েন্ট অটোমেশন হাবের সাথে যোগাযোগ করার জন্য ব্যবহৃত jQuery SignalR API গুলি

বিভাগ 5 - সিগন্যালআর হাব সরাসরি ডাটাবেসের সাথে যোগাযোগ করে না। এটি সত্তা ফ্রেমওয়ার্ক ব্যবহার করে তৈরি মধ্যবর্তী ক্লাসের মাধ্যমে এটি করে

এই ক্লাসগুলি সামনের প্রান্তের অ্যাপ্লিকেশন থেকে ডাটাবেসের বিশদ বিবরণ দেয়

বিভাগ 6 - ডেটাবেস সার্ভিস ক্লাস যা সত্তা ফ্রেমওয়ার্ক ক্লাস ব্যবহার করে SQL ডেটাবেসে (পূর্বে বর্ণিত) রিড -রাইট অপারেশন করতে সাহায্য করে

ASP. NET এবং সিগন্যালআর হল মাইক্রোসফট প্রযুক্তি এবং এই টিউটোরিয়ালটি আপনাকে একটি সাধারণ সিগন্যালআর অ্যাপ্লিকেশন কিভাবে তৈরি এবং স্থাপন করা হয় তা নিয়ে চলবে।

আমি এখানে যা তৈরি করেছি তা এই টিউটোরিয়াল থেকে প্রাপ্ত মৌলিক বিষয়গুলির উপর ভিত্তি করে। যখন স্থাপন করা হয়, অ্যাপ্লিকেশনটি দ্বিতীয় ছবিতে দেখানো ওয়েব পেজের অনুরূপ হওয়া উচিত

কোডে নোট

কোডের একটি স্ট্রিপড ডাউন সংস্করণ ধারণকারী একটি জিপ ফাইল সংযুক্ত করা হয়েছে

ফোল্ডার কাঠামোটি ভিজ্যুয়ালে দেখানো হয়েছে - তবে, সংযুক্তির আকার কমাতে সমস্ত ফ্রেমওয়ার্ক ক্লাস এবং jQuery স্ক্রিপ্টগুলি সরানো হয়েছে

সুপারিশ হল এই কোডটি গাইড হিসাবে ব্যবহার করা হবে কারণ আপনি যখন উপরের টিউটোরিয়াল লিঙ্কটি অনুসরণ করে একটি নতুন সিগন্যালআর ওয়েব অ্যাপ্লিকেশন তৈরি করবেন, তখন সর্বশেষ jQuery লাইব্রেরি এবং ASP. NET ফ্রেমওয়ার্ক ক্লাসগুলি স্বয়ংক্রিয়ভাবে যোগ হবে

এছাড়াও, jQuery SignalR ক্লায়েন্ট লাইব্রেরির সর্বশেষ সংস্করণটি প্রতিফলিত করতে index.html পৃষ্ঠায় jQuery স্ক্রিপ্টের রেফারেন্সগুলি পরিবর্তন করতে হবে যা আপনার ওয়েব অ্যাপ্লিকেশন তৈরি করার সময় স্বয়ংক্রিয়ভাবে যোগ হবে।

অবশেষে, Web.config* নামক ফাইলগুলিতে আপনার ডাটাবেসের সাথে মেলে সংযোগ স্ট্রিং পরিবর্তন করতে হবে*

ধাপ 6: পাইথন সিগন্যালআর পরিষেবা ক্লায়েন্ট

পাইথন সিগন্যালআর সার্ভিস ক্লায়েন্ট
পাইথন সিগন্যালআর সার্ভিস ক্লায়েন্ট

যদিও এইচটিএমএল সিগন্যালআর ক্লায়েন্ট একটি সামনের মুখোমুখি ইউজার ইন্টারফেস, পাইথন ক্লায়েন্ট হল একটি ব্যাক এন্ড সার্ভিস অ্যাপ্লিকেশন যার প্রধান কাজ হল হাব দ্বারা প্রেরিত আইআর কোড গ্রহণ করা এবং সিরিয়াল যোগাযোগের মাধ্যমে এটিকে আরডুইনো ইউএনওতে রুট করা।

সংযুক্ত কোডটি স্ব-ব্যাখ্যামূলক এবং এর কার্যকারিতা বর্ণনা করার জন্য যথেষ্ট নথিভুক্ত।

কম্পোজিট স্ক্রিন শটে যেমন দেখানো হয়েছে, এইচটিএমএল ক্লায়েন্ট এবং পাইথন সার্ভিস ক্লায়েন্ট সিগন্যালআর হাবের মাধ্যমে নিম্নরূপ যোগাযোগ করে:

  1. অটোমেশন সিস্টেমের ব্যবহারকারী একটি বাটন ক্লিকের মাধ্যমে হাবকে একটি আদেশ প্রদান করে
  2. প্রতিটি বোতাম আইআর কী কোডের সাথে যুক্ত এবং যখন ক্লিক করা হয়, এই কোডটি হাবের কাছে প্রেরণ করা হয়
  3. হাব এই কোডটি গ্রহণ করে, ডাটাবেসের সাথে সংযুক্ত করে এবং কাঁচা আইআর সিগন্যাল কোডটি পুনরুদ্ধার করে এবং এটি সমস্ত সংযুক্ত ক্লায়েন্টদের কাছে ফেরত পাঠায়

    একই সময়ে, হাব অটোহাবলগ ডাটাবেস টেবিলে একটি এন্ট্রি লগ করে কোড এবং তারিখ এবং সময় যা দূরবর্তী ক্লায়েন্টদের দ্বারা অনুরোধ করা হয়েছিল

  4. পাইথন সার্ভিস ক্লায়েন্ট আইআর কোড গ্রহণ করে এবং পরবর্তী প্রক্রিয়াকরণের জন্য এটিকে আরডুইনো ইউএনও -এর কাছে পাঠায়

ধাপ 7: Arduino UNO IR ট্রান্সমিশন স্কেচ এবং কোড

আরডুইনো ইউএনও আইআর ট্রান্সমিশন স্কেচ এবং কোড
আরডুইনো ইউএনও আইআর ট্রান্সমিশন স্কেচ এবং কোড
আরডুইনো ইউএনও আইআর ট্রান্সমিশন স্কেচ এবং কোড
আরডুইনো ইউএনও আইআর ট্রান্সমিশন স্কেচ এবং কোড
আরডুইনো ইউএনও আইআর ট্রান্সমিশন স্কেচ এবং কোড
আরডুইনো ইউএনও আইআর ট্রান্সমিশন স্কেচ এবং কোড

ভিজ্যুয়ালগুলিতে দেখানো Arduino সার্কিট এই সিস্টেমের জন্য বেশ সহজ এবং তাই সংক্ষেপে বর্ণনা করা হয়েছে:

  • বর্ণহীন আইআর এলইডি ইউএনও -তে ডিজিটাল পিন 3 -এর সাথে যুক্ত হতে হবে - এটি আইআরএলআইবি আরডুইনো লাইব্রেরির প্রয়োজনীয়তা
  • আইআরএলআইবি লাইব্রেরি সম্পর্কিত বিভাগে একটি রিমোট ক্লোনিং করার জন্য আমার আগের আইবিএলে কারণগুলি বর্ণনা করা হয়েছে
  • ডিজিটাল পিন 4 এর সাথে সংযুক্ত সবুজ এলইডি একটি চাক্ষুষ নির্দেশক যা ইউএনও যখন রাস্পবেরি পাইতে চলমান পাইথন ক্লায়েন্টের কাছ থেকে আইআর কোডের সমস্ত বিভাগ পেয়েছে তখন আলোকিত হয়।
  • এই এলইডি লাইট আপ নিশ্চিত করবে যে রাস্পবেরি পাই এবং ইউএনও এর মধ্যে সিরিয়াল যোগাযোগ কাজ করছে
  • সিরিয়াল যোগাযোগ সক্ষম করতে, ইউএনও ইউএসবি পোর্টের মাধ্যমে রাস্পবেরি পাই এর সাথে সংযুক্ত
  • সংযুক্ত Arduino স্কেচ এর কার্যকারিতা বর্ণনা করার জন্য পর্যাপ্ত মন্তব্য করা হয়েছে
  • কোডের উপরের মন্তব্যগুলি কীভাবে সার্কিটকে তারযুক্ত করতে হবে তাও বর্ণনা করে

বিঃদ্রঃ

অনুশীলনে, Arduino এবং Pi যৌথভাবে একটি চালিত USB হাবের সাথে সংযুক্ত হতে পারে যা Pi, Arduino চালাতে এবং IR LED এর মাধ্যমে একটি শক্তিশালী সংকেত প্রেরণ করতে পারে

ধাপ 8: হুকিং আপ এবং সিস্টেম পরীক্ষা

হুকিং আপ এবং সিস্টেম পরীক্ষা
হুকিং আপ এবং সিস্টেম পরীক্ষা
হুকিং আপ এবং সিস্টেম পরীক্ষা
হুকিং আপ এবং সিস্টেম পরীক্ষা
হুকিং আপ এবং সিস্টেম পরীক্ষা
হুকিং আপ এবং সিস্টেম পরীক্ষা
  1. আপনার স্থানীয় হোম নেটওয়ার্কে একটি ইন্টারনেট ইনফরমেশন সার্ভার (IIS) এ SQL সার্ভার 2012 ডাটাবেস সহ HTML ক্লায়েন্ট ASP. NET সিগন্যালআর হাব তৈরি করুন এবং স্থাপন করুন
  2. এইচটিটিপি এর মাধ্যমে এইচটিএমএল সিগন্যালআর ক্লায়েন্ট খোলার মাধ্যমে ওয়েব অ্যাপ্লিকেশনটি অ্যাক্সেস করুন

    এই পৃষ্ঠার URL সাধারণত https:// yourComputer: port_number/হবে

  3. কন্ট্রোল প্যানেলে একটি বোতামে ক্লিক করুন, এবং যদি অ্যাপ্লিকেশনটি সঠিকভাবে মোতায়েন করা হয়, তাহলে হাব আইআর কোডটি ফেরত দিয়ে এবং কন্ট্রোল প্যানেল সংলগ্ন গ্রে প্যানেলে প্রদর্শন করে সাড়া দেবে।

    মনে রাখবেন! আইআর রিসিভার লাইব্রেরি সেট করে এবং আমার আগের আইবিএলে বর্ণিত কোডগুলি ক্যাপচার করে আপনাকে আপনার ডাটাবেসে কোডগুলি লোড করতে হবে।

  4. ইউএসবি এর মাধ্যমে আরডুইনোকে রাস্পবেরি পাই এর সাথে সংযুক্ত করুন - পাইতে আরডুইনো আইডিই খুলুন এবং নিশ্চিত করুন যে ইউএনও পাই এর সাথে সংযোগ স্থাপন করতে পারে

    এই Arduino টিউটোরিয়াল নিবন্ধগুলি আপনাকে এটি খুব দ্রুত পেতে সাহায্য করবে

  5. পাইথন কোডটি খুলুন এবং আপনার পরিবেশে প্রযোজ্য হিসাবে নিম্নলিখিত পরিবর্তনগুলি করুন

    • ধাপ 4 থেকে অর্জিত আপনার UNO- এর সিরিয়াল পোর্ট ঠিকানা
    • ধাপ 2 থেকে আপনার স্থানীয় ইউআরএলের সাথে মেলে সিগন্যালআর হাবের ইউআরএল - এই উদাহরণে, এটি হবে https:// yourComputer: port_number/signalr
  6. অবশেষে, রাস্পবেরি পাইতে আরডুইনো আইডিই -তে আরডুইনো স্কেচ খুলুন এবং এটি ইউএনও -তে ফ্ল্যাশ করুন
  7. যন্ত্রের নিয়ন্ত্রণের জন্য সার্কিটকে ঘনিষ্ঠভাবে ধরে রাখা রুটি বোর্ডের অবস্থান করুন - IR LED- এর যন্ত্রের IR রিসিভার পোর্টের সাথে একটি স্পষ্ট লাইন থাকতে হবে
  8. পাইথন আইডিএল টুল বারে F5 বোতাম টিপে রাস্পবেরি পাইতে পাইথন প্রোগ্রাম শুরু করুন
  9. HTML ক্লায়েন্ট প্রোগ্রামে কন্ট্রোল প্যানেলে ফিরে যান (ধাপ 2) এবং একটি বোতাম ক্লিক করুন (যেমন পাওয়ার অন বা ভলিউম আপ)

যদি সিস্টেমটি সঠিকভাবে সেট আপ করা হয়, তাহলে আপনি আপনার ফোন বা ট্যাবলেটে HTML ক্লায়েন্ট পৃষ্ঠা আনতে সক্ষম হবেন এবং আপনার HTML ক্লায়েন্ট পৃষ্ঠায় বোতামগুলি দিয়ে আপনার যন্ত্রপাতি নিয়ন্ত্রণ করতে পারবেন।

ধাপ 9: সিস্টেম ইন অ্যাকশন

সিস্টেম ইন অ্যাকশন
সিস্টেম ইন অ্যাকশন
সিস্টেম ইন অ্যাকশন
সিস্টেম ইন অ্যাকশন
সিস্টেম ইন অ্যাকশন
সিস্টেম ইন অ্যাকশন
সিস্টেম ইন অ্যাকশন
সিস্টেম ইন অ্যাকশন

উপরের ভিজ্যুয়ালগুলি হোম অটোমেশন সিস্টেমকে একবার সেটআপ করার পরে কার্যক্রমে দেখায়।

এই IBLE প্রকাশ করার পর থেকে, আমি আমার VIZIO LED টিভি থেকে কয়েকটি IR কোড ক্যাপচার করে ইন্টারফেস বাড়িয়েছি

প্রথম ভিজ্যুয়াল -এ ফ্যাক্টরি টিভি রিমোটের পাশাপাশি দেখানো হয়েছে, এই রিমোটের কয়েকটি প্রয়োজনীয় ফাংশন আমার ট্যাবলেটের মাধ্যমে অ্যাক্সেস করা ওয়েব ইউআই -তে তৈরি করা হয়েছে

পরবর্তী ভিজ্যুয়ালগুলি ওয়েব ইন্টারফেস থেকে জারি করা কমান্ডের সাড়া দিয়ে টিভির সাথে সামনের দিকে ট্যাবলেটটি দেখায়:

  1. পাওয়ার অফ কমান্ড - টিভি বন্ধ
  2. পাওয়ার অন কমান্ড - টিভি চালু হয় এবং স্ক্রিন পাওয়ারের সাথে সাথে "V" লোগো উপস্থিত হয়
  3. নিuteশব্দ কমান্ড - একটি অনুভূমিক বার স্পিকার নিutedশব্দ সঙ্গে আসে

সমস্ত পরীক্ষায়, ট্যাবলেট স্ক্রিনে ড্যাশবোর্ডের সাথে ধূসর এলাকাটি ক্লায়েন্টের দ্বারা প্রদত্ত কমান্ড এবং রিমোট সিগন্যালআর হাব দ্বারা ফেরত পাঠানো প্রতিক্রিয়া প্রদর্শন করে।

ধাপ 10: অটোমেশন সিস্টেম এবং সম্পর্কিত সংশোধনগুলি উন্নত করা

এই সিস্টেমটি বিভিন্ন সিস্টেম থেকে ক্যাপচার করা আরও কোড যোগ করে বাড়ানো যেতে পারে। যদিও এই অংশটি সহজ, সেখানে আরও দুটি বিষয় রয়েছে যা আপনাকে বিবেচনা করতে হবে।

বর্ধিতকরণ 1 (দ্রুত): বিভিন্ন দৈর্ঘ্যের আইআর সংকেতগুলির সাথে কাজ করা

  1. বিভিন্ন সিস্টেমের আইআর কোডগুলি বিভিন্ন দৈর্ঘ্যের সাথে আসে, এমনকি একই নির্মাতার দুটি পণ্যের মধ্যেও।

    উদাহরণস্বরূপ, এই ক্ষেত্রে, LED টিভির জন্য IR কোড অ্যারের দৈর্ঘ্য 67 যখন স্যামসাং সাউন্ড বারের 87 এর কাছাকাছি।

  2. যার মানে হল, যদি আমি প্রথমে সাউন্ড বার চালু করি, আরডুইনো স্কেচে IR বাফার অ্যারে একটি IR কোড ক্রম দিয়ে ভরা হবে যাতে 87 কোড থাকবে
  3. এটি অনুসরণ করে, যদি আমি LED টিভি চালু করি, এটি IR বাফার অ্যারেকে মাত্র 67 কোড দিয়ে পূরণ করবে, কিন্তু আগের অপারেশন থেকে বাকি 20 টি কোড এখনও থাকবে

ফলাফল? LED টিভি চালু হয় না কারণ IR কোড বাফারটি আগের অপারেশন থেকে পরিষ্কার না করা অতিরিক্ত 20 টি কোড দ্বারা দূষিত হয়েছে!

ফিক্স 1 (সহজ উপায়, প্রস্তাবিত নয়)

নিম্নরূপ Arduino স্কেচ পরিবর্তন করুন:

লুপ () {} ফাংশনে নিম্নলিখিত ফাংশন কলগুলি পরিবর্তন করুন

transmitIRCode ();

IRCode (c) প্রেরণ করতে;

উপরের ফাংশনের স্বাক্ষরে পরিবর্তন করুন:

অকার্যকর transmitIRCode (int codeLen) {// RAWBUF ধ্রুবক কোডলেন IRTransmitter দিয়ে প্রতিস্থাপিত হয়। IRSendRaw:: send (IRCodeBuffer, codeLen, 38); }

যদিও এটি সহজ, অ্যারে সত্যিই কখনও সম্পূর্ণরূপে সাফ হয় না এবং তাই এটি খুব পরিষ্কার সমাধান নয়

ফিক্স 2 (কঠিন নয়, প্রস্তাবিত)

মন্তব্য বিভাগের পরে Arduino স্কেচের একেবারে শীর্ষে একটি অতিরিক্ত পরিবর্তনশীল ঘোষণা করুন:

স্বাক্ষরবিহীন int EMPTY_INT_VALUE;

সেটআপ () ফাংশনের শীর্ষে এটি যুক্ত করুন:

// একটি খালি স্বাক্ষরবিহীন পূর্ণসংখ্যার পরিবর্তনশীল প্রাকৃতিক অবস্থা ক্যাপচার করুন EMPTY_INT_VALUE = IRCodeBuffer [0];

নিচে স্ক্রোল করুন এবং transmitIRCode () ফাংশনের পরপরই স্কেচে একটি নতুন ফাংশন যোগ করুন:

void clearIRCodeBuffer (int codeLen) {// অ্যারে থেকে সমস্ত কোড সাফ করুন // দ্রষ্টব্য: অ্যারের উপাদানগুলিকে 0 এ সেট করা সমাধান নয়! এর জন্য (int i = 1; i <= codeLen; i ++) {IRCodeBuffer [i-1] = EMPTY_INT_VALUE;}}

অবশেষে, লুপ () ফাংশনে নিম্নলিখিত অবস্থানে উপরে নতুন ফাংশন কল করুন:

// পুনরায় সেট করুন - সিরিয়াল পোর্টক্লিয়ারআইআর কোডবফার (সি) পড়া শুরু করুন;…

এটি একটি আরও পরিষ্কার পদ্ধতি কারণ এটি আসলে আইআর বাফার অ্যারের সমস্ত অবস্থান পুনরায় সেট করে যা সাম্প্রতিক আইআর কোড সিগন্যাল দ্বারা কোন সুযোগ ছাড়াই পপুলেটেড ছিল।

বর্ধন 2 (আরো জড়িত): নির্দিষ্ট ডিভাইসের জন্য আইআর সিগন্যাল ট্রান্সমিশনের পুনরাবৃত্তি

কিছু ডিভাইসে সাড়া দেওয়ার জন্য একই সিগন্যাল একাধিকবার প্রেরণ করা প্রয়োজন উদাহরণ: এই ক্ষেত্রে, স্যামসাং সাউন্ড বারের জন্য একই কোডটি 1 সেকেন্ডের ব্যবধানে দুবার পাঠানোর প্রয়োজন হয়

ফিক্স ইন কনসেপ্ট এখানে আলোচনা করা হয়েছে কারণ এটি একটু বেশি জড়িত এবং পরীক্ষার প্রয়োজন হবে।

আরডুনিও স্কেচে পুনরাবৃত্তি কার্যকারিতা যুক্ত করার অর্থ হ'ল আপনি যখনই আপনার হোম অটোমেশন সিস্টেমে একটি নতুন ডিভাইস যুক্ত করবেন তখন আপনাকে স্কেচটি ফ্ল্যাশ করতে হবে

পরিবর্তে, এইচটিএমএল সিগন্যালআর ক্লায়েন্ট এবং পাইথন সিগন্যালআর সার্ভিস অ্যাপ্লিকেশনটিতে এই ফিক্স যুক্ত করা সমাধানটিকে অনেক বেশি নমনীয় করে তোলে। এবং এটি নীচে নীচে অর্জন করা যেতে পারে:

সিগন্যালআর এইচটিএমএল ক্লায়েন্ট সংশোধন করুন হাবের পুনরাবৃত্ত তথ্য প্রেরণ করতে

Index.html খুলুন এবং HTML বোতামে পুনরাবৃত্তি মান এম্বেড করুন:

মান = "SMSNG-SB-PWR-ON" মান হয়ে যাবে = "SMSNG-SB-PWR-ON_2_1000"

যেখানে, 2 হল পুনরাবৃত্তি মান এবং 1000 হল দুটি পুনরাবৃত্তি সংকেতের মধ্যে মিলিসেকেন্ডে বিলম্বের মান

যখন আপনি এই বোতামে ক্লিক করবেন, সিগন্যালআর হাব কী কোড+রিপিট_স্পেক পাবেন

শুধুমাত্র কী কোডটি বিশ্লেষণ করতে সিগন্যালআর সার্ভারের পার্শ্ব পদ্ধতিগুলি সংশোধন করুন:

  • যথারীতি ডাটাবেজ থেকে আইআর কোড পুনরুদ্ধার করতে কী কোড ব্যবহার করুন
  • Key Code+Repeat_Spec এবং IRCode যথারীতি SingalR ক্লায়েন্টদের কাছে প্রেরণ করুন

পুনরাবৃত্তি মান ব্যবহার করে সংকেত প্রেরণ করার জন্য পাইথন সিগন্যালআর পরিষেবা অ্যাপ্লিকেশনটি সংশোধন করুন:

পাইথন ক্লায়েন্ট খুলুন এবং নিম্নলিখিত দুটি ফাংশন সংশোধন করুন:

def print_command_from_hub (buttonId, cmdSrc):

# buttonId মান থেকে পুনরাবৃত্তি কোড বিশ্লেষণ করুন

def transmitToArduino (IRSignalCode, delim, endPrefix):

# কাঙ্ক্ষিত ফ্রিকোয়েন্সিতে সংকেত প্রেরণের জন্য কিছুক্ষণ বা লুপের জন্য সেট আপ করুন

  • এইভাবে, আরডুইনোকে বারবার ফ্ল্যাশ করতে হবে না
  • যে কোনো সংখ্যক পুনরাবৃত্তি ফ্রিকোয়েন্সি এই সিস্টেমে তৈরি করা যেতে পারে
  • এছাড়া, যদি আপনি ইউএনও ব্যবহার করেন, তাহলে আপনার স্কেচ যে আকারে বাড়তে পারে তার একটি সীমা আছে!

ধাপ 11: জ্ঞাত সমস্যা এবং নিরাপত্তা উদ্বেগ

প্রথমবারের মতো নির্মিত সিস্টেমগুলির ক্ষেত্রে, এটির কয়েকটি সমস্যা রয়েছে যা পরীক্ষার সময় বেরিয়ে আসে।

সমস্যা 1: বোতাম ক্লিকের মধ্যে এক সেকেন্ডেরও কম বিলম্বের সাথে দ্রুত উত্তরাধিকার সূত্রে গুলি চালানোর ফলে প্রথম কয়েকবার সাড়া দেওয়ার পরে সিস্টেমটি প্রতিক্রিয়াহীন হয়ে পড়ে।

  • পাইথন সিগন্যালআর ক্লায়েন্ট পুনরায় চালু করা সিস্টেমটিকে স্বাভাবিক ক্রিয়াকলাপে পুনরুদ্ধার করে
  • অবিলম্বে রেজোলিউশন হতে পারে উভয় ক্ষেত্রে অযাচিত ডিবাগ আউটপুট, পাইথন সিগন্যালআর ক্লায়েন্ট এবং আরডুইনো স্কেচ এবং এই পরীক্ষাগুলি পুনরাবৃত্তি করা
  • সিরিয়াল কমিউনিকেশন নিজেই দেখার আরেকটি জায়গা হবে - দ্রুত বাফার ফ্লাশ করার জন্য কোড যোগ করা কি সম্ভব?

এটি বলেছিল, আমি লক্ষ্য করেছি যে আমার টিভি তার কারখানার দূরবর্তী স্থানে ভাল সাড়া দেয় না - তাই আমার টিভির IR যোগাযোগের প্রকৃতিও একটি অবদানকারী কারণ হতে পারে।

সমস্যা 2: দীর্ঘ সময় নিষ্ক্রিয় থাকার পর HTML স্ক্রিন বাটন ক্লিকের সাড়া দেওয়া বন্ধ করে দেয়

সাধারণত পৃষ্ঠাটি রিফ্রেশ করা এই আচরণের সমাধান করে - এই আচরণের কারণটি এখনও অস্পষ্ট

নিরাপত্তা উদ্বেগ

এই সিস্টেমটি শুধুমাত্র স্থানীয় (হোম) নেটওয়ার্ক ব্যবহারের জন্য ডিজাইন করা হয়েছে এবং ইন্টারনেটে ব্যবহারের জন্য প্রয়োজনীয় নিরাপত্তা সুরক্ষা নেই

অতএব এটি সুপারিশ করা হয় যে সিগন্যালআর হাব আপনার স্থানীয়/হোম নেটওয়ার্কের একটি স্থানীয় মেশিনে স্থাপন করা হবে।

আমার IBLE পড়ার জন্য ধন্যবাদ এবং আমি আশা করি আপনি মজা করেছেন!

প্রস্তাবিত: