ডিআইওয়াই: আপনার বাড়ির জন্য একটি স্মার্টলক তৈরি করা যা কেবলমাত্র আপনার স্মার্টফোন দিয়ে খোলে

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



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

স্বয়ংক্রিয় ডোরলক



কোনও সময় নষ্ট না করে আসুন গুরুত্বপূর্ণ ধারণাগুলি অধ্যয়ন এবং এই প্রকল্পে কাজ শুরু করি।



অ্যান্ড্রয়েড পরিচালিত স্মার্টলক কীভাবে তৈরি করবেন?

পদক্ষেপ 1: উপাদান সংগ্রহ

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



  • ESP32
  • জাম্পারের তারগুলি
  • সার্ভো মোটর
  • স্ক্রু
  • লক
  • ড্রিল মেশিন

পদক্ষেপ 2: অ্যাপ্লিকেশন তৈরি করা

যেহেতু আমরা একটি স্মার্ট লক তৈরি করতে যা যা একটি মোবাইল ফোন দ্বারা পরিচালিত হবে, আমাদের একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন বিকাশ করতে হবে যাতে একটি বোতাম থাকবে। সেই বোতামটি টিপে আমরা স্মার্ট লকটি খুলতে বা বন্ধ করতে সক্ষম হব। পূর্বে, আমরা বেশ কয়েকটি উন্নত করেছি অ্যান্ড্রয়েড অ্যাপ্লিকেশন। আমরা ইতিমধ্যে একটি অ্যাপ্লিকেশন তৈরি করেছি যাতে এটিতে কেবল একটি বোতাম থাকে। এই বোতামটি ডাটাবেসে ডেটা প্রেরণে ব্যবহৃত হয়। যদি ‘1’ ফায়ারবেস ডাটাবেসে ঠেলাঠেলি করা হয়, স্যুইচ লকটি খুলবে এবং যদি ‘0’ সেই ডাটাবেসে ঠেলাঠেলি করা হয় তবে লকটি বন্ধ হয়ে যাবে।

আমাদের নামের নিবন্ধ পড়ুন দয়া করে আপনার পিসির জন্য একটি ওয়্যারলেস অন / অফ স্যুইচ স্যুইচ তৈরি করা আপনার নিজের অ্যান্ড্রয়েড অ্যাপ্লিকেশন বিকাশ করতে সহায়তা নিতে যা স্মার্ট লকটি পরিচালনা করতে ব্যবহৃত হবে।

পদক্ষেপ 3: উপাদানগুলি একত্র করা

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



সার্ভো মোটরটি ধরুন এবং এর ভিসি এবং গ্রাউন্ডকে যথাক্রমে ইএসপি বোর্ডের ভিসি এবং গ্রাউন্ডের সাথে সংযুক্ত করুন। আপনার servo মোটরের PWM পিনটি আপনার 34 টি পিনের সাথে সংযুক্ত করুন ESP32 বোর্ড । এখন দেখুন সার্ভো মোটরটিতে একটি গিয়ার ধরণের নক আছে। এটি ঘোরার মাধ্যমে লকের হ্যান্ডেলটি বের করুন এবং কিছু আঠালোগুলির সাহায্যে লকের মধ্যে গিয়ার মোটরটির গিঁটটি ঠিক করুন।

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

পদক্ষেপ 4: কাজ করা

যেহেতু আমরা এখন এই প্রকল্পের পেছনের মূল ধারণাটি জানি, আসুন আমরা বুঝতে পারি যে এই প্রকল্পটি কীভাবে কাজ করবে।

ESP32 এই প্রকল্পের কেন্দ্রস্থল। একটি সার্ভো মোটর এই বোর্ডের সাথে সংযুক্ত এবং এই মাইক্রোকন্ট্রোলারের ফায়ারবেস ডাটাবেসের সাথে সংযোগ রয়েছে। যখন অ্যাপ্লিকেশনটির বোতামটি লকটি খোলার জন্য চাপ দেওয়া হয়, ‘1’ ফায়ারবেস ডাটাবেসে ঠেলাঠেলি করা হয় এবং যখন লকটি বন্ধ করতে বোতামটি টিপানো হয়, তখন ‘0’ ফায়ারবেস ডাটাবেসে ঠেলা যায়। ইএসপি বোর্ড অবিচ্ছিন্নভাবে ফায়ারবেস ডাটাবেসে এই মানটি পড়ছে। যতক্ষণ 0 থাকে, ESP32 সার্ভো মোটরটিকে তার প্রাথমিক অবস্থানে থাকতে নির্দেশ করবে। 1 ফায়ারবেসে আসার সাথে সাথে, ইএসপি বোর্ড এটি পড়বে এবং সার্ভো মোটরকে একটি ঘূর্ণন তৈরি করতে বলবে যা লকটি খুলবে।

পদক্ষেপ 5: ইএসপি 32 দিয়ে শুরু করা

আপনি যদি আগে আরডুইনো আইডিইতে কাজ না করে থাকেন তবে চিন্তিত হবেন না কারণ আরডুইনো আইডিই সেট আপ করার ধাপে ধাপে নীচে দেখানো হয়েছে।

  1. আরডুইনো আইডিইয়ের সর্বশেষতম সংস্করণটি ডাউনলোড করুন আরডুইনো।
  2. আপনার আরডুইনো বোর্ডটিকে পিসিতে সংযুক্ত করুন এবং কন্ট্রোল প্যানেলটি খুলুন। ক্লিক করুন হার্ডওয়্যার এবং শব্দ. এখন উন্মুক্ত ডিভাইস এবং মুদ্রক এবং আপনার বোর্ডটি সংযুক্ত আছে এমন পোর্টটি সন্ধান করুন। আমার ক্ষেত্রে এটি হয় COM14 তবে এটি বিভিন্ন কম্পিউটারে আলাদা।

    বন্দর সন্ধান করা

  3. ফাইল ক্লিক করুন এবং তারপরে পছন্দসমূহ ক্লিক করুন। নীচের লিঙ্কটি অনুলিপি করুন অতিরিক্ত বোর্ড পরিচালকের URL URL “ https://dl.espressif.com/dl/package_esp32_index.json '

    পছন্দসমূহ

  4. এখন, আরডুইনো আইডিই সহ ইএসপি 32 ব্যবহার করতে আমাদের বিশেষ লাইব্রেরি আমদানি করতে হবে যা আমাদের ESP32 এ কোড বার্ন করতে এবং এটি ব্যবহারের অনুমতি দেবে। এই দুটি গ্রন্থাগারটি নীচে দেওয়া লিঙ্কটিতে সংযুক্ত রয়েছে। লাইব্রেরি অন্তর্ভুক্ত করতে, যাও স্কেচ> লাইব্রেরি অন্তর্ভুক্ত করুন> জিপ লাইব্রেরি যুক্ত করুন । একটি বাক্স আসবে। আপনার কম্পিউটারে জিপ ফোল্ডারটি সন্ধান করুন এবং ফোল্ডারগুলি অন্তর্ভুক্ত করতে ওকে ক্লিক করুন।

    গ্রন্থাগার অন্তর্ভুক্ত করুন

  5. এখন যাও স্কেচ> লাইব্রেরি অন্তর্ভুক্ত করুন> গ্রন্থাগারগুলি পরিচালনা করুন।

    গ্রন্থাগারগুলি পরিচালনা করুন

  6. একটি মেনু খুলবে। অনুসন্ধান বারে, টাইপ করুন আরডুইনো জেএসওএন। একটি তালিকা উপস্থিত হবে। ইনস্টল করুন বেনোইট ব্লাঞ্চন রচিত আরডুইনো জেএসএন।

    আরডুইনো জেএসওএন

  7. এখন ক্লিক করুন সরঞ্জাম। একটি ড্রপ ডাউন মেনু প্রদর্শিত হবে. বোর্ড সেট করুন ইএসপি দেব মডিউল।

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

  8. আবার টুল মেনুতে ক্লিক করুন এবং পোর্টটি আপনি কন্ট্রোল প্যানেলে পূর্বে পর্যবেক্ষণ করেছেন সেটি সেট করুন।

    পোর্ট স্থাপন করা

  9. এখন নীচের লিঙ্কে সংযুক্ত কোডটি আপলোড করুন এবং ইএসপি 32 মাইক্রোকন্ট্রোলারে কোড বার্ন করতে আপলোড বাটনে ক্লিক করুন।

    আপলোড করুন

সুতরাং এখন আপনি যখন কোড আপলোড করবেন তখন একটি ত্রুটি ঘটতে পারে। এটি আপনি যদি আরডুইনো আইডিই এবং আরডুইনো জেএসওনের একটি নতুন সংস্করণ ব্যবহার করছেন তবে এটি সবচেয়ে সাধারণ ত্রুটি। নীচে ত্রুটিগুলি যা আপনি পর্দায় দেখতে পাচ্ছেন are

সি:  ব্যবহারকারীদের file প্রো  ডকুমেন্টস  আরডুইনো  গ্রন্থাগারগুলি C আইওএক্সপ_ফায়ারবেসইএসপি 32-মাস্টার / আইওএক্সপ_ফায়ারবেসইএসপি 32: সি:  ব্যবহারকারীদের প্রো-ডেস্কটপ  স্মার্টহোম  কোড  কোড.ino: 2: সি থেকে অন্তর্ভুক্ত ফাইলটিতে :  ব্যবহারকারীগণ  প্রো  নথিগুলি  আরডিনো  লাইব্রেরিগুলি  আইওএক্সপ_ফায়ারবেসইএসপি 32-মাস্টার / আইওএক্সপ_ফায়ারবেসস্ট্রিম এইচ: 14: 11: ত্রুটি: স্ট্যাটিকজসনবার্ফারটি আরডিনোজেসন থেকে একটি শ্রেণি 5.. আপনার প্রোগ্রামটি আরডিনোজে কীভাবে আপগ্রেড করা যায় তা শিখতে দয়া করে আরডুইনজসন.আর.অর্গআপ দেখুন সংস্করণ 6 স্ট্যাটিকজেসন বুফার জসনবফার; সি থেকে ফাইল অন্তর্ভুক্ত: ^ ব্যবহারকারী  প্রো  নথিগুলি rdu আরডুইনো  গ্রন্থাগারসমূহ  আইওএক্সপ_ফায়ারবেসইএসপি 32-মাস্টার / আইওএক্সপ_ফায়ারবেসইএসপি 32: সি:  ব্যবহারকারীগণ  প্রো  ডেস্কটপ  স্মার্টহোম  কোড  কোড।: 2: সি:  ব্যবহারকারীগণ  প্রো  নথিগুলি  আরডিনো  গ্রন্থাগারগুলি O আইওএক্সপ_ফায়ারবেসইএসপি 32-মাস্টার / আইওএক্সপ_ফায়ারবেসস্ট্রিম এইচ: 65: 11: ত্রুটি: স্ট্যান্ডিকজসনবার্ফারটি আরডিনোজেসন থেকে ক্লাস যা আপনার প্রোগ্রামটি আপগ্রেড করতে শিখতে দয়া করে দেখুন আরডুইনোজসন সংস্করণ 6 রিটার্ন স্ট্যাটিক জসনবফার ()। পার্সোবজেক্ট (_ডাটা); Wi একাধিক লাইব্রেরি পাওয়া গেছে 'ওয়াইফাই এইচ' এর জন্য: ব্যবহৃত: সি:  ব্যবহারকারীগণ প্রো  অ্যাপডাটা  স্থানীয়  আরডুইনো 15  প্যাকেজগুলি sp ইএসপি 32  হার্ডওয়্যার  ইএসপি 32  1.0.2  লাইব্রেরি  ওয়াইফাই ব্যবহৃত হয়নি: সি:  প্রোগ্রাম ফাইল ( x86) rdu আরডুইনো  লাইব্রেরি  ওয়াইফাই ফোল্ডারের 1.0 সংস্করণে লাইব্রেরি ওয়াইফাই ব্যবহার করে: সি:  ব্যবহারকারীদের প্রো  অ্যাপডাটা  স্থানীয়  আরডুইনো 15  প্যাকেজগুলি  ইএসপি 32  হার্ডওয়্যার  ইএসপি 32  1.0.2  লাইব্রেরি  ওয়াইফাই IOXhop_FirebaseESP32-মাস্টার লাইব্রেরি ব্যবহার করে ফোল্ডারে: সি:  ব্যবহারকারী  প্রো  নথিগুলি  আরডুইনো  গ্রন্থাগারগুলি  আইওএক্সপ_ফায়ারবেসইএসপি 32-মাস্টার (উত্তরাধিকার) ফোল্ডারে 1.2 সংস্করণে HTTPClient ব্যবহার করছেন: সি:  ব্যবহারকারীগণ  প্রো  অ্যাপডাটা  স্থানীয়  আরডুইনো 15  প্যাকেজগুলি sp এসপি 32  হার্ডওয়্যার  esp32  1.0.2  লাইব্রেরি  HTTPClient ফোল্ডারে 1.0 সংস্করণে WiFiClientSecure ব্যবহার করে: সি:  ব্যবহারকারীদের প্রো  অ্যাপডাটা  স্থানীয়  আরডিনো 15  প্যাকেজগুলি sp esp32  হার্ডওয়্যার  esp32  1.0.2  লাইব্রেরি  WiFiClientSecon লাইব্রেরিতে অ্যানিরিও ব্যবহার করে ফোল্ডারে সংস্করণ .1.১২.০: সি:  ব্যবহারকারীগণ প্রো-ডকুমেন্টস  আরডুইনো  গ্রন্থাগারসমূহ  আরডুইনোজসন প্রস্থান স্থিতি 1 বোর্ড ESP32 দেব মডিউলটির জন্য সংকলন ত্রুটি।

চিন্তার কিছু নেই কারণ আমরা কিছু সাধারণ পদক্ষেপ অনুসরণ করে এই ত্রুটিগুলি দূর করতে পারি। এই ত্রুটিগুলি ঘটছে কারণ আরডুইনো জেএসএনের নতুন সংস্করণটির পরিবর্তে অন্য শ্রেণি রয়েছে স্ট্যাটিকজেসনবাফার। এটি JSON 5 এর ক্লাস So সুতরাং আমরা কেবল আমাদের আরডুইনো আইডিইয়ের আরডুইনো জেএসএনের সংস্করণটি ডাউনগ্রেড করে এই ত্রুটিটি সহজেই দূর করতে পারি। সহজভাবে যান স্কেচ> লাইব্রেরি অন্তর্ভুক্ত করুন> গ্রন্থাগারগুলি পরিচালনা করুন। সন্ধান করা বেনোইট ব্লাঞ্চন রচিত আরডুইনো জেএসএন যে আপনি আগে ইনস্টল করা আছে। প্রথমে এটি আনইনস্টল করুন এবং তার সংস্করণটি এতে সেট করুন 5.13.5। এখন আমরা যেমন আরডুইনো জেএসএনের একটি পুরানো সংস্করণ সেট করেছি, এটি আবার ইনস্টল করুন এবং কোডটি পুনরায় সংকলন করুন। এবার আপনার কোডটি সফলভাবে সংকলন করবে।

কোডটি ডাউনলোড করতে, ক্লিক এখানে.

পদক্ষেপ 6: কোড

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

1. কোডের শুরুতে, আমরা তিনটি গ্রন্থাগার অন্তর্ভুক্ত করব। প্রথমটি হ'ল ইএসপি বোর্ডে ওয়াইফাই সক্ষম করা, দ্বিতীয়টি ইএসপিকে সার্ভো মোটর ব্যবহার করতে সক্ষম করা এবং তৃতীয়টি ফায়ারবেস ডাটাবেসে ইএসপি বোর্ডকে সংযুক্ত করা। এর পরে, আমরা ফায়ারবেস হোস্ট, প্রমাণীকরণ, আমাদের স্থানীয় ইন্টারনেট সংযোগের নাম এবং কোডটিতে এর পাসওয়ার্ড যুক্ত করব। এটি করার পরে, সার্ভো মোটরটি ব্যবহার করতে একটি অবজেক্ট তৈরি করুন।

# অন্তর্ভুক্ত // ওয়াইফাই ব্যবহারের জন্য লাইব্রেরি অন্তর্ভুক্ত করুন # অন্তর্ভুক্ত // সার্ভো মোটরের জন্য লাইব্রেরি অন্তর্ভুক্ত করুন # অন্তর্ভুক্ত // ফায়ারব্যাসের সাথে সংযোগ স্থাপনের জন্য লাইব্রেরি অন্তর্ভুক্ত করুন # এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স // আপনার ফায়ারবেস হোস্ট দ্বারা xxxxxxxxxx প্রতিস্থাপন করুন এখানে #define FIREBASE_AUTH 'xxxxxxxxxx' / / / এখানে আপনার ফায়ারবেস প্রমাণীকরণের মাধ্যমে xxxxxxxxxxxx প্রতিস্থাপন করুন # WIFI_SSID 'এক্সএক্স কোড, এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স'এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স নাম # ডিফাইন ডাব্লুআইএফএআইপিএএসডওয়ার্ড' এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স'র পরিবর্তে সার্ভো মাইসরভো; // সার্ভো মোটর ইন পোস্টের জন্য বস্তু তৈরি করুন = 0; // ভেরিয়েবল ইন্ট স্টেট তৈরি করা; // ভেরিয়েবল তৈরি করা

ঘ। অকার্যকর সেটআপ() মাইক্রোকন্ট্রোলার বোর্ড চালিত থাকে বা সক্ষম বোতামটি চাপলে একটি প্রোগ্রামে কেবল একবার সঞ্চালিত হয় function এই ফাংশনে বাউড রেট সেট করা আছে। বাউড হার হ'ল মাইক্রোকন্ট্রোলার বাহ্যিক ডিভাইসের সাথে যোগাযোগ করে যার মাধ্যমে প্রতি সেকেন্ডে বিটগুলির মধ্যে যোগাযোগের গতি। সার্ভো মোটরটি ইএসপি বোর্ডের পিন 34 এর সাথে সংযুক্ত রয়েছে। স্থানীয় ইন্টারনেট সংযোগে মাইক্রোকন্ট্রোলার সংযোগ করতে এই ফাংশনটিতে কোড লেখা হয়।

অকার্যকর সেটআপ () {সিরিয়াল.বেগিন (115200); // বাউড রেট নির্ধারণ করে myservo.attach (34); // সার্ভো মোটরের পিডাব্লুএম পিনটি ESP32 myservo.write (60) এর পিন 34 এ সংযুক্ত করুন; বিলম্ব (1000); // wifi এ সংযুক্ত করুন। WiFi.begin (WIFI_SSID, WIFI_PASSWORD); সিরিয়াল.প্রিন্টলন ('সংযুক্ত হচ্ছে'); (WiFi.status ()! = WL_CONNECTED) {সিরিয়াল.প্রিন্ট ('।'); বিলম্ব (500); Ial সিরিয়াল.প্রিন্টলন (); সিরিয়াল.প্রিন্ট ('সংযুক্ত:'); সিরিয়াল.প্রিন্টলন (WiFi.localIP ()); ফায়ারবেস.বেগিন (FIREBASE_HOST, FIREBASE_AUTH); }

ঘ। অকার্যকর লুপ () এমন একটি ফাংশন যা বার বার লুপে চলে। এই ফাংশনে, আমরা মাইক্রোকন্ট্রোলারকে বলি, কী কী অপারেশন পরিচালনা করা উচিত এবং কীভাবে। এখানে, ফায়ারবেস থেকে ডেটা পড়া হচ্ছে এবং ভেরিয়েবলের নামটি সংরক্ষণ করা হবে অবস্থা । রাজ্যে যদি এর মান ‘0’ থাকে তবে সার্ভো মোটরের অবস্থানটি 8 ডিগ্রিতে সেট করা থাকে। চলক অবস্থায় মানটি যদি ‘1’ এর সমান হয় তবে সার্ভো মোটরের অবস্থান 55 ডিগ্রিতে সেট করা হবে।

অকার্যকর লুপ () {state = Serial.println (ফায়ারব্যাস.জেটফ্লোট ('মোটর')); // ফায়ারবেস থেকে ডেটা পড়ুন // রাজ্যটি যদি '0' হয় তবে ডিসি মোটরটি বন্ধ হয়ে যাবে যদি (রাজ্য == '0') {myservo.writ (8); সার্ভো মোটর বিলম্বের সেট সেট (1000); // অপ দ্বিতীয় দ্বিতীয় সিরিয়াল.প্রিন্টলনের জন্য অপেক্ষা করুন ('ডোর লকড'); } অন্যথায় যদি (রাজ্য == '1') {myservo.writ (55); // সার্ডো মোটর বিলম্বের নতুন অবস্থান নির্ধারণ করুন (1000); // এক সেকেন্ডের সিরিয়াল.প্রিন্টলনের জন্য অপেক্ষা করুন ('ডোর আনলকড'); Fire // হ্যান্ডেল ত্রুটি যদি (ফায়ারবেস.ফাইল্ড ()) ial সিরিয়াল.প্রিন্ট ('সেটিং / নম্বর ব্যর্থ হয়েছে:'); সিরিয়াল.প্রিন্টলন (ফায়ারব্যাস.অরার ()); প্রত্যাবর্তন } বিলম্ব (1000);