সুচিপত্র:

MQTT ব্যবহার করে মডেল ট্রেন ওয়াইফাই নিয়ন্ত্রণ: 9 টি ধাপ
MQTT ব্যবহার করে মডেল ট্রেন ওয়াইফাই নিয়ন্ত্রণ: 9 টি ধাপ

ভিডিও: MQTT ব্যবহার করে মডেল ট্রেন ওয়াইফাই নিয়ন্ত্রণ: 9 টি ধাপ

ভিডিও: MQTT ব্যবহার করে মডেল ট্রেন ওয়াইফাই নিয়ন্ত্রণ: 9 টি ধাপ
ভিডিও: আর্কিটেকচার কাটা #1 - একটি বিশেষজ্ঞের সাথে বিশ্লেষণ [কিভাবে একটি বাস্তব সমাধান স্থপতি কাজ করে] #ity 2024, মে
Anonim
MQTT ব্যবহার করে মডেল ট্রেন ওয়াইফাই কন্ট্রোল
MQTT ব্যবহার করে মডেল ট্রেন ওয়াইফাই কন্ট্রোল

একটি পুরানো টিটি স্কেল ট্রেন মডেল সিস্টেম থাকার কারণে, আমি একটি ধারণা ছিল কিভাবে লোকেগুলিকে পৃথকভাবে নিয়ন্ত্রণ করা যায়।

এই কথা মাথায় রেখে, আমি আরও এক ধাপ এগিয়ে গেলাম এবং বুঝতে পারলাম যে কেবল ট্রেনগুলি নিয়ন্ত্রণ করার জন্যই নয় বরং পুরো লেআউট সম্পর্কে কিছু অতিরিক্ত তথ্য থাকা এবং অন্য কিছু নিয়ন্ত্রণ করা (বাতি, রেল সুইচ …)

এভাবেই ওয়াইফাই নিয়ন্ত্রিত মডেল ট্রেন সিস্টেমের জন্ম হয়।

ধাপ 1: অপারেশন মূল্য

অপারেশন মূল্য
অপারেশন মূল্য

মূল নীতি হল প্রতিটি উপাদানকে পৃথকভাবে নিয়ন্ত্রণ করা, হয় একক নিয়ামক থেকে, অথবা একাধিক নিয়ন্ত্রণ উৎস থেকে। এই সহজাতভাবে একটি সাধারণ শারীরিক স্তর প্রয়োজন - সবচেয়ে স্পষ্টভাবে ওয়াইফাই - এবং একটি সাধারণ যোগাযোগ প্রোটোকল, MQTT।

কেন্দ্রীয় উপাদান হল MQTT ব্রোকার। প্রতিটি সংযুক্ত ডিভাইস (ট্রেন, সেন্সর, আউটপুট …) শুধুমাত্র ব্রোকারের মাধ্যমে যোগাযোগের অনুমতি পায় এবং শুধুমাত্র ব্রোকারের কাছ থেকে ডেটা গ্রহণ করতে পারে।

ডিভাইসের হৃদয় একটি ESP8266 ভিত্তিক ওয়াইফাই নিয়ামক, যখন MQTT দালাল রাস্পবেরি পাইতে চলে।

প্রথমে ওয়াইফাই রাউটার দ্বারা ওয়াইফাই কভারেজ প্রদান করা হয়, এবং সবকিছু বেতার মাধ্যমে সংযুক্ত করা হয়।

এখানে 4 ধরণের ডিভাইস রয়েছে:

- ট্রেন নিয়ামক: 2 ডিজিটাল ইনপুট, 1 ডিজিটাল আউটপুট, 2 PWM আউটপুট (2 পৃথক ডিসি মোটর নিয়ন্ত্রণের জন্য), - সেন্সর কন্ট্রোলার: 7 টি ডিজিটাল ইনপুট আছে (ইনপুট সুইচ, অপটোসেন্সরের জন্য …), - আউটপুট নিয়ামক: 8 টি ডিজিটাল আউটপুট আছে (রেল সুইচগুলির জন্য …), - ওয়াইফাই রিমোট: আছে 1 ইনক্রিমেন্টাল এনকোডার ইনপুট, 1 ডিজিটাল ইনপুট (ট্রেন দূর থেকে নিয়ন্ত্রণ করতে)।

সিস্টেমটি নোড-রেড (ট্যাবলেট, পিসি বা স্মার্টফোন থেকে …) থেকেও কাজ করতে সক্ষম।

ধাপ 2: MQTT ডেটা এক্সচেঞ্জ এবং কনফিগারেশন

MQTT ডেটা এক্সচেঞ্জ এবং কনফিগারেশন
MQTT ডেটা এক্সচেঞ্জ এবং কনফিগারেশন

MQTT প্রোটোকলের উপর ভিত্তি করে, প্রথমে প্রতিটি ডিভাইস একটি নির্দিষ্ট বিষয়ে সাবস্ক্রাইব করে, এবং অন্য বিষয়ে প্রকাশ করতে পারে। এটি ট্রেন নিয়ন্ত্রণ নেটওয়ার্কের যোগাযোগের ভিত্তি।

এই যোগাযোগের গল্পগুলি JSON বিন্যাসিত বার্তার মাধ্যমে স্থান পায়, যাতে সংক্ষিপ্ত এবং মানুষের পাঠযোগ্য হয়।

আরও দৃষ্টিকোণ থেকে দেখছি: নেটওয়ার্কটির নিজস্ব SSID (নেটওয়ার্ক নাম) এবং একটি পাসওয়ার্ড সহ একটি ওয়াইফাই রাউটার রয়েছে। ওয়াইফাই নেটওয়ার্ক অ্যাক্সেস করার জন্য প্রতিটি ডিভাইসকে এই 2 টি অবশ্যই জানতে হবে। এমকিউটিটি ব্রোকারও এই নেটওয়ার্কের অংশ, তাই এমকিউটিটি প্রোটোকল ব্যবহার করার জন্য প্রতিটি ডিভাইসকে অবশ্যই ব্রোকারের আইপি ঠিকানা জানতে হবে। এবং সবশেষে সাবস্ক্রাইব করার এবং বার্তা প্রকাশের জন্য প্রতিটি ডিভাইসের নিজস্ব বিষয় থাকে।

ব্যবহারিকভাবে, একটি প্রদত্ত রিমোট কন্ট্রোল একই বিষয় ব্যবহার করে বার্তা প্রকাশ করতে যে একটি প্রদত্ত ট্রেন সাবস্ক্রাইব করে।

ধাপ 3: ট্রেন কন্ট্রোলার

ট্রেন কন্ট্রোলার
ট্রেন কন্ট্রোলার

একটি খেলনা ট্রেন নিয়ন্ত্রণ করার জন্য, মূলত আমাদের 3 টি জিনিস দরকার: একটি পাওয়ার সাপ্লাই, একটি ওয়াইফাই সক্ষম নিয়ামক এবং মোটর ড্রাইভার ইলেকট্রনিক্স।

বিদ্যুৎ সরবরাহ প্রকৃত ব্যবহার পরিকল্পনার উপর নির্ভর করে: লেগোর ক্ষেত্রে, এটি হল পাওয়ার ফাংশন ব্যাটারি বক্স, "ওল্ডস্কুল" টিটি বা H0 স্কেল ট্রেন সেটের ক্ষেত্রে, এটি ট্র্যাকের 12V পাওয়ার সাপ্লাই।

ওয়াইফাই সক্ষম নিয়ামক একটি Wemos D1 মিনি (ESP8266 ভিত্তিক) নিয়ামক।

মোটর ড্রাইভার ইলেকট্রনিক্স একটি TB6612 ভিত্তিক মডিউল।

ট্রেন কন্ট্রোলারের 2 টি পৃথকভাবে নিয়ন্ত্রিত PWM আউটপুট রয়েছে। মোটামুটিভাবে একটি মোটর নিয়ন্ত্রণের জন্য এবং অন্যটি হালকা সংকেতের জন্য ব্যবহৃত হয়। রিড কন্টাক্ট ভিত্তিক সেন্সিং এবং একটি ডিজিটাল আউটপুটের জন্য 2 টি ইনপাস রয়েছে।

নিয়ামক ওয়াইফাই এবং MQTT প্রোটোকলের মাধ্যমে JSON বার্তা গ্রহণ করে।

SPD1 মোটরকে নিয়ন্ত্রণ করে, উদাহরণস্বরূপ: {"SPD1": -204} বার্তাটি মোটরকে 80% শক্তিতে পিছনে সরানোর জন্য ব্যবহৃত হয় (সর্বোচ্চ গতির মান -255)।

SPD2 "দিক সংবেদনশীল" LED আলোর তীব্রতা নিয়ন্ত্রণ করে: {"SPD2": -255} বার্তাটি (পশ্চাদপদ) LED এর পূর্ণ ক্ষমতায় উজ্জ্বল করে তোলে।

OUT1 ডিজিটাল আউটপুটের অবস্থা নিয়ন্ত্রণ করে: {"OUT1": 1} আউটপুট চালু করে।

যদি একটি ইনপুটের অবস্থা পরিবর্তিত হয়, নিয়ামক এটি অনুযায়ী একটি বার্তা পাঠায়: {"IN1": 1}

যদি নিয়ামক একটি বৈধ বার্তা পায়, এটি এটি কার্যকর করে এবং দালালকে একটি প্রতিক্রিয়া প্রদান করে। প্রতিক্রিয়া আসলে কার্যকর করা কমান্ড। উদাহরণস্বরূপ: যদি দালাল {"SPD1": 280} পাঠায় তাহলে মোটরটি পূর্ণ ক্ষমতায় কাজ করছে কিন্তু প্রতিক্রিয়া বার্তাটি হবে: {"SPD1": 255}

ধাপ 4: লেগো ট্রেন নিয়ন্ত্রণ

লেগো ট্রেন কন্ট্রোল
লেগো ট্রেন কন্ট্রোল

লেগো ট্রেনের ক্ষেত্রে, পরিকল্পনাগুলি কিছুটা আলাদা।

বিদ্যুৎ সরাসরি ব্যাটারি বক্স থেকে আসে।

ESP8266 ভিত্তিক ললিন বোর্ডের জন্য 3.5V প্রদান করার জন্য একটি মিনি স্টেপ ডাউন কনভার্টারের প্রয়োজন রয়েছে।

সংযোগগুলি একটি লেগো 8886 এক্সটেনশন তার দিয়ে তৈরি করা হয়, যা অর্ধেক কাটা হয়।

ধাপ 5: রিমোট কন্ট্রোলার

দূরবর্তী নিয়ামক
দূরবর্তী নিয়ামক

নিয়ামক কেবল ট্রেনে বার্তা প্রকাশ করে (BCD সুইচ দ্বারা সংজ্ঞায়িত)।

এনকোডার ঘোরানোর মাধ্যমে, রিমোট হয় {"SPD1": "+"} অথবা {"SPD1": "-"} বার্তা পাঠায়।

ট্রেন যখন এই "ক্রমবর্ধমান টাইপ" বার্তাটি পায়, তখন এটি তার PWM আউটপুট মান 51 বা -51 দ্বারা পরিবর্তন করে।

এইভাবে রিমোট 5 টি ধাপে (প্রতিটি দিক) ট্রেনের গতি পরিবর্তন করতে পারে।

ইনক্রিমেন্টাল এনকোডার টিপলে {"SPD1": 0} পাঠাবে।

ধাপ 6: সেন্সর নিয়ামক

সেন্সর কন্ট্রোলার
সেন্সর কন্ট্রোলার

তথাকথিত সেন্সর কন্ট্রোলার তার ইনপুটগুলির অবস্থাগুলি পরিমাপ করে এবং যদি তাদের মধ্যে কোনও পরিবর্তন হয় তবে সেই মানটি প্রকাশ করে।

উদাহরণস্বরূপ: {"IN1": 0, "IN6": 1} এই উদাহরণে 2 টি ইনপুট একই সময়ে অবস্থার পরিবর্তন করেছে।

ধাপ 7: আউটপুট কন্ট্রোলার

আউটপুট কন্ট্রোলার
আউটপুট কন্ট্রোলার

আউটপুট কন্ট্রোলারের 8 টি ডিজিটাল আউটপুট রয়েছে, যা একটি ULN2803 ভিত্তিক মডিউলের সাথে সংযুক্ত।

এটি তার সাবস্ক্রাইবকৃত বিষয়ের মাধ্যমে বার্তা গ্রহণ করে।

উদাহরণস্বরূপ {"OUT4": 1, "OUT7": 1} বার্তা 4. এবং 7. ডিজিটাল আউটপুট চালু করুন।

ধাপ 8: রাস্পবেরি পাই এবং ওয়াইফাই রাউটার

আমার একটি ব্যবহৃত টিপি-লিঙ্ক ওয়াইফাই রাউটার ছিল, তাই আমি এটিকে অ্যাক্সেস পয়েন্ট হিসাবে ব্যবহার করেছি।

MQTT ব্রোকার হল একটি রাস্পবেরি পাই যার সাথে মশার ইনস্টল করা আছে।

আমি এমকিউটিটি সহ স্ট্যান্ডার্ড রাস্পবিয়ান ওএস ব্যবহার করি:

sudo apt-get install মশা মশা-ক্লায়েন্ট পাইথন-মশা

টিএসপি-লিংক রাউটার অবশ্যই রাস্পবেরির জন্য একটি ঠিকানা সংরক্ষণের জন্য কনফিগার করা আবশ্যক, তাই প্রতিটি পুন restসূচনা করার পরে পাইটির একই আইপি ঠিকানা থাকে এবং প্রতিটি ডিভাইস এটির সাথে সংযুক্ত হতে পারে।

এবং এটাই!

ধাপ 9: সমাপ্ত কন্ট্রোলার

সমাপ্ত কন্ট্রোলার
সমাপ্ত কন্ট্রোলার
সমাপ্ত কন্ট্রোলার
সমাপ্ত কন্ট্রোলার

এখানে সমাপ্ত নিয়ামক।

টিটি স্কেল লোকোর আকার এত ছোট যে একটি ললিন বোর্ডকে সংকুচিত (কাটা) করতে হয়েছিল যাতে ট্রেনে ফিট করার মতো ছোট হতে পারে।

সংকলিত বাইনারি ডাউনলোড করা যাবে। নিরাপত্তার কারণে, বিন এক্সটেনশনটি txt এ প্রতিস্থাপন করা হয়েছিল।

প্রস্তাবিত: