সুচিপত্র:

অতিস্বনক বৃষ্টির পানির ট্যাঙ্কের ক্যাপাসিটি মিটার: 10 টি ধাপ (ছবি সহ)
অতিস্বনক বৃষ্টির পানির ট্যাঙ্কের ক্যাপাসিটি মিটার: 10 টি ধাপ (ছবি সহ)

ভিডিও: অতিস্বনক বৃষ্টির পানির ট্যাঙ্কের ক্যাপাসিটি মিটার: 10 টি ধাপ (ছবি সহ)

ভিডিও: অতিস্বনক বৃষ্টির পানির ট্যাঙ্কের ক্যাপাসিটি মিটার: 10 টি ধাপ (ছবি সহ)
ভিডিও: The Hidden Hindu Part 2 Complete Audiobook In Hindi | #newaudiobook 2024, নভেম্বর
Anonim
অতিস্বনক বৃষ্টির পানির ট্যাঙ্কের ক্যাপাসিটি মিটার
অতিস্বনক বৃষ্টির পানির ট্যাঙ্কের ক্যাপাসিটি মিটার

আপনি যদি আমার মতো কিছু হন এবং একটু পরিবেশগত বিবেক (বা শুধু কিছু টাকা বাঁচাতে আগ্রহী স্কিনফ্লিন্টস - যা আমিও …), আপনার বৃষ্টির পানির ট্যাঙ্ক থাকতে পারে। অস্ট্রেলিয়ায় যে বৃষ্টি আমরা পাই, তার ফসল তোলার জন্য আমার কাছে একটি ট্যাঙ্ক আছে - কিন্তু ছেলে ওহে ছেলে, যখন এখানে বৃষ্টি হয়, তখন সত্যিই বৃষ্টি হয়! আমার ট্যাঙ্কটি প্রায় 1.5 মিটার উঁচু এবং একটি চূড়ায় রয়েছে, যার অর্থ হল পানির স্তর পরীক্ষা করার জন্য আমাকে পদক্ষেপ নিতে হবে (অথবা - কারণ আমি খুব অলস, BBQ থেকে এখন একটি পুরানো গ্যাসের বোতলের উপরে ভারসাম্য বজায় রাখুন ট্যাঙ্কের পাশে 'ধাপ' হিসেবে স্থায়ী বাসস্থান)।

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

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

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

ধাপ 1: গণিত …

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

NB - প্রকৃতপক্ষে, সেন্সর থেকে ফেরত আসা মানটি আসলে সিগন্যালের জন্য নির্গত অংশটি ছেড়ে রিসিভারে ফিরে যাওয়ার সময়। এটি মাইক্রোসেকেন্ডে আছে - কিন্তু শব্দের গতি জানা হচ্ছে প্রতি সেমি ২ micro মাইক্রোসেকেন্ড (কি? আপনি সেটা জানেন না?

ছবি
ছবি

প্রথম - অবশ্যই, আমাদের দূরত্বকে 2 দ্বারা ভাগ করতে হবে যাতে সেন্সরটি পৃষ্ঠের দূরত্বের দিকে যেতে পারে। তারপর, সেন্সর থেকে 'সর্বোচ্চ' জলের গভীরতার ধ্রুব দূরত্ব বিয়োগ করুন। অবশিষ্ট মান হল পানির গভীরতা যা ব্যবহার করা হয়েছে। পরবর্তী, ট্যাঙ্কে থাকা পানির গভীরতা খুঁজে বের করতে, সর্বোচ্চ পানির গভীরতা থেকে সেই মানটি বিয়োগ করুন।

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

ধাপ 2: ব্যবহারিকতা

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

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

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

আমি Arduino ডিজিটাল I/O পিনগুলির একটিতে উচ্চ বা নিম্নের জন্য পরীক্ষা করার জন্য একটি বিট কোড অন্তর্ভুক্ত করেছি, এবং ইউনিটটিকে যাকে আমি 'ক্যালিব্রেশন' মোড বলেছিলাম তাতে ব্যবহার করতে। এই মোডে, ডিসপ্লেটি সেন্সর দ্বারা ফেরত প্রকৃত দূরত্ব (2 দ্বারা বিভক্ত) দেখায়, তাই আমি একটি টেপ পরিমাপের বিরুদ্ধে এর সঠিকতা পরীক্ষা করতে পারি।

ধাপ 3: উপকরণ

ইউনিট তিনটি প্রধান উপাদান নিয়ে গঠিত …

ছবি
ছবি
  1. একটি HC-SR04 অতিস্বনক ট্রান্সমিটার/রিসিভার মডিউল
  2. একটি Arduino প্রো মিনি মাইক্রোকন্ট্রোলার
  3. একটি 4 ডিজিট 7 সেগমেন্ট LED ডিসপ্লে বা ডিসপ্লে 'মডিউল' যেমন একটি TM1637

উপরের সবগুলি সহজেই ইবেতে পাওয়া যাবে, কেবল বোল্ড প্রিন্টে দেখানো পদগুলি অনুসন্ধান করে।

এই অ্যাপ্লিকেশনে, ডিসপ্লেটি লিটার সংখ্যা (আমার ক্ষেত্রে সর্বাধিক 2000) দেখানোর জন্য 0-100 বা 4 ডিজিটের % মান প্রদর্শন করার জন্য 3 সংখ্যা ব্যবহার করে, তাই 4 ডিজিটের ডিসপ্লে করবে - আপনাকে করতে হবে না মডিউলের দশমিক বিন্দু বা কোলন আছে কিনা তা নিয়ে চিন্তা করুন। একটি ডিসপ্লে 'মডিউল' (একটি ইন্টারফেস চিপ সহ একটি ব্রেকআউট বোর্ডে লাগানো এলইডি) সহজ, কারণ এটি কম পিন সংযোগ ব্যবহার করে, কিন্তু 12 পিনের সাথে একটি কাঁচা LED ডিসপ্লে আরডুইনো দ্বারা কোডে কিছু ছোট পরিবর্তন করে বসানো যেতে পারে (আসলে আমার মূল নকশা এই সেটআপের উপর ভিত্তি করে ছিল)। তবে মনে রাখবেন, একটি কাঁচা LED ডিসপ্লে ব্যবহার করার জন্য প্রতিটি সেগমেন্ট দ্বারা টানা বর্তমান সীমাবদ্ধ করার জন্য 7 টি প্রতিরোধকের প্রয়োজন। আমার কাছে একটি TM1637 ক্লক ডিসপ্লে মডিউল পাওয়া গেছে, তাই এটি ব্যবহার করার সিদ্ধান্ত নিয়েছি।

পরিপূরক বিট এবং ববগুলির মধ্যে একটি 9v ব্যাটারি ক্লিপ (এবং ব্যাটারি, স্পষ্টতই), একটি 'পুশ-টু-মেক' ক্ষণস্থায়ী পুশ বোতাম সুইচ, একটি প্রজেক্ট বক্স, হেডার পিন, সংযোগকারী তারগুলি এবং 2 "x4" কাঠের দৈর্ঘ্য যা অতিক্রম করে ট্যাঙ্ক খোলার ব্যাস।

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

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

ওহ, এবং যাইহোক, কাঠের দৈর্ঘ্য কেবল কিছু স্ক্র্যাপ অফকাট থেকে এসেছে যা আমি আমার গ্যারেজের কোণে রাখি (সেই সুন্দর মাকড়সার আরও একটি বাড়ি হিসাবে)।

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

ধাপ 4: প্রোটোটাইপ (এবং কোড) পরীক্ষা করা

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

এই মুহুর্তে, আমি কিভাবে HC-SR04 এর সাথে সংযোগ স্থাপন এবং ব্যবহার করতে হয় তার মৌলিক তথ্যের জন্য কাস্টিং করছিলাম, এবং jsvester এর নির্দেশযোগ্য "সহজ Arduino এবং HC-SR04 উদাহরণ" স্বীকার করতে হবে। তার উদাহরণ এবং অভিজ্ঞতা আমার জন্য কোডিং শুরু করার জন্য একটি দুর্দান্ত সূচনা ছিল।

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

আমি TM1637 ক্লক ডিসপ্লে মডিউলের জন্য একটি লাইব্রেরি খুঁজে পেয়েছি, যা সংখ্যা প্রদর্শনকে অনেক সহজ করে তুলেছে। আমার আসল কোডে (4-অঙ্কের 7 সেগমেন্ট ডিসপ্লের জন্য), আমি সংখ্যাটিকে পৃথক অঙ্কে বিভক্ত করতে হচ্ছিলাম, তারপর ডিসপ্লেতে প্রতিটি পৃথক ডিজিট তৈরি করে কোন সেগমেন্টগুলিকে আলোকিত করতে হবে, এবং তারপর সংখ্যার প্রতিটি ডিজিটের মাধ্যমে সাইক্লিং করতে হবে, এবং যথাযথ ডিসপ্লে ডিজিটে সেই সংখ্যাটি তৈরি করা। এই পদ্ধতিকে মাল্টিপ্লেক্সিং বলা হয়, এবং কার্যকরীভাবে একটি সময়ে মাত্র একটি অংক প্রদর্শন করে, কিন্তু তাদের মাধ্যমে এক অংক থেকে পরের দিকে এত দ্রুত চক্র, যে মানুষের চোখ লক্ষ্য করে না, এবং আপনাকে বিশ্বাস করতে বোকা বানায় যে সমস্ত সংখ্যা চালু আছে একই সময়ে। HC-SR04 লাইব্রেরি যেমন পরিমাপ কার্যক্রম সহজ করে, এই ডিসপ্লে লাইব্রেরি সমস্ত মাল্টিপ্লেক্সিং এবং ডিজিট হ্যান্ডলিংয়ের যত্ন নেয়। উপরের লিঙ্কযুক্ত Arduino রেফারেন্স পৃষ্ঠাগুলি, কিছু উদাহরণ দিন এবং অবশ্যই, প্রতিটি লাইব্রেরি নমুনা কোড সহ আসে যা একটি দুর্দান্ত সাহায্য হতে পারে।

ছবি
ছবি
ছবি
ছবি

n

সুতরাং, উপরের ছবিগুলি আমার পরীক্ষার রিগ দেখায় - আমি সরলতার জন্য আমার Arduino Uno তে এটি পরীক্ষা করছি, কারণ এটি ইতিমধ্যে প্রোটোটাইপিংয়ের জন্য অস্থায়ী পুনরায় ব্যবহারযোগ্য সংযোগগুলির জন্য সেটআপ করা আছে। ইউনিটটি এখানে 'ক্যালিব্রেশন' মোডে কাজ করছে (লক্ষ্য করুন যে ডিজিটাল পিন 10 - সাদা তার - মাটির সাথে সংযুক্ত) এবং টেপ পরিমাপ দ্বারা দেখানো হিসাবে আমার সামনে এলোমেলোভাবে রাখা বাক্সে 39cm সঠিকভাবে পড়া। এই মোডে, আমি পরিমাপের আগে ছোট 'সি' প্রদর্শন করি, এটি নির্দেশ করার জন্য যে এটি সাধারণ পরিমাপ নয়।

Vcc (5v) এবং Ground এর পাশাপাশি, HC -SR04 এর জন্য আরও 2 টি সংযোগ প্রয়োজন - ট্রিগার (হলুদ থেকে পিন 6) এবং ইকো (সবুজ থেকে পিন 7)। ডিসপ্লের জন্য Vcc (5v) এবং গ্রাউন্ড এবং আরও 2 টি সংযোগ প্রয়োজন - ঘড়ি (নীল থেকে পিন 8) এবং DIO (বেগুনি থেকে পিন 9)। ইতিমধ্যে উল্লিখিত হিসাবে, অপারেটিং মোড পিন 10 (সাদা) উপর একটি উচ্চ বা নিম্ন দ্বারা নিয়ন্ত্রিত হয়। সংযোগগুলি Arduino Pro Mini তে একই পিন ব্যবহার করবে, কিন্তু স্থায়ীভাবে বিক্রি হবে। অপারেটিং মোডটি যথাক্রমে Vcc, পিন 10 এবং গ্রাউন্ডের সাথে সংযুক্ত তিনটি হেডার পিনের মধ্যে একটি জাম্পার ব্যবহার করে নির্বাচনযোগ্য হবে।

HC -SR04 এর অফিসিয়াল স্পেক্স 4 মিটারের সর্বোচ্চ পরিকল্পিত অপারেটিং দূরত্ব পর্যন্ত মাত্র 3 মিলিমিটারের সর্বোচ্চ ত্রুটির মত কিছু দাবি করে, তাই আমার ইউনিটটি অবশ্যই 2 মিটার পর্যন্ত সেই ডিগ্রি পর্যন্ত সঠিক ছিল তা জানতে আমার বিস্ময় কল্পনা করুন - যা আমার প্রয়োজনের চেয়ে বেশি। একটি দ্রুত এবং নোংরা পরীক্ষা সেটআপের জন্য সীমিত জায়গার কারণে, সেই দূরত্বের বাইরে আমার পরীক্ষার ফলাফলগুলি আমার পরীক্ষার লক্ষ্য ব্যতীত অন্যান্য পৃষ্ঠ থেকে প্রতিফলন দ্বারা দূষিত হচ্ছিল, কারণ ট্রান্সমিটার থেকে বিম ছড়িয়ে পড়ে এবং একটি বিস্তৃত এলাকায় নিয়ে যায়। কিন্তু যতক্ষণ পর্যন্ত এটি 1.5 মিটারের জন্য ভাল - এটি আমাকে সুন্দরভাবে করবে, আপনাকে অনেক ধন্যবাদ:-)

ধাপ 5: রেইন ওয়াটার গেজ ইনো স্কেচ

সম্পূর্ণ কোড সংযুক্ত করা হয়েছে, তবে আমি কয়েকটি ধাপ ব্যাখ্যা করার জন্য নীচে কয়েকটি নির্যাস অন্তর্ভুক্ত করব।

প্রথমত, সেটআপ …

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত #অন্তর্ভুক্ত #HC-SR04 এর জন্য পিন #ডিফাইন পিনট্রিগ 6 #পিন ইকো 7 নিউপিং সোনার (পিনট্রিগ, পিন ইকো, 155); // 400cms HC-SR04 এর জন্য সর্বোচ্চ, 155cms ট্যাঙ্কের জন্য সর্বাধিক // LED মডিউল সংযোগ পিন (ডিজিটাল পিন) #ডিফাইন CLK 8 #ডিফাইন DIO 9 TM1637 ডিসপ্লে ডিসপ্লে (CLK, DIO); // অন্যান্য পিন #সংজ্ঞায়িত opMode 10

TM1637 এবং নিউপিং লাইব্রেরির পাশাপাশি, আমি একটি গণিত লাইব্রেরিও অন্তর্ভুক্ত করেছি, যা আমাকে 'রাউন্ডিং' ফাংশনে অ্যাক্সেস দেয়। আমি উদাহরণস্বরূপ নিকটতম 5% এর শতাংশ প্রদর্শন করার অনুমতি দেওয়ার জন্য কিছু গণিতে এটি ব্যবহার করি।

পরবর্তী দুটি ডিভাইসের জন্য পিন সংজ্ঞায়িত করা হয়, এবং ডিভাইসগুলি শুরু হয়।

অবশেষে, আমি অপারেশন মোডের জন্য পিন 10 সংজ্ঞায়িত করি।

// সমস্ত অঙ্কের জন্য সমস্ত বিভাগ বন্ধ করুন

uint8_t বাইট = {0x00, 0x00, 0x00, 0x00}; display.setSegments (বাইট);

কোডের এই বিভাগটি ডিসপ্লে মডিউল নিয়ন্ত্রণ করার একটি উপায় প্রদর্শন করে, যার ফলে প্রতিটি অঙ্কে প্রতিটি সেগমেন্টের পৃথক নিয়ন্ত্রণের অনুমতি দেওয়া হয়। আমি বাইট নামক অ্যারেতে 4 টি উপাদান সেট করেছি, সবই শূন্য। এর মানে হল যে প্রতিটি বাইটের প্রতিটি বিট শূন্য। 8 টি বিট 7 টি সেগমেন্ট এবং দশমিক বিন্দু (বা একটি ঘড়ির টাইপ ডিসপ্লেতে কোলন) নিয়ন্ত্রণ করতে ব্যবহৃত হয়। সুতরাং যদি সমস্ত বিট শূন্য হয়, তবে কোনও বিভাগই জ্বলবে না। SetSegments অপারেশন ডিসপ্লেতে অ্যারের বিষয়বস্তু পাঠায় এবং (এই ক্ষেত্রে) কিছুই দেখায় না। সব সেগমেন্ট বন্ধ।

ছবি
ছবি

একটি বাইটের সবচেয়ে উল্লেখযোগ্য বিট DP কে নিয়ন্ত্রণ করে, এবং তারপর অবশিষ্ট 7 বিটগুলি G থেকে A পর্যন্ত 7 টি অংশকে বিপরীত ক্রমে নিয়ন্ত্রণ করে। সুতরাং উদাহরণস্বরূপ 1 নম্বর প্রদর্শন করতে, সেগমেন্ট B এবং C প্রয়োজন, তাই বাইনারি উপস্থাপনা হবে '0b00000110'। (উপরের ছবির জন্য CircuitsToday.com কে ধন্যবাদ)

// 10 টি রিডিং নিন এবং মধ্যবর্তী সময়কাল ব্যবহার করুন।

int সময়কাল = sonar.ping_median (10); // সময়কাল মাইক্রোসেকেন্ডে থাকে যদি (সময় == 0) // পরিমাপ ত্রুটি - অনির্দিষ্ট বা কোন প্রতিধ্বনি {uint8_t বাইট = {0x00, 0b01111001, 0b01010000, 0b01010000}; // "Err" display.setSegments (বাইট) বানানে বানান; }

এখানে, আমি HC-SR04 কে বলছি 10 টি রিডিং নিতে, এবং আমাকে গড় ফলাফল দিতে। যদি কোন মান ফেরত না হয়, তাহলে ইউনিট সীমার বাইরে। আমি 4 ডিজিটের নির্দিষ্ট বিভাগগুলিকে নিয়ন্ত্রণ করতে, অক্ষর (ফাঁকা), E, r, এবং r বানানোর জন্য উপরের মতো একই কৌশল ব্যবহার করি। বাইনারি স্বরলিপি ব্যবহার করে পৃথক বিটগুলিকে সেগমেন্টগুলির সাথে সম্পর্কিত করা কিছুটা সহজ করে তোলে।

ধাপ 6: আরডুইনো প্রো মিনিতে কোড লোড হচ্ছে (ইউএসবি ছাড়া)

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

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

ভাগ্যক্রমে, আমার আরডুইনো ইউনো থাকার অর্থ হল যে আমি দ্বিতীয় পদ্ধতিটি ব্যবহার করতে পারি, যা আমি নীচে আপনার জন্য রূপরেখা করব। এটিকে 'Arduino as ISP' ব্যবহার করে বলা হয়। সংক্ষেপে, আপনি আপনার 'গো-মধ্যবর্তী' আরডুইনোতে একটি বিশেষ স্কেচ লোড করেন, যা এটিকে একটি সিরিয়াল ইন্টারফেসে পরিণত করে। তারপর আপনার প্রকৃত স্কেচ লোড করুন, কিন্তু স্বাভাবিক আপলোড বিকল্পের পরিবর্তে, আপনি আইডিই মেনু থেকে একটি বিকল্প ব্যবহার করেন যা 'আইএসপি হিসাবে আরডুইনো ব্যবহার করে' আপলোড করে। Arduino 'go-between' তারপর IDE থেকে আপনার প্রকৃত স্কেচ নেয়, এবং এটিকে তার নিজস্ব মেমরিতে লোড করার পরিবর্তে প্রো মিনি এর ISP পিনগুলিতে প্রেরণ করে। এটি কীভাবে কাজ করে সেদিকে মাথা পেতে একবার এটি কঠিন নয়, তবে এটি জটিলতার একটি অতিরিক্ত স্তর যা আপনি এড়াতে চাইতে পারেন। যদি এমন হয়, অথবা আপনার কাছে আরডুইনো না থাকলে আপনি 'গো-মধ্য' হিসাবে ব্যবহার করতে পারেন, তাহলে আপনি একটি আরডুইনো ন্যানো, অথবা অন্যান্য ছোট ফর্ম ফ্যাক্টর মডেলগুলির মধ্যে একটি কিনতে চাইতে পারেন, যার মধ্যে রয়েছে ইউএসবি ইন্টারফেস এবং প্রোগ্রামিংকে সহজতর করে তোলে।

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

  • আরডুইনো রেফারেন্স ম্যানুয়াল - আইএসপি হিসাবে আরডুইনো ব্যবহার করা
  • জুলিয়ান ইলেটের ইউটিউব ভিডিও - একটি আইএসপি হিসাবে আরডুইনো ব্যবহার করা

যেহেতু প্রো মিনিতে 6 টি আইএসপি পিন সুবিধাজনকভাবে একত্রিত হয় না, আপনাকে 4 টি প্রোগ্রামিং পিনের সাথে সম্পর্কিত কোন ডিজিটাল পিনগুলি ডিকোড করতে হবে (অন্য দুটি সংযোগ কেবল Vcc এবং Gnd - তাই বেশ সহজবোধ্য)। ভাগ্যক্রমে আপনার জন্য, আমি ইতিমধ্যে এর মধ্য দিয়ে গিয়েছি - এবং আপনার সাথে জ্ঞান ভাগ করতে ইচ্ছুক - আমি কত উদার ব্যক্তি !!

Arduino Uno, এবং Arduino পরিবারের আরো অনেকের কাছে 6 টি পিন 3x2 ব্লকে এইভাবে সাজানো আছে (www.arduino.cc থেকে ছবি)

ছবি
ছবি

দুর্ভাগ্যবশত, প্রো মিনি না। আপনি নীচে দেখতে পাচ্ছেন, এগুলি আসলে সনাক্ত করা বেশ সহজ এবং এখনও 3 টি পিনের 2 টি ব্লকে সাজানো রয়েছে। MOSI, MISO, এবং SCK ডিজিটাল পিনের মতই যথাক্রমে Pro Mini এবং Arduino Uno, এবং ISP প্রোগ্রামিং এর জন্য, 11 থেকে 11, 12 থেকে 12, এবং 13 থেকে 13. ডিজিটাল পিনগুলির মতো। মিনি রিসেট পিনটি ইউনো পিন 10 এর সাথে সংযুক্ত হওয়া উচিত এবং প্রো মিনি'র Vcc (5v)/গ্রাউন্ডটি Arduino +5v/Ground এর সাথে সংযুক্ত হওয়া উচিত। (Www.arduino.cc থেকে ছবি)

ছবি
ছবি

ধাপ 7: সমাবেশ

সমাবেশ
সমাবেশ

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

আমি অতিস্বনক সেন্সরগুলির মাধ্যমে খোঁচানোর জন্য 2 টি গর্ত ড্রিল করেছি। আমি ছিদ্রগুলিকে একটু ছোট করে ড্রিল করেছি এবং তারপর ধীরে ধীরে একটি ছোট রোটারি গ্রাইন্ডার ব্যবহার করে সেগুলো বাড়িয়ে দিলাম, যাতে আমি সেগুলোকে একটি চমৎকার 'পুশ ফিট' হতে পারি। দুর্ভাগ্যবশত, তারা বাক্সের ভিতর থেকে গ্রাইন্ডার ব্যবহার করতে সক্ষম হওয়ার জন্য খুব কাছাকাছি ছিল, এবং এটি বাইরে থেকে করতে হয়েছিল, যার ফলে অনেকগুলি স্ক্র্যাচ এবং স্কেটের চিহ্ন ছিল যেখানে গ্রাইন্ডারটি স্লিপ হয়েছিল - ওহ ঠিক আছে, এটি নীচে রয়েছে যাই হোক - কে কেয়ার করে..?

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

অবশেষে, বাক্সে মোটামুটি সব উপাদান রেখে, আমি measuredাকনাতে গর্তটি কোথায় রাখব তা পরিমাপ করলাম, যাতে পুশ বোতামের শরীর চূড়ান্ত উপলভ্য স্থানে পড়ে। শুধু !!!

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

ছবি
ছবি

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

ছবি
ছবি

ধাপ 8: সমাপ্ত নিবন্ধ

কয়েকটি পোস্ট -অ্যাসেম্বলি পরীক্ষার পরে, এবং কাঠের খণ্ডের গভীরতার জন্য আমার কোডের সংশোধন করার জন্য আমি ডিভাইসটিকে স্ক্রু করেছিলাম (যা আমি আমার গণনায় পুরোপুরি উপেক্ষা করেছিলাম - d'oh !!), এটি সব শেষ । অবশেষে!

একত্রিত পরীক্ষা

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

ছবি
ছবি

মনে হচ্ছে আমার বেঞ্চের শীর্ষ থেকে মেঝে পর্যন্ত 76cms (ভাল, 72cms প্লাস 4cm গভীরতা কাঠের অংশ)।

ছবি
ছবি

ইউনিটের নীচের অংশে, ট্রান্সমিটার এবং রিসিভারকে দেখানো হচ্ছে কাঠের টুকরোকে ওভারহ্যাং করা - আমার সত্যিই এটাকে কাঠের একটি অংশ বলা বন্ধ করা উচিত - এটিকে এখন থেকে গেজ স্টেবিলাইজেশন এবং প্রিসিশন প্লেসমেন্ট প্ল্যাটফর্ম বলা হবে! সৌভাগ্যক্রমে, এটি সম্ভবত শেষবার আমি এটি উল্লেখ করব;-)

ওহ - আপনি এই সমস্ত বাজে স্ক্র্যাচ এবং স্কেটের চিহ্ন দেখতে পারেন …

ছবি
ছবি

… এবং এখানে সমাপ্ত আইটেম, স্বাভাবিক অপারেটিং মোডে রাখা, আসলে আমার ট্যাঙ্কের ক্ষমতা নিকটতম 5%পরিমাপ করা। এটি একটি (খুব) বৃষ্টি রবিবার বিকেলে আমি এই প্রকল্পটি শেষ করতে দেখেছি, অতএব ইউনিটে বৃষ্টির ফোঁটা, এবং খুব আনন্দদায়ক 90% পড়া।

ছবি
ছবি

আমি আশা করি যে আপনি এই নির্দেশনাটি পড়ে উপভোগ করেছেন, এবং আপনি Arduino প্রোগ্রামিং, পদার্থবিজ্ঞান এবং সোনার/অতিস্বনক প্রতিফলন ব্যবহার সম্পর্কে কিছুটা শিখেছেন, আপনার প্রকল্প পরিকল্পনায় অনুমানমূলক ব্যবহার করার সমস্যাগুলি, এবং যে আপনি আপনার অনুপ্রেরণা পেয়েছেন নিজের বৃষ্টির জলের ট্যাঙ্ক গেজ - এবং তারপরে এটি ব্যবহার করার জন্য একটি বৃষ্টির পানির ট্যাঙ্ক ইনস্টল করার সময়, পরিবেশকে একটু সাহায্য করতে এবং আপনার পানির বিলে সাশ্রয় করতে।

অনুগ্রহ করে পড়ুন - পরের দিন কি ঘটেছিল তার জন্য …!

ধাপ 9: পোস্টস্ক্রিপ্ট - একশ (এবং পাঁচ) শতাংশ?

সুতরাং, রবিবার বৃষ্টির পরে সোমবার, ট্যাঙ্কটি যথাসম্ভব পূর্ণ ছিল। যেহেতু এটি খুব কম সময়েই আমি এটিকে পুরোপুরি পূর্ণ দেখেছি, আমি ভেবেছিলাম এটি গেজের মানদণ্ডের আদর্শ সময় হবে, কিন্তু অনুমান করুন - এটি 105%হিসাবে নিবন্ধিত হয়েছে, তাই স্পষ্টতই কিছু ভুল ছিল।

আমি আমার ডিপস্টিক বের করে দেখলাম যে পানির সর্বোচ্চ গভীরতা হিসেবে 140cms এর আমার মূল অনুমান, এবং 16cms হেডরুম (ট্যাঙ্কের বাইরে থেকে তৈরি ভিজ্যুয়াল গেস্টমিটের উপর ভিত্তি করে), দুটোই প্রকৃত পরিমাপ থেকে একটু দূরে ছিল। আমার 100% বেঞ্চমার্কের জন্য আসল ডেটা দিয়ে সজ্জিত, আমি আমার কোডটি টুইক করতে এবং আরডুইনো পুনরায় লোড করতে সক্ষম হয়েছিলাম।

সর্বাধিক পানির গভীরতা 147 সেন্টিমিটার হয়ে যায়, পরিমাপ বিন্দু 160 সেন্টিমিটারে বসে 13 সেন্টিমিটার হেডরুম দেয় (ট্যাঙ্কের মধ্যে হেডরুমের যোগফল, ট্যাঙ্কের গলার উচ্চতা, এবং খণ্ডের গভীরতা… হোয়া, না, কি?

সে অনুযায়ী maxDepth এবং headroom ভেরিয়েবল সংশোধন করার পাশাপাশি সোনার বস্তুর সর্বাধিক পরিসর 160cms রিসেট করার পরে, একটি দ্রুত পুনestপরীক্ষা 100% দেখিয়েছে যা 95% এ নেমে আসার সাথে সাথে আমি গেজটি একটু উপরে তুললাম (একটি ছোট পরিমাণ অনুকরণ করার জন্য জল ব্যবহার করা হয়েছে)।

কাজ শেষ!

PS - এটি একটি নির্দেশযোগ্য আমার প্রথম প্রচেষ্টা। আপনি যদি আমার স্টাইল, হাস্যরসের অনুভূতি, ভুল স্বীকার করার জন্য সততা পছন্দ করেন (হেই - এমনকি আমি নিখুঁত নই …)

ধাপ 10: পরে চিন্তা

ব্যবহারযোগ্য ক্ষমতা

তাই এই নির্দেশনাটি প্রকাশ করার পর এখন কয়েক সপ্তাহ হয়ে গেছে, এবং আমি প্রতিক্রিয়াতে অনেক মন্তব্য করেছি, যার মধ্যে কিছু কিছু বিকল্প পদ্ধতির পরামর্শ দিচ্ছে - উভয় ইলেকট্রনিক এবং ম্যানুয়াল। কিন্তু এটি আমাকে ভাবতে বাধ্য করেছিল, এবং এমন কিছু আছে যা সম্ভবত আমি শুরুতে উল্লেখ করা উচিত ছিল।

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

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

প্রস্তাবিত: