সুচিপত্র:

MQTT/Google Home DoorBell ব্যবহার করে ESP-01: 6 ধাপ
MQTT/Google Home DoorBell ব্যবহার করে ESP-01: 6 ধাপ

ভিডিও: MQTT/Google Home DoorBell ব্যবহার করে ESP-01: 6 ধাপ

ভিডিও: MQTT/Google Home DoorBell ব্যবহার করে ESP-01: 6 ধাপ
ভিডিও: Smart Home (google assistant controlled) | full Bangla tutorial | Blynk | IFTTT | IoT 2024, নভেম্বর
Anonim
MQTT/Google Home DoorBell ব্যবহার করে ESP-01
MQTT/Google Home DoorBell ব্যবহার করে ESP-01

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

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

এই নির্দেশনায় আমি আপনাকে দেখাবো কিভাবে NQRT ব্যবহার করে গুগল হোম / পুশবুল্টে ঘোষণা দিয়ে MQTT ব্রোকারের সাথে যোগাযোগ করার জন্য একটি বিদ্যমান ডোরবেল চিমের সাথে MQTT ক্লায়েন্ট যোগ করতে হয়। এই প্রকল্পটি ডোরবেল সুইচ বা চাইম প্রতিস্থাপন করে না। এটি এখনও ডোরবেলের জন্য নিয়মিত যান্ত্রিক পুশবাটন ব্যবহার করে।

আমরা বিদ্যমান 16VAC ডোরবেল সিস্টেমে ESP-01 মডিউল যুক্ত করব MQTT কার্যকারিতা যুক্ত করে MQTT ব্রোকারকে বার্তা পাঠানোর জন্য (যখন ডোরবেল সুইচ চাপানো হবে)। MQTT ব্রোকার NodeRED- এ বার্তা পাঠাবে। MQTT বার্তা পাওয়ার পর, NodeRED একাধিক গুগল হোম ডিভাইসে ঘোষণা পাঠাবে এবং বিকল্পভাবে পুশবুলেটের মাধ্যমে সেলফোন/ব্রাউজারে বার্তা পাঠাবে।

DIY হোম অটোমেশনের জন্য আমার একটি আবেগ আছে, এবং ধীরে ধীরে আমার বাড়িতে IOT যোগ করা হচ্ছে। গুগল হোম আমার হোম অটোমেশনের অন্যতম প্রধান কাজ।

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

আমাদের বাড়িতে 4 টি গুগল হোম মিনি বিভিন্ন জায়গায়/কক্ষে রাখা আছে, এবং গুগল হোম ব্যবহার করে ডোরবেল ঘোষণা করে, আমরা বাড়ির যেকোনো জায়গায় ডোরবেল বাজালে তাৎক্ষণিকভাবে জানতে পারি।

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

তথ্যসূত্র:

  • ডোরবেল ওয়্যারিং ডায়াগ্রাম:
  • Raspberry Pi এ Mosquitto MQTT Broker ইনস্টল করুন:
  • রাস্পবেরি পাইতে NodeRED ইনস্টল করুন:

ধাপ 1: সার্কিট টু ইন্টারফেস ESP-01 এবং ডোর চিম তৈরি করুন

সার্কিট টু ইন্টারফেস ESP-01 এবং ডোর চিম তৈরি করুন
সার্কিট টু ইন্টারফেস ESP-01 এবং ডোর চিম তৈরি করুন
সার্কিট টু ইন্টারফেস ESP-01 এবং ডোর চিম তৈরি করুন
সার্কিট টু ইন্টারফেস ESP-01 এবং ডোর চিম তৈরি করুন
সার্কিট টু ইন্টারফেস ESP-01 এবং ডোর চিম তৈরি করুন
সার্কিট টু ইন্টারফেস ESP-01 এবং ডোর চিম তৈরি করুন

প্রথম ধাপটি হবে সার্কিট তৈরি করা যা ইএসপি -01 এবং ডোর চিমের মধ্যে ইন্টারফেস হবে। আমার প্রথম ফটোতে দেখানো হিসাবে "TRANS (সাবেক)" এবং "FRONT/REAR" পিনের মধ্যে 16VAC থাকলে সাধারণত দরজার চিম সক্রিয় হয়। ডোরবেল বাটন চাপলে সেই পিনগুলিতে ভোল্টেজ উপস্থিত হয়।

আমি যে সার্কিটটি ডিজাইন করেছি তা হল এই 16VAC সিগন্যালটি অনুভব করা এবং এটিকে 3.3VDC ডিজিটাল সিগন্যালে রূপান্তর করা। এটি একটি মৌলিক অর্ধ তরঙ্গ সংশোধনকারী যা D1 এবং C1 দ্বারা গঠিত। আমাদের এই অবস্থায় ফুল-ওয়েভ রেকটিফায়ার থাকার দরকার নেই কারণ ডিসি আউটপুটে খুব কম লোড হচ্ছে, যা আমাদের বোর্ডে কিছুটা রিয়েল-এস্টেট সংরক্ষণ করছে। আমি বোর্ডটিকে যতটা সম্ভব কম করতে চাই যাতে আমি এটি আমার বিদ্যমান চিমের মধ্যে রাখতে পারি।

R1 এবং R2 ফরম ভোল্টেজ ডিভাইডারকে পিক ডিসি ভোল্টেজকে প্রায় 3.3V এ নামিয়ে আনে।

R3, TR1, এবং R4 ESP-01 GPIO-2 এর জন্য বিপরীত যুক্তি প্রদানের জন্য একটি বৈদ্যুতিন সংকেতের মেরু বদল করে। ফ্ল্যাশ থেকে বুট করার জন্য ESP-01 এর জন্য বুটআপের সময় (পুল-আপ R4 এবং R5 সহ) লজিক হাই প্রদান করার জন্য এটি প্রয়োজনীয়। যখন ডোরবেল pushbutton চাপানো হয়, এটি GPIO-2. TR1 এ লজিক উপস্থাপন করে কোন ছোট শক্তি NPN ট্রানজিস্টর হতে পারে, আমার ক্ষেত্রে আমি 2N3904 ব্যবহার করেছি।

V1 হল একটি 3.3VDC পাওয়ার সাপ্লাই যা আমি AMS1117 3.3VDC রেগুলেটরের সাথে পুরানো 5V সেলফোন চার্জার ব্যবহার করে তৈরি করেছি যা আমি পরবর্তী ধাপে দেখাব।

ইএসপি -01 সকেটের জন্য, আমি একটি 8-পিন স্ট্যান্ডার্ড আইসি সকেট ব্যবহার করি, এবং প্লাস্টিকের সেতুগুলি কাটা যা সারিগুলির মধ্যে ব্যবধান তৈরি করে এবং তারপর 2 টি সারি একসাথে আঠালো করে।

ধাপ 2: ESP-01 এর জন্য 3.3VDC পাওয়ার সাপ্লাই

ESP-01 এর জন্য 3.3VDC পাওয়ার সাপ্লাই
ESP-01 এর জন্য 3.3VDC পাওয়ার সাপ্লাই
ESP-01 এর জন্য 3.3VDC পাওয়ার সাপ্লাই
ESP-01 এর জন্য 3.3VDC পাওয়ার সাপ্লাই
ESP-01 এর জন্য 3.3VDC পাওয়ার সাপ্লাই
ESP-01 এর জন্য 3.3VDC পাওয়ার সাপ্লাই

এই ধাপে, আমরা ESP-01 এর জন্য 3.3VDC পাওয়ার সাপ্লাই তৈরি করব। আমার কাছে কিছু পুরানো 500mA এবং 700mA 5VDC USB চার্জার অ্যাডাপ্টার আছে যা আমি এই প্রকল্পের জন্য পুনরায় পরিকল্পনা করেছি। 5V ভোল্টেজকে 3.3V এ নামানোর জন্য আমাদের 3.3VDC রেগুলেটরও দরকার, এর জন্য আমি ইবে থেকে কেনা একটি সস্তা প্রি-বিল্ট AMS1117 ভিত্তিক রেগুলেটর মডিউল ব্যবহার করছি। আপনি "3.3V AMS1117 মডিউল" অনুসন্ধান করতে পারেন এবং আপনার জন্য কী কাজ করে তা খুঁজে পেতে পারেন।

এই 3.3V রেগুলেটর মডিউলটি খুবই ছোট যে আমি প্রকৃতপক্ষে এটিকে মূল 5V ইউএসবি চার্জার ঘেরের ভিতরে স্টাফ করতে পারি যা এটিকে সম্ভাব্য শর্ট-সার্কিট থেকে নিরাপদ করে তোলে। আমি চার্জার মডিউল থেকে এসি প্রাচীরের অংশগুলি সরিয়েছি এবং এটি দুটি তারের সাথে প্রতিস্থাপন করি যা আমার বিদ্যমান চিমের পিছনে প্রাচীর থেকে 120VAC এর সাথে সংযুক্ত হবে। কিন্তু পরবর্তী ধাপে পরীক্ষা চালানো না হওয়া পর্যন্ত এই ধাপের প্রংগগুলি অপসারণ করবেন না।

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

আমার ছবির একটি দেখুন যে আমার চাইয়ের পিছনে 120VAC ওয়্যারিং এবং চিমের জন্য 16VAC ট্রান্সফরমার রয়েছে।

3.3V রেগুলেটর থেকে আউটপুট আগের ধাপ অনুযায়ী ESP-01 ইন্টারফেস বোর্ডের সাথে সংযুক্ত হবে।

ধাপ 3: ESP-01 ফ্ল্যাশ করা

এই ধাপে, আমরা আরডুইনো স্কেচ দিয়ে ESP-01 ফ্ল্যাশ করব। যদি আপনি কখনোই ESP-01 মডিউলটি ফ্ল্যাশ না করেন, তাহলে আপনি শুরু করতে আমার নির্দেশাবলী অনুসরণ করতে পারেন:

আপনি আমার গিথুব পৃষ্ঠায় আমার স্কেচ খুঁজে পেতে পারেন:

স্কেচে, সর্বনিম্ন আপনাকে আপনার হোম নেটওয়ার্ক/সেটআপ সম্পর্কিত নিম্নলিখিত তথ্য পরিবর্তন করতে হবে:

#ডিফাইন MQTT_SERVER "10.0.0.30" const char* ssid1 = "SSID"; const char* password1 = "MYSSIDpassword"; const char* ssid2 = "SSID1"; const char* password2 = "MYSSIDpassword";

আমার হোম নেটওয়ার্কে, আমার 2 টি ভিন্ন অ্যাক্সেস পয়েন্ট আছে যা 2 টি ভিন্ন SSID সম্প্রচার করে, এবং এই স্কেচটি পরবর্তী SSID- এর সাথে সংযোগ স্থাপনের মাধ্যমে অপ্রয়োজনীয়তার অনুমতি দেবে যদি বর্তমান AP- এর সাথে যোগাযোগ হারিয়ে যায়। যদি আপনার শুধুমাত্র একটি SSID থাকে, তাহলে একই মান দিয়ে ssid1 এবং ssid2 উভয়ই পূরণ করুন।

একবার আপনি সংশোধন করে নিলে, স্কেচটি ESP-01 এ আপলোড করুন এবং ESP-01 এ ইন্টারফেস বোর্ডে প্লাগ করুন।

ধাপ 4: টেস্ট রান

টেস্ট রান
টেস্ট রান
টেস্ট রান
টেস্ট রান
টেস্ট রান
টেস্ট রান

ধাপ 1 থেকে আমরা ESP-01 ইন্টারফেস বোর্ড তৈরি করেছি, এবং ধাপ 2 থেকে আমাদের ESP-01 বোর্ডের জন্য 3.3V পাওয়ার সাপ্লাই আছে। আমরা এখন সার্কিট ডায়াগ্রাম অনুযায়ী বোর্ডের সাথে পাওয়ার সাপ্লাই আউটপুট সংযোগ করি, যা V1 হিসাবে দেখানো হয়েছে।

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

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

মশার_সুব -ভি -টি '#'

উপরের কমান্ডটি আমাদের সকল MQTT বার্তা দালালের মধ্যে আসার অনুমতি দেবে।

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

stat/DoorBell/LWT অনলাইন

এখন বাইরে যান এবং আপনার ডোরবেল বাজান, এবং আপনার এই বার্তাটি দেখা উচিত:

টেলি/ডোরবেল চালু

যদি আপনি সেই বার্তাগুলি দেখেন, আপনার প্রকল্পটি একটি সাফল্য।

আমি স্কেচে বেশ কয়েকটি দরকারী MQTT বিষয় অন্তর্ভুক্ত করেছি যা আপনি ব্যবহার করতে পারেন:

"stat/DoorBellInfo": আপটাইম এবং অন্যান্য তথ্য প্রদানের জন্য প্রতি মিনিটে এই বার্তা পাঠানো হয়।

"cmnd/DoorBellInfo": ESP-01 তথ্য পাঠাবে যদি এটি এই বিষয়টি '1' (ascii = 49) "cmnd/DoorBellCPUrestart" এর মান নিয়ে পাঠায়: ESP-01 পুনরায় চালু হবে যদি এটি '1' এর মান সহ এই বিষয়টি গ্রহণ করে ''

"টেলি/ফ্রন্টডোরবেল": ডোরবেল চাপলে ESP-01 'ON' এর মান সহ এই বিষয়ে মেসেজ পাঠাবে

ধাপ 5: চিমে বোর্ড এবং পাওয়ার সাপ্লাই সংহত করা

চিমে বোর্ড এবং পাওয়ার সাপ্লাই সংহত করা
চিমে বোর্ড এবং পাওয়ার সাপ্লাই সংহত করা
চিমে বোর্ড এবং পাওয়ার সাপ্লাই সংহত করা
চিমে বোর্ড এবং পাওয়ার সাপ্লাই সংহত করা
চিমে বোর্ড এবং বিদ্যুৎ সরবরাহকে একীভূত করা
চিমে বোর্ড এবং বিদ্যুৎ সরবরাহকে একীভূত করা

এখন যেহেতু আমরা আমাদের সফল পরীক্ষা চালাচ্ছি, আমাদের বোর্ড এবং পাওয়ার সাপ্লাই আমাদের ডোরবেল বাজানোর ভিতরে (যদি সম্ভব হয়) একত্রিত করতে হবে। আমার বিদ্যমান চিমে, একটি খালি ঘের রয়েছে যা আমি সেই জায়গার ভিতরে বিদ্যুৎ সরবরাহ খুলে ফিট করতে সক্ষম ছিলাম। ESP-01 বোর্ড সেই ছোট্ট জায়গার ভিতরে মাপসই করে না, কিন্তু তবুও সামগ্রিক চিম বক্সের ভিতরে ফিট করে। আমি শুধু ESP-01 ইন্টারফেস বোর্ড মাউন্ট করার জন্য একটি পুরু ডবল পার্শ্বযুক্ত টেপ ব্যবহার করেছি।

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

যদি আমাদের প্রকল্পটি বিদ্যমান দরজার আওয়াজে ফিট করার জন্য পর্যাপ্ত জায়গা না থাকে, তাহলে আপনাকে এটি একটি পৃথক বাক্সে andুকিয়ে দরজার ঘাটের কাছে মাউন্ট করতে হবে।

ধাপ 6: চূড়ান্ত স্পর্শ

চূড়ান্ত স্পর্শ
চূড়ান্ত স্পর্শ

এখন যেহেতু আমরা প্রকল্পটি কাজ করেছি এবং ব্রোকারের কাছে MQTT বার্তা প্রকাশ করতে সক্ষম হয়েছি, তার পরের ধাপটি এর সাথে কী করা উচিত তা চিন্তা করা।

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

এই ধাপে ছবি, এটি সম্পন্ন করার জন্য নোড-রেড প্রবাহ দেখায়। আপনি আমার গিথুব পৃষ্ঠা থেকে আপনার নোড-রেডে প্রবাহ পেস্ট করতে পারেন:

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

আনন্দ কর…

প্রস্তাবিত: