সুচিপত্র:

ওয়াশিং মেশিন বিজ্ঞপ্তি সেন্সর: 6 ধাপ (ছবি সহ)
ওয়াশিং মেশিন বিজ্ঞপ্তি সেন্সর: 6 ধাপ (ছবি সহ)

ভিডিও: ওয়াশিং মেশিন বিজ্ঞপ্তি সেন্সর: 6 ধাপ (ছবি সহ)

ভিডিও: ওয়াশিং মেশিন বিজ্ঞপ্তি সেন্সর: 6 ধাপ (ছবি সহ)
ভিডিও: ওয়াশিং মেশিন ওয়াটার প্রেসার লেভেল সেন্সর/সুইচের কাজের নীতি 2024, জুলাই
Anonim
Image
Image
প্রোটোটাইপ
প্রোটোটাইপ

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

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

সম্পূর্ণ অংশ তালিকা:

  • WEMOS LOLIN32
  • অর্ধ-আকারের ব্রেডবোর্ড (প্রোটোটাইপিংয়ের জন্য)
  • ম্যাট্রিক্স বোর্ড 59x88x30mm সহ ABS প্রজেক্ট বক্স
  • স্পার্কফুন এলআইএস 3 ডিএইচ - ট্রিপল অক্ষ অ্যাকসিলারোমিটার ব্রেকআউট
  • 1x ZVP3306A P-channel MOSFET, 160 mA, 60 V, 3-Pin E-Line
  • 1x BC549B TO92 30V NPN ট্রানজিস্টর
  • 5 মিমি এলইডি ব্লু 68 এমসিডি
  • 1x 100k 0.125W CF প্রতিরোধক
  • 1x 330k 0.125W CF রোধক
  • 2x 10k 0.250W CF রোধক
  • 1x 100 0.250W CF রোধক
  • 2-পিন মহিলা JST PH- স্টাইল কেবল (14cm)
  • 4x M1219-8 Neodymium ডিস্ক চুম্বক 6x4mm

ধাপ 1: প্রোটোটাইপ

প্রোটোটাইপ
প্রোটোটাইপ

ডিভাইসটি একটি ESP32 মাইক্রোকন্ট্রোলার ব্যবহার করে। এই ক্ষেত্রে আমি Wemos দ্বারা Lolin32 ডেভেলপমেন্ট বোর্ড ব্যবহার করছি যা আপনি AliExpress এ প্রায় 7 ডলারে কিনতে পারেন। অ্যাকসিলরোমিটার হল স্পার্কফুন এলআইএস 3 ডিএইচ - এটি গুরুত্বপূর্ণ যে অ্যাকসিলরোমিটারটি এনালগের পরিবর্তে ডিজিটাল কারণ আপনি পরে দেখবেন। আমি পুরোনো ব্লুটুথ স্পিকার থেকে যে ব্যাটারি নিয়েছি।

ESP32 I2C এর মাধ্যমে অ্যাকসিলরোমিটারের সাথে সংযোগ স্থাপন করে। কোডের প্রথম সংস্করণটি প্রতি 20ms পরিমাপিত ত্বরণ মানের জন্য কেবল তিনটি অ্যাক্সিলারেশন অক্ষ (x, y এবং z) পোল করে। ওয়াশিং মেশিনে ব্রেডবোর্ড প্রোটোটাইপ স্থাপন করে এবং আমি উপরের গ্রাফটি তৈরি করেছি যা ওয়াশ চক্রের বিভিন্ন পর্যায়ে ত্বরণ শিখর দেখায়। সেই চূড়াগুলি যেখানে পরম ত্বরণ 125mg (স্বাভাবিক মাধ্যাকর্ষণের 125 হাজারতম) এর চেয়ে বেশি ছিল কমলাতে দেখানো হয়েছে। আমরা এই সময়গুলি সনাক্ত করতে চাই এবং ওয়াশিং মেশিনের অবস্থা নির্ধারণ করতে তাদের ব্যবহার করতে চাই।

কিভাবে মেশিন চালু বা বন্ধ তা নির্ধারণ করবেন?

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

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

ছদ্ম কোড এই মত কিছু দেখতে হবে:

# ডিভাইস জেগে ওঠে

নোটিফিকেশন_থ্রেশহোল্ড = 240 কাউন্টার = 10 এক্সেলরোমিটার। () esp32.set_wakeup_trigger_on_interrupt () esp32.deep_sleep ()

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

ধাপ 2: Blynk এর মাধ্যমে একটি বিজ্ঞপ্তি পাঠানো

Blynk এর মাধ্যমে একটি বিজ্ঞপ্তি পাঠানো হচ্ছে
Blynk এর মাধ্যমে একটি বিজ্ঞপ্তি পাঠানো হচ্ছে

Blynk হল এমন একটি পরিষেবা যা আপনার ফোনে একটি অ্যাপ দিয়ে IoT ডিভাইসের সাথে মিথস্ক্রিয়া করার অনুমতি দেয়। এই ক্ষেত্রে, আমি পুশ বিজ্ঞপ্তি API ব্যবহার করছি যা একটি সাধারণ HTTP POST দ্বারা Blynk API এ ট্রিগার করা হয়।

ধাপ 3: বিদ্যুৎ খরচ পরিমাপ এবং ব্যাটারি জীবন অনুমান

বিদ্যুৎ খরচ পরিমাপ এবং ব্যাটারি জীবন অনুমান
বিদ্যুৎ খরচ পরিমাপ এবং ব্যাটারি জীবন অনুমান

ESP32 চিপটি গভীর ঘুমে (5uA যত কম) খুব কম বিদ্যুৎ খরচ হিসাবে বিজ্ঞাপন করা হয়। দুর্ভাগ্যক্রমে, অনেকগুলি বিভিন্ন উন্নয়ন বোর্ডের সার্কিটরি খুব আলাদা বিদ্যুৎ ব্যবহারের বৈশিষ্ট্য প্রদান করে - সমস্ত ESP32 dev বোর্ড সমানভাবে তৈরি হয় না। উদাহরণস্বরূপ, যখন আমি প্রথম এই প্রকল্পটি শুরু করি, আমি স্পার্কফুন ইএসপি 32 থিং ব্যবহার করেছি যা গভীর ঘুমের মোডে প্রায় 1mA শক্তি ব্যবহার করবে (এমনকি পাওয়ার LED নিষ্ক্রিয় করার পরেও)। তখন থেকে আমি Lolin32 (লাইট সংস্করণ নয়) ব্যবহার করছি যার উপর আমি গভীর ঘুমের মোডে 144.5uA এর একটি বর্তমান পরিমাপ করেছি। এই পরিমাপটি করার জন্য, আমি কেবল ব্যাটারি এবং ডিভাইসের সাথে সিরিজের একটি মাল্টিমিটার তারযুক্ত করেছি। ব্রেডবোর্ড দিয়ে প্রোটোটাইপ করার সময় এটি অবশ্যই সহজ। যখন ডিভাইসটি জেগে থাকে তখন আমি বর্তমান ব্যবহারও পরিমাপ করি:

  • গভীর ঘুম: 144.5uA
  • জাগ্রত: 45mA
  • ওয়াইফাই সক্ষম: 150 এমএ

ধরে নিচ্ছি আমি সপ্তাহে দুবার মেশিনটি ব্যবহার করি, সেন্সর প্রতিটি রাজ্যে যে সময় ব্যয় করে তার জন্য আমি নিম্নলিখিত সময়গুলি অনুমান করেছি:

  • গভীর ঘুম: 604090 সেকেন্ড (~ 1 সপ্তাহ)
  • জাগ্রত: 720 সেকেন্ড (12 মিনিট)
  • ওয়াইফাই সক্ষম: 10 সেকেন্ড

এই পরিসংখ্যানগুলি থেকে, আমরা অনুমান করতে পারি যে ব্যাটারিটি কতক্ষণ স্থায়ী হবে। আমি 0.2mA গড় বিদ্যুৎ খরচ পেতে এই সহজ ক্যালকুলেটর ব্যবহার করেছি। আনুমানিক ব্যাটারি জীবন 201 দিন বা প্রায় 6 মাস! বাস্তবে আমি দেখেছি যে ডিভাইসটি প্রায় 2 মাস পরে কাজ করা বন্ধ করে দেবে তাই পরিমাপে বা ব্যাটারির ধারণক্ষমতায় কিছু ত্রুটি থাকতে পারে।

ধাপ 4: ব্যাটারির মাত্রা পরিমাপ করা

ব্যাটারি স্তর পরিমাপ
ব্যাটারি স্তর পরিমাপ
ব্যাটারি স্তর পরিমাপ
ব্যাটারি স্তর পরিমাপ

আমি ভেবেছিলাম ব্যাটারি কম চলার সময় যদি ডিভাইসটি আমাকে বলতে পারে তাহলে এটা ভাল হবে তাই আমি জানি কখন এটি চার্জ করতে হবে। এটি পরিমাপ করার জন্য আমাদের ব্যাটারির ভোল্টেজ পরিমাপ করতে হবে। ব্যাটারির ভোল্টেজ পরিসীমা 4.3V - 2.2V (ESP32 এর ন্যূনতম অপারেটিং ভোল্টেজ)। দুর্ভাগ্যবশত, ESP32 এর ADC পিনের ভোল্টেজ পরিসীমা 0-3.3V। এর মানে হল, আমাদের এডিসির ওভারলোডিং এড়ানোর জন্য ব্যাটারির ভোল্টেজ সর্বোচ্চ 4.3 থেকে 3.3 এ নামিয়ে আনতে হবে। এটি একটি ভোল্টেজ ডিভাইডার দিয়ে করা সম্ভব। ব্যাটারি থেকে মাটিতে যথাযথ মান দিয়ে কেবল দুটি প্রতিরোধককে তারের মধ্যে রাখুন এবং মাঝখানে ভোল্টেজ পরিমাপ করুন।

দুর্ভাগ্যবশত, একটি সাধারণ ভোল্টেজ ডিভাইডার সার্কিট ব্যাটারি থেকে বিদ্যুৎ নিষ্কাশন করবে এমনকি যখন ভোল্টেজ পরিমাপ করা হচ্ছে না। আপনি উচ্চ মান প্রতিরোধক ব্যবহার করে এটি হ্রাস করতে পারেন কিন্তু নিচের দিকটি হল যে ADC সঠিক পরিমাপ করার জন্য যথেষ্ট পরিমাণে কারেন্ট আঁকতে সক্ষম নাও হতে পারে। আমি 100kΩ এবং 330kΩ এর মান সহ প্রতিরোধক ব্যবহার করার সিদ্ধান্ত নিয়েছি যা এই ভোল্টেজ ডিভাইডার সূত্র অনুযায়ী 4.3V থেকে 3.3V এ নেমে যাবে। 430kΩ এর মোট প্রতিরোধের কারণে, আমরা 11.6uA এর বর্তমান ড্র আশা করব (ওহমের আইন ব্যবহার করে)। আমাদের গভীর ঘুমের বর্তমান ব্যবহার 144uA, এটি একটি যুক্তিসঙ্গতভাবে উল্লেখযোগ্য বৃদ্ধি।

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

উপরের সার্কিটের জায়গায়, আমি ব্যাটারির শতাংশ মান পেতে নিম্নলিখিত ছদ্ম কোডটি ব্যবহার করি:

ব্যাটারির চার্জের অবস্থা():

# সক্ষম ব্যাটারি ভোল্টেজ সার্কিট gpio_set_level (BATTERY_EN_PIN, HIGH) # ব্যাটারির মাত্রা 0 এবং 4095 এর মধ্যে একটি পূর্ণসংখ্যা হিসাবে ফিরিয়ে আনা হয় ডিভাইডার 100k/330k ওহম প্রতিরোধক ব্যবহার করে # 4.3V -> 3.223, 2.4 -> 1.842 প্রত্যাশিত_ম্যাক্স = 4.3*330/(100+330) প্রত্যাশিত_মিন = 2.4*330/(100+330) -প্রত্যাশিত_মিন) ব্যাটারি_লেভেল * 100.0 ফিরিয়ে দিন

ধাপ 5: এটিকে আরও সুন্দর করে তোলা

এটাকে আরও সুন্দর করে তোলা
এটাকে আরও সুন্দর করে তোলা
এটাকে আরও সুন্দর করে তোলা
এটাকে আরও সুন্দর করে তোলা
এটাকে আরও সুন্দর করে তোলা
এটাকে আরও সুন্দর করে তোলা

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

সম্ভবত এর সবচেয়ে কঠিন অংশটি ছিল ব্যাটারি ভোল্টেজ সার্কিট উপাদানগুলিকে ললিন 32 এর পাশের ছোট জায়গায় বসানো। সৌভাগ্যক্রমে একটি বিট জিগারি পোকারি এবং ঝাল দিয়ে তৈরি উপযুক্ত সংযোগগুলি সার্কিটটি সুন্দরভাবে ফিট করে। এছাড়াও, যেহেতু Wemos Lolin32 এর পজিটিভ ব্যাটারি টার্মিনাল প্রকাশ করার জন্য একটি পিন নেই, তাই আমাকে ব্যাটারি সংযোগকারী থেকে পিন বোর্ডে একটি তারের সোল্ডার করতে হয়েছিল।

আমি একটি এলইডি যোগ করেছি যা যখন ডিভাইসটি চলাচল সনাক্ত করে তখন ঝলকানি দেয়।

ধাপ 6: সমাপ্তি স্পর্শ

Image
Image
সমাপক ছোঁয়া
সমাপক ছোঁয়া
সমাপক ছোঁয়া
সমাপক ছোঁয়া

আমি বাক্সের গোড়ায় 4 mm 6 মিমি x 4 মিমি নিওডিয়ামিয়াম চুম্বকগুলিকে সুপার-আঠালো করেছি যা এটি ওয়াশিং মেশিনের ধাতব শীর্ষে নিরাপদে আটকে থাকতে দেয়।

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

আপনি যদি এই প্রকল্পের কোন বিবরণে আগ্রহী হন, তাহলে দয়া করে একটি মন্তব্য করুন। আপনি যদি কোডটি দেখতে চান, দয়া করে এটি Github এ দেখুন:

github.com/alexspurling/washingmachine

প্রস্তাবিত: