সুচিপত্র:

ওয়্যারলেস MQTT বেড হেডবোর্ড কন্ট্রোল: 5 টি ধাপ (ছবি সহ)
ওয়্যারলেস MQTT বেড হেডবোর্ড কন্ট্রোল: 5 টি ধাপ (ছবি সহ)

ভিডিও: ওয়্যারলেস MQTT বেড হেডবোর্ড কন্ট্রোল: 5 টি ধাপ (ছবি সহ)

ভিডিও: ওয়্যারলেস MQTT বেড হেডবোর্ড কন্ট্রোল: 5 টি ধাপ (ছবি সহ)
ভিডিও: #raspberrypi #picow #MQTT #iot #homeautomation #raspberrypipico #microcontroller #wifi #wireless 2024, জুলাই
Anonim
ওয়্যারলেস MQTT বেড হেডবোর্ড কন্ট্রোল
ওয়্যারলেস MQTT বেড হেডবোর্ড কন্ট্রোল
ওয়্যারলেস MQTT বেড হেডবোর্ড কন্ট্রোল
ওয়্যারলেস MQTT বেড হেডবোর্ড কন্ট্রোল

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

আমরা প্রথম যে জিনিসটি লক্ষ্য করেছি তা হল শোরুমে যে দড়িগুলো সুন্দর এবং লম্বা ছিল তা আমাদের বিছানায় ছিল না! শোরুমে যাদের এক্সটেনশন ছিল। এই এক্সটেনশনগুলি আমাদের বিছানার সাথে অন্তর্ভুক্ত করা হয়নি এবং যথেষ্ট আকর্ষণীয়, কেউ আমাদের এক জোড়া এক্সটেনশন কেবল বিক্রি করতে আগ্রহী ছিল না। এটি আমাদের নিয়ন্ত্রণের সাথে ছেড়ে দিয়েছে যা সবেমাত্র বিছানার শীর্ষে পৌঁছেছে এবং যা ব্যবহার করতে আমাদের ঘুরতে হয়েছিল।

আপনি কি আপনার জন্য বেতন পেতে

প্রায় months মাস পর আমরা লক্ষ্য করি যে একটি নিয়ন্ত্রণের উপর স্ট্রেন রিলিফ কলার ছিঁড়তে শুরু করেছে। কয়েক মাস পরে - খালি তারে। প্রায় এক বছর দ্রুত এগিয়ে যান, একটি নিয়ন্ত্রণ আর কাজ করে না এবং অন্যটি কিছুটা খিটখিটে হয়ে যাচ্ছে।

আবার, কেউ আমাদের প্রতিস্থাপন বিক্রি করতে আগ্রহী ছিল না। তারপর এটা আমাকে আঘাত!

এক মিনিট অপেক্ষা করুন! আমি কি হোম অটোমেশন এবং কন্ট্রোল সিস্টেম তৈরি করছি না?!?

ধাপ 1: আবিষ্কার

আবিষ্কার
আবিষ্কার
আবিষ্কার
আবিষ্কার

আমি দেখতে চেয়েছিলাম যে আমার যা ছিল তা দিয়ে আমি কি করতে পারি তাই আমি ত্রুটিপূর্ণ নিয়ামক অ্যাপার্ট নিয়েছিলাম এবং বাহ! সেখানে অনেক বাজে কথা ছিল! এই সব জিনিস কি জন্য ছিল? আমি পিছনে সরে গেলাম এবং শুধু ভিতরে এবং বাইরে আসা লাইনগুলির দিকে তাকালাম। আমি দেখতে পেলাম যে একটি 12 ভোল্ট সরবরাহ লাইন এবং একটি স্থল লাইন ছিল। অন্য দুটি লাইন দুটি আপ এবং ডাউন বোতামের জন্য সিগন্যাল লাইনের মতো দেখাচ্ছিল। সুতরাং, আমি একটি সুযোগ নিয়েছি এবং মাত্র 12v সরবরাহকে "আপ" সিগন্যাল লাইনে ঝাঁপিয়ে পড়েছি। বিছানা নড়তে শুরু করেছে! আমি তখন আমার জাম্পার ওয়্যারকে "ডাউন" সিগন্যাল লাইনে সরিয়ে দিলাম এবং বিছানা নিচে গেল!

বাক্সে আরও 4 টি সংকেত লাইন এবং আরও 4 টি বোতামের জন্য পরিচিতি রয়েছে। আমার সেরা অনুমান হল যে এই নিয়ামক বোর্ডটি তাদের সমস্ত তারযুক্ত বেস মডেলগুলিতে ব্যবহৃত হয় এবং তারা প্রয়োজন অনুসারে বোর্ডের উপরে বিভিন্ন মুখের প্লেট রাখে। সুতরাং, আমার একটি কাজের তত্ত্ব ছিল। আমি সাপ্লাই লাইনটি পরীক্ষা করে দেখেছি যে এটি ব্যবহারের সময় ডুবে গেছে বা যে কোন সময় স্পিক হয়েছে - না। সিগন্যাল লাইনের উপর খুব কম কারেন্ট ড্র ছিল কিন্তু মোটরটি সক্রিয় করতে তাদের 12 ভোল্টের প্রয়োজন ছিল।

ধাপ 2: নকশা

নকশা
নকশা
নকশা
নকশা
নকশা
নকশা
নকশা
নকশা

সুতরাং VCC এবং সিগন্যাল পিনের মধ্যে একটি সাধারণ যোগাযোগ সংযোগ যা প্রয়োজন তা কিন্তু আমার সিস্টেমের মধ্যে কিভাবে করা হয়। পরিচিতির জন্য দুটি রিলে প্রয়োজন হবে এবং একটি ESP8266 বেতার নিয়ন্ত্রকের জন্য কাজ করবে। যেহেতু রিলে ডিজিটাল পিন সরবরাহ করতে পারে তার চেয়ে বেশি কারেন্টের প্রয়োজন হতে পারে, তাই কন্ট্রোলার এবং রিলে এর মধ্যে একটি অপটিওসোলেটর ব্যবহার করা ভাল। এটি একটি ছোট সংকেতকে একটি উচ্চতর কারেন্ট সুইচ চালু করার অনুমতি দেবে (এই ক্ষেত্রে একটি হালকা চালিত ট্রানজিস্টর) এবং রিলে কয়েলকে নিরাপদে সক্রিয় করবে। এছাড়াও, একটি অপটিওসোলেটর নিয়ন্ত্রককে যে কোনো স্পাইক থেকে বিচ্ছিন্ন করে যা রিলে কয়েল নি isসৃত হলে এবং চৌম্বক ক্ষেত্র ভেঙ্গে পড়লে তৈরি হতে পারে। সৌভাগ্যবশত, রিলে মডিউল বিদ্যমান যা ইতিমধ্যে এই সার্কিট্রি এবং একটি বেশ কম দামের জন্য রয়েছে।

বিছানা হবে নিয়ামকের জন্য পাওয়ার সাপ্লাই এবং 12 ভোল্ট সরবরাহ করা হ্যান্ডেল করার জন্য, আমাদের একটি ভেরিয়েবল বক কনভার্টার লাগবে। একটি খুব সস্তা একটি নীচে লিঙ্ক করা হয়েছে এবং সুন্দরভাবে কাজ করে। 12V লাইন এবং GND লাইন কনভার্টারের ইনপুট সাইডের সাথে সংযুক্ত এবং নিয়ন্ত্রিত 5 ভোল্ট সাইড NodeMCU এর VCC এবং রিলে মডিউলের VCC পিনের সাথে সংযোগ স্থাপন করে। উভয় রিলে মডিউল এবং NodeMCU।

NodeMCU D1 (GPIO5) এবং IN2 D2 (GPIO4) ব্যবহার করে IN1 এর সাথে সংযোগ করে। বিছানায় আপ সিগন্যাল লাইন রিলে 1 এর জন্য সাধারনত খোলা স্ক্রু টার্মিনালের সাথে সংযোগ স্থাপন করে এবং ডাউন সিগন্যাল লাইন রিলে 2 এর সাথে সংযোগ করে সাধারণত খোলা টার্মিনাল ব্লক সংযোগকারী। আপনাকে 12v তারের সাথে সংযোগ করতে হবে যা বক কনভার্টারের ইনপুট পাশের সাথে সংযুক্ত করা হয়েছে এবং উভয় রিলে 1 এবং 2 এর জন্য অন্যান্য টার্মিনাল ব্লক সংযোগের সাথেও।

যন্ত্রাংশ

  • 1 - নোডএমসিইউ
  • 1 - বর্তমান বিচ্ছিন্নতার সাথে দ্বৈত রিলে মডিউল
  • 1 - পরিবর্তনশীল ইনপুট/আউটপুট বক কনভার্টার
  • 1 - ব্রেডবোর্ড পিসিবি
  • 22 গেজ আটকে তামা কোর তারের
  • 2 - M3x 8 স্ক্রু

ধাপ 3: ঘের

ঘের
ঘের

ঘেরটি এখানে পাওয়া যাবে:

আমি টিঙ্কারক্যাডের সাথে একটি সহজ ঘের ডিজাইন করেছি যা বিছানা নিয়ন্ত্রণ তারের জন্য বাক্সের ভিতরে স্ট্রেন রিলিফ বন্ধনীগুলির মধ্যে বাক্সে প্রবেশ করতে দেয়। এখানে একটি জিপ টাইয়ের জন্য স্লট রয়েছে যা তারের স্লাইডিং থেকে রক্ষা করতে সাহায্য করবে কিন্তু আমার ক্ষেত্রে ফিটটি খুব স্ন্যাপ ছিল এবং এটির প্রয়োজন ছিল না। 2 M3x 8 স্ক্রু দিয়ে কভারটি বোল্ট করা হয়েছে। আমি বাক্সে মাউন্ট করার আগে কোড আপলোড এবং সিস্টেমটি পরীক্ষা করার সুপারিশ করব।

আমি বোর্ডগুলিকে জায়গায় রাখার জন্য গরম আঠালো ব্যবহার করেছি কিন্তু এটি প্রয়োজনীয় নাও হতে পারে।

ধাপ 4: কোড

কোডটি এখানে পাওয়া যাবে:

দ্রষ্টব্য: এই প্রকল্পটি pubsubclient লাইব্রেরি ব্যবহার করে যা Arduino IDE তে লাইব্রেরি ম্যানেজারে যোগ করা যেতে পারে।

এখানে কোডটি বেশ মৌলিক এবং হোম অ্যাসিস্ট্যান্টের কভার এমকিউটিটি টাইপের উপর ভিত্তি করে ডিজাইন করা হয়েছিল। এখানে ধারণাটি সহজ: আপনি যখন হোম অ্যাসিস্ট্যান্টে আপ বা ডাউন বোতাম টিপেন, তখন স্টপ কমান্ড না পাওয়া পর্যন্ত সিস্টেমটি বন্ধ হয়ে যায় অথবা সিস্টেমটি সর্বাধিক সক্রিয়করণের সময় পৌঁছায় এবং থামে।

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

আমার কোডে, এই সময়সীমাটি 20 সেকেন্ড এবং কোডের শীর্ষে গ্লোবাল ভেরিয়েবল ব্লকে সামঞ্জস্য করা যেতে পারে।

দ্বিতীয় নিরাপত্তার সতর্কতা ছিল সর্বদা নিশ্চিত করা যে, যদি আমি একটি রিলে সক্রিয় করি, অন্যটির ইচ্ছাকৃত নিষ্ক্রিয়করণ সবসময় বলা হয়, এমনকি যদি শেষ অবস্থাটি ইতিমধ্যেই বন্ধ থাকে। আমি 12v উভয় সিগন্যাল লাইন নিচে পাঠাতে চাই না কারণ আমি জানি না যে এটি বিছানায় কি করবে।

তা ছাড়া, বিছানা প্রকাশ করে যে এটি প্রতি 60 সেকেন্ডে পাওয়া যায় এবং এটিই। এখানে কোনো ঘণ্টা বা শিস বাজে না। যেহেতু বিছানায় পজিশন ফিডব্যাক নেই, তাই আমি হোম অ্যাসিস্ট্যান্টকে ফেরত পাঠাতে পারিনি।

ধাপ 5: উদাহরণ ইন্টিগ্রেশন

উদাহরণ ইন্টিগ্রেশন
উদাহরণ ইন্টিগ্রেশন
উদাহরণ ইন্টিগ্রেশন
উদাহরণ ইন্টিগ্রেশন

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

HA তে আমার নিম্নলিখিত সংজ্ঞা সহ একটি covers.yaml ফাইল আছে:

- প্ল্যাটফর্ম: mqtt

নাম: "মাস্টার বেড হেডবোর্ড" কমান্ড_টপিক: "মাস্টার_বেড_কন্ট্রোল/সিএমডি" প্রাপ্যতা_টপিক: "মাস্টার_বেড_কন্ট্রোল/প্রাপ্যতা" qos: 0 বজায় রাখা: মিথ্যা পেলোড_ওপেন: "ইউপি" পেলোড_ক্লোজ: "ডাউন" পাইলোড_স্টপ: "স্টপ" পাইলোড_অভ্যিলিয়েবল: "অনলাইনে" পাইলোড_নোট পাওয়া যায়: " অফলাইন "আশাবাদী: সত্য

এটি আমাকে আমার HA ইন্টারফেসে একটি এন্ট্রি দেয় একটি উপরে/স্টপ/ডাউন বোতাম সেট করে উপরে বর্ণিত কর্মের সাথে।

উপরন্তু, আমি হেডবোর্ড বাড়াতে এবং নামানোর জন্য আমার বেডসাইড কন্ট্রোল প্যানেলে (নির্দেশযোগ্য / ব্লগ পোস্ট) দুটি বোতাম সংজ্ঞায়িত করেছি। কন্ট্রোল প্যানেলের বোতামগুলি MQTT সেন্সর হিসাবে সংজ্ঞায়িত করা হয়েছে:

- প্ল্যাটফর্ম: mqtt

state_topic: "bedside_cp1/button5" name: "bedside CP1 Button 5" icon: mdi: circle

- প্ল্যাটফর্ম: mqtt

state_topic: "bedside_cp1/button6" name: "bedside CP1 Button 6" icon: mdi: circle

… এবং 4 টি অটোমেশন নিয়ম যখন প্রতিটি বোতাম টিপে এবং ছেড়ে দেওয়া হয়। যখন চাপানো হয়, কোন বাটন সক্রিয় করা হয়েছে তার উপর নির্ভর করে বিছানায় আপ বা ডাউন কমান্ড পাঠানো হয়, যখন বোতামটি রিলিজ হয়, স্টপ কমান্ড পাঠানো হয়:

- আইডি: '1548308650383'

উপনাম: এমবিআর বেডসাইড সিপি বাটন 5 এ ট্রিগার: - entity_id: sensor.bedside_cp1_button_5 থেকে: 'অফ' প্ল্যাটফর্ম: স্টেট টু: 'অন' কন্ডিশন: অ্যাকশন: - ডেটা: সত্তা_আইডি: 'cover.master_bed_headboard' পরিষেবা: cover.open_cover - আইডি: '1548308758911' উপনাম: এমবিআর বেডসাইড সিপি বোতাম 5 বি ট্রিগার: - entity_id: sensor.bedside_cp1_button_5 থেকে: 'অন' প্ল্যাটফর্ম: স্টেট টু: 'অফ' কন্ডিশন: অ্যাকশন: - ডেটা: সত্তা_বিড_হেডবোর্ড 'পরিষেবা: cover.stop_cover - id: '1548308863495' উপনাম: MBR Bedside CP Button 6a trigger: - entity_id: sensor.bedside_cp1_button_6 from: 'off' platform: state to: 'on' condition: action: - data: entity_id: ' cover.master_bed_headboard 'service: cover.close_cover - id:' 1548308911467 'উপনাম: MBR বেডসাইড সিপি বোতাম 6b ট্রিগার: - entity_id: sensor.bedside_cp1_button_6 থেকে:' on 'platform: state to:' off 'condition: action: - data: entity_id: 'cover.master_bed_headboard' পরিষেবা: cover.stop_cover

প্রস্তাবিত: