সুচিপত্র:

পিসি হার্ডওয়্যার মনিটর: 6 টি ধাপ (ছবি সহ)
পিসি হার্ডওয়্যার মনিটর: 6 টি ধাপ (ছবি সহ)

ভিডিও: পিসি হার্ডওয়্যার মনিটর: 6 টি ধাপ (ছবি সহ)

ভিডিও: পিসি হার্ডওয়্যার মনিটর: 6 টি ধাপ (ছবি সহ)
ভিডিও: Parts of Computer || কম্পিউটারের বিভিন্ন অংশ || Basic Computer Online Class in Bengali 2024, জুলাই
Anonim
পিসি হার্ডওয়্যার মনিটর
পিসি হার্ডওয়্যার মনিটর
পিসি হার্ডওয়্যার মনিটর
পিসি হার্ডওয়্যার মনিটর
পিসি হার্ডওয়্যার মনিটর
পিসি হার্ডওয়্যার মনিটর

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

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

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

সেকেন্ড ডিসক্লেইমার: আমার কাজ যেমন শেয়ার করা হয়েছে। আমার কোড বা নির্দেশাবলীর যে কোনো ব্যবহার থেকে প্রাপ্ত কোনো ক্ষতির জন্য আমি দায়বদ্ধ নই।

সরবরাহ

  • Arduino Nano (অথবা UNO যদি আপনি চান)
  • টিএফটি ডিসপ্লে। আমার ক্ষেত্রে এটি একটি ILI9486 / ILI9488L সামঞ্জস্যপূর্ণ 3.5 "ডিসপ্লে।
  • তাপমাত্রা সেনসো। মিউ ক্ষেত্রে একটি এনালগ TMP36 টেম্প সেন্সর।
  • তারের, তারের, ডুপন্ট সংযোগকারী (যে পরে আরো)
  • (alচ্ছিক) পরীক্ষার জন্য ব্রেডবোর্ড
  • (butচ্ছিক কিন্তু প্রস্তাবিত) একটি ছোট পারফোর্ড

ধাপ 1: সম্ভাব্যতা অধ্যয়ন (বিভিন্ন ধরণের)

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

  1. কোন অনুসন্ধানের পৃষ্ঠা 3 বা 4 এর পরে যেতে বিরক্ত করবেন না, এটি প্রায় সবসময় সময়ের অপচয়। পরিবর্তে
  2. অনুসন্ধানের শর্তাবলী পরিবর্তন করুন, শুধু অন্য দৃষ্টিকোণ থেকে প্রশ্নটি পুনরাবৃত্তি করুন (যেমন: "arduino তাপমাত্রা সেন্সর" -> "arduino দিয়ে তাপমাত্রা পড়ুন")।

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

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

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

আমি চেয়েছিলাম যে একটি বড় ডিসপ্লে কয়েক মিটার দূরে থেকে স্পষ্টভাবে দেখা যায় এবং এটি আমার নির্মাণের চেহারাকে মানানসই করে, এটি কোন নোকিয়া এবং এলসিডি চরিত্র প্রদর্শনকে বাদ দেয়। ওএলইডিও প্রশ্নবিহীন, কারণ তারা ছোট। তাই আমি একটি TFT রঙের ডিসপ্লে বেছে নিয়েছি। টাচ স্ক্রিনের প্রয়োজন নেই, কারণ এটি পিসির ভিতরে থাকবে। আমি একটি "3.5" খুঁজে পেয়েছি, যা ইতিমধ্যেই Arduino এর জন্য ডিজাইন করা হয়েছে, Amazon 15 Amazon আমাজনে। যথেষ্ট ভাল।

এখন, হার্ডওয়্যারটি চিহ্নিত করার পরে, আমি সফ্টওয়্যারটিতে মনোনিবেশ করেছি।

প্রায় সব প্রকল্প, Arduino পার্শ্ব, বেশ অনুরূপ। সার্ভার অ্যাপ থেকে ডেটা সংগ্রহ করার জন্য আমাকে শুধু ডিসপ্লে এবং কমিউনিকেশন প্রোটোকলের জন্য কোড অ্যাডাপ্ট করতে হবে। কম্পিউটারের দিক থেকে, বেশিরভাগ প্রকল্প C, C ++, C#, python- এর উপর ভিত্তি করে তৈরি করা হয়েছিল এবং বেশিরভাগ প্রকল্প শুধুমাত্র CLI ইন্টারফেস বা উইন্ডোজ সার্ভিস-এর মতো সার্ভার দিয়েছিল। আমি পরিবর্তে একটি GUI চেয়েছিলাম। আমি কখনোই উইন্ডোজ-এ কোন সি-এর মত ভাষা ব্যবহার করিনি, GUI বিল্ডিংকে একা ছেড়ে দিন। কিন্তু আমি 15 বছর আগে কিছু ভিজ্যুয়াল বেসিক শিখেছি, তাই আমি এটি চেষ্টা করেছিলাম এবং মাইক্রোসফ্ট থেকে বিনামূল্যে ভিজ্যুয়াল স্টুডিও সংস্করণ ডাউনলোড করেছি।

অনেকগুলি অনুরূপ প্রকল্প অধ্যয়ন করার পরে, আমি FPS এর জন্য সমস্ত হার্ডওয়্যার তথ্য এবং RivaTuner পেতে OpenHardwareMonitor ব্যবহার করে স্থির হয়েছি, কারণ এগুলি বিনামূল্যে এবং যথেষ্ট নথিভুক্ত।

ধাপ 2: হার্ডওয়্যার টেস্টিং

হার্ডওয়্যার টেস্টিং
হার্ডওয়্যার টেস্টিং
হার্ডওয়্যার টেস্টিং
হার্ডওয়্যার টেস্টিং
হার্ডওয়্যার টেস্টিং
হার্ডওয়্যার টেস্টিং

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

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

লাইনের নিচে কিছু সময়ে, আমার ডিসপ্লেতে একটি ফাঁকা জায়গা ছিল কিন্তু পিসি সেন্সরগুলির কোন ডেটা সত্যিই দরকারী ছিল না, তাই আমি পরিবেষ্টিত তাপমাত্রার জন্য কেসের ভিতরে একটি তাপমাত্রা সেন্সর রাখার সিদ্ধান্ত নিয়েছি। ডিসপ্লেটি প্রায় সব Arduino পিন খায়, সৌভাগ্যবশত এনালগ পিন A5 অব্যবহৃত, তাই আমি একটি TMP36 বেঁধেছি। আমি এমনকি একটি DHT22 পরীক্ষা করেছি কিন্তু এটি এই অ্যাপ্লিকেশনটির জন্য অতিরিক্ত উপায়।

TMP36 এর জন্য প্রচুর উদাহরণ রয়েছে, আমি কেবল একটি ফাংশনে এর মধ্যে একটি অনুলিপি করেছি। TMP35 এর 3 টি পিন, ভিন 5V, GND মাটিতে এবং আউট A5 পিনে যায়। আমি ভিন এবং জিএনডি এর মধ্যে একটি 0.1uF সিরামিক ক্যাপাসিটর স্থাপন করেছি। তারা বলে যে এটি প্রয়োজন। সম্ভবত এই ক্ষেত্রে এটি অকেজো, কিন্তু … আমি এমনকি ভাল তাপমাত্রা পড়ার জন্য 3.3v পিনে Arduino এনালগ রেফারেন্স ভোল্টেজ সেট করেছি। এই ক্ষেত্রে এখনও অকেজো, কিন্তু …

ধাপ 3: Arduino কোড

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

আপনার অবশ্যই MCUFRIEND_kbv এবং Adafruit GFX লাইব্রেরির প্রয়োজন হবে। উভয় Arduino IDE থেকে সহজেই ইনস্টলযোগ্য।

প্রোগ্রামটি এই বিভাগে বিভক্ত করা যেতে পারে:

  1. সমস্ত গ্লোবাল ভেরিয়েবল এবং অন্যান্য প্রয়োজনীয় জিনিসগুলি সংজ্ঞায়িত এবং ঘোষণা করুন
  2. ডিসপ্লে আরম্ভ করুন, বাহ্যিক রেফারেন্স সেট করুন এবং UI আঁকুন (সেটআপ () ফাংশনে এই সমস্ত রয়েছে, কারণ এটি শুধুমাত্র একবার চালানো উচিত)
  3. সিরিয়াল সংযোগ থেকে ডেটা পড়ুন এবং অ্যারে (লুপ () ফাংশন) এ বরাদ্দ করুন
  4. বাহ্যিক টেম্প সেন্সর ডেটা পড়ুন (readExtTemp () ফাংশন)
  5. ডিসপ্লেতে প্রিন্ট ডেটা (printData () ফাংশন)
  6. লুপ ফিরে

বিভাগ 1: ঘোষণা এবং সংজ্ঞা

কোডের প্রাথমিক বিভাগে, আমি প্রচুর পয়েন্টার এবং অ্যারে ব্যবহার করেছি, তাই আমি চক্রের জন্য লিখতে সংক্ষিপ্ত কোডের অনেকগুলি পুনরাবৃত্তিমূলক লাইন চেপে ধরতে সক্ষম হয়েছি। হ্যাঁ, আমি অলস। আপনি দেখতে পাচ্ছেন আমি একটি পয়েন্টার অ্যারে ঘোষণা করেছি এবং pics.h ফাইল থেকে সমস্ত ছবি দিয়ে এটি তৈরি করেছি। এটি সমস্ত আইকন আঁকার জন্য FOR চক্রের কৌশলটি করা সম্ভব করেছে।

বিভাগ 2: সেটআপ (), বেশিরভাগই UI অঙ্কন

আমি ডিফল্ট ফন্টের সাথে স্থির হয়েছি কারণ এটির স্বচ্ছ পটভূমি নেই, তাই এটি মুছে ফেলার প্রয়োজন ছাড়াই একটি পুরানো লেখাটির উপর একটি নতুন লাইন লেখার অনুমতি দেয়। অন্য একটি ফন্ট ব্যবহার করার অর্থ নতুন লাইন লেখার আগে পুরনো পাঠ্যের উপরে একটি কালো বর্গ আঁকতে হবে, যা একটি অপ্রীতিকর ঝলকানি প্রভাবের দিকে পরিচালিত করবে।

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

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

UI- কে গভীরতার প্রতিফলন দেওয়ার দুর্বল প্রচেষ্টায়, আমি দুটি রঙের (লাইন, আয়তক্ষেত্র, ছবি) বিভিন্ন রং এবং একটি ছোট অফসেট দিয়ে আঁকলাম। দুlyখের বিষয় যে ফলাফলটি আমি আশা করেছিলাম তা নয়, তবে এটি কৌশলটি করবে।

এই ফাংশনের শেষ লাইনগুলি টিএফটি -তে স্থানধারকদের মুদ্রণের জন্য, যতক্ষণ না আরডুইনো ডেটা গ্রহণ করবে।

বিভাগ 3: প্রধান লুপ (), তথ্য আনা এবং বিন্যাস

এখানে যাদু ঘটে: সিরিয়াল এর মাধ্যমে ডেটা প্রাপ্ত হয়, সঠিক ভেরিয়েবলের জন্য নির্ধারিত হয় এবং তারপর মুদ্রিত হয়। সর্বনিম্ন সংখ্যক লাইনে এই সমস্ত অর্জন করতে, আমি একটি সুইচ কেস কমান্ড এবং একটি চক্রের জন্য ব্যবহার করেছি।

আমি যে কমিউনিকেশন প্রটোকলটি নিয়ে এসেছি তা দুটি ভাগে বিভক্ত: একটি হ্যান্ডশেকের পরে একটি বাস্তবায়ন এবং প্রকৃত ডেটা অংশ।

পিসি প্রোগ্রাম শুরু হলে অটোকানেকশন ফিচারটি বাস্তবায়নের জন্য হ্যান্ডশেক প্রয়োজন। এটা এইভাবেই চলে:

  • পিসি হ্যান্ডশেক স্ট্রিং পাঠায় (এই ক্ষেত্রে শুধু "*****;")
  • Arduino একটি প্রতিক্রিয়া পাঠায়

সহজ কিছু.

ডেটা অংশটি এরকম দেখাচ্ছে: "i: xxx, yyy, zzz, aaa,;" অর্থ হচ্ছে:

"আমি" হল সূচক, আমি এটিকে কোডে কম্পোনেন্ট সিলেক্টর বলেছি। "আমি" মান হল:

  • আমি = 0 - নাম। নিচের মানগুলো হল প্রদর্শনীর ফির সারিতে দেখানো নাম। এটি শুধুমাত্র একবার ডিসপ্লেতে প্রেরণ এবং মুদ্রিত হবে, আজকের মতো CPU এবং GPU হটস্ব্যাপ করা বেশ কঠিন…
  • i = 1 - 1 ম কলাম ডেটা - নীচের মানগুলি প্রদর্শনের বাম অর্ধেক উপরে থেকে নীচে দেখানো হয়েছে। আমার ক্ষেত্রে: সিপিইউ টেম্প, সিপিইউ লোড, র‍্যাম ব্যবহার, মাদারবোর্ড টেম্প।
  • i = 2 - 2nd COLUMN DATA - উপরের মত, কিন্তু ডিসপ্লের ডান অর্ধেকের জন্য
  • i = 3 - প্রিন্ট কমান্ড। এই ক্ষেত্রে কাঁচা সিরিয়াল স্ট্রিং হবে "3:;" যেহেতু অন্যান্য তথ্য প্রয়োজন হয় না।

"xxx, yyy, zzz, aaa" হল আসল মান। এগুলি arduino দ্বারা স্ট্রিং হিসাবে পড়া হয় এবং পুরো ফর্ম্যাটিংটি পিসি প্রোগ্রাম দ্বারা তৈরি করা হয়। I = 0 এর জন্য এই মানগুলি হার্ডওয়্যারের নামের জন্য 14 টি অক্ষর। I = 1 বা 2 এর জন্য এগুলি মাত্র তিনটি অক্ষর হবে, প্রতি সেকেন্ডে তাপমাত্রা এবং ফ্রেম দেখানোর জন্য যথেষ্ট। অবশ্যই ":", "," এবং ";" এই ক্ষেত্রগুলিতে অক্ষর নিষিদ্ধ।

":" হল কম্পোনেন্ট সিলেক্টর এবং মানগুলির মধ্যে বিভাজক, "," হল মান বিভাজক এবং ";" লাইন শেষ

ডেটা পাওয়ার সময়, Arduino এটিকে ";" পর্যন্ত স্ট্রিং হিসাবে সংরক্ষণ করবে। প্রতীকটি পুনরুদ্ধার করা হয়, তারপর এটি ":" চিহ্নের সন্ধান করবে এবং কম্পোনেন্টসেলিকর মান পেতে এটি ব্যবহার করবে। এটি অনুসরণ করার জন্য সঠিক পদ্ধতি নির্বাচন করতে সুইচ কেস ফাংশনের জন্য ব্যবহার করা হবে। এটি অল ডেটা অ্যারেতে সঠিক সূচক নির্বাচন করতেও ব্যবহৃত হয়।

এর পরে Arduino "," প্রতীকটি সন্ধান করবে এবং allData অ্যারেতে মানগুলি রাখতে এগিয়ে যাবে।

যদি কম্পোনেন্ট সিলেক্টর 0 হয়, printName ফ্ল্যাগটি true তে সেট করা হবে। যদি কম্পোনেন্ট সিলেক্টর 3 হয়, readExtTemp () এবং printData () ফাংশন বলা হয়।

বিভাগ 4: readExtTemp () ফাংশন

এখানে বেশি কিছু বলার নেই, এটি পিন A5 থেকে 32 বার পড়ে এবং স্ট্রিং হিসেবে তাপমাত্রার মান বের করে। আমি বিদ্রোহীদের সাথে আছি, তাই আমি সেলসিয়াস ব্যবহার করি। 100 ডিগ্রি সেন্টিগ্রেডের বেশি কিছু ভুল তাই এটি ডিসপ্লেতে "---" হিসাবে দেখানো হবে। 100 ডিগ্রি সেন্টিগ্রেডের কম কিছুতে ডিসপ্লেতে 3 টি অক্ষরের জায়গা কভার করার জন্য পর্যাপ্ত জায়গা থাকতে ফরম্যাট করা হবে। সেন্সরটি সরানো এবং পুনরায় সন্নিবেশ করা সম্ভব এবং কোন অদ্ভুত মান দেখানো হবে না।

বিভাগ 5: printData () ফাংশন

বরাবরের মতো আমি চক্রের জন্য ক্রমানুসারে ডিসপ্লেতে স্টাফ মুদ্রণ করতাম। যদি পতাকা printNames সত্য হয়, এটি নামগুলি মুদ্রণ করবে, পতাকাটি মিথ্যাতে সেট করবে এবং চালিয়ে যাবে।

বিভাগ 6: লুপে ফিরে যান

যথেষ্ট ব্যাখ্যা করা, আমি বলব …

pics.h ফাইল

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

আমি তাদের জুনিয়র আইকন এডিটর দিয়ে ডিজাইন করেছি কারণ এটি বিনামূল্যে এবং পিক্সেল পেইন্টিং ছোট আইকনগুলির জন্য বেশ ভাল। আমাকে SKAARHOJ অনলাইন টুল দিয়ে আইকন ফাইলগুলি-p.webp

ধাপ 4: ভিসুয়াল বেসিক কোড

ভিজ্যুয়াল বেসিক কোড
ভিজ্যুয়াল বেসিক কোড

এখানে VB কোড

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

আমি আগেই বলেছি, আমি C# বা অন্যান্য ভাষায় একটি GUI তৈরি করতে অক্ষম, কিন্তু ভিজ্যুয়াল বেসিকের কিছু অভিজ্ঞতা আমার অনেক আগে ছিল। আমি ভিসুয়াল স্টুডিও কমিউনিটি সংস্করণটি ডাউনলোড করেছি (এটি অবশ্যই বিনামূল্যে) ভিজ্যুয়াল বেসিক পরিবেশের সাথে। ঠিক আছে, আমাকে অনেক জিনিস বের করতে হয়েছিল, কারণ শেষবার যখন আমি ভিবি ব্যবহার করেছি এটি সংস্করণ 2005 বা এরকম … কিন্তু ইন্টারনেট যথারীতি ভাল ইঙ্গিত দিয়ে পূর্ণ।

কিছু ইন্টারফেস স্টাফ বের করার পরে, নতুন সংস্করণটি পুরানো সংস্করণের তুলনায় আসলে সহজ এবং আরও নমনীয়।

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

"চূড়ান্ত" প্রোগ্রামটি একটি পপআপ মেনু সহ একটি ট্রে আইকন যা বিভিন্ন নিয়ন্ত্রণ এবং দুটি তালিকা বাক্স সহ একটি প্রধান ফর্ম দেখায় যা আরডুইনোতে পাঠানো ডেটা দেখায়।

আমি একটি অটোকানেক্ট ফাংশন এবং "বুট এ শুরু" ফাংশন প্রয়োগ করেছি। পরে এটি সম্পর্কে আরো।

ওপেনহার্ডওয়্যার মনিটর লাইব্রেরি এবং রিভাটুনার শেয়ার্ড মেমোরি লাইব্রেরি ব্যবহার করে মূল প্রোগ্রাম হল বিভিন্ন উদাহরণ এবং কোডের স্নিপেটের একটি অভিযোজন।

প্রোগ্রামটি এভাবে চলে:

  • OpenHardwareMonitor এবং RTSSSm লাইব্রেরি থেকে তথ্য পান
  • যোগাযোগ প্রোটোকলের জন্য সমস্ত ডেটা প্রস্তুত এবং বিন্যাস করুন
  • আরডুইনোতে ডেটা পাঠান
  • পাখলান পুনরাবৃত্তি

অবশ্যই হার্ডওয়্যারের নাম শুরুতে পড়া হয় এবং শুধুমাত্র একবার পাঠানো হয়।

FPS কাউন্টার তখনই সক্রিয় হয় যখন একটি সামঞ্জস্যপূর্ণ অ্যাপ ব্যবহার করা হয় (যেমন একটি গেম, একটি 3D মডেলিং প্রোগ্রাম ইত্যাদি), অন্যথায় "---" প্লেসহোল্ডার ডিসপ্লেতে পাঠানো হবে।

আমি লাইব্রেরি থেকে মানগুলি কীভাবে পেতে পারি তা ব্যাখ্যা করতে গভীরভাবে যাব না, কারণ এটি ইন্টারনেটে ভালভাবে নথিভুক্ত এবং কোড থেকে কিছুটা বোধগম্য। শুধু OpenHardwareMonitor (OHMonitor থেকে, কারণ জীবন খুব ছোট) লাইব্রেরিতে দেখানোর জন্য মাদারবোর্ড তাপমাত্রা পাওয়ার সমস্যা সম্পর্কে বলতে চাই। আমার একটি Asus Maximus VIII Gene MoBo আছে, যা মাদারবোর্ডে একটি ফু ** টন তাপমাত্রা সেন্সর দিয়ে সজ্জিত, কিন্তু OHMonitor তাদের নাম দেয় তাপমাত্রা সেন্সর #1, #2 … #n এবং কোথাও তাপমাত্রার অবস্থান নির্দিষ্ট করা হয়নি। তাই আমাকে ভয়ঙ্কর আসুস এআই স্যুট সফ্টওয়্যারটি ইনস্টল করতে হয়েছিল, যেখানে সেন্সরগুলির কমপক্ষে নাম রয়েছে এবং দুটি প্রোগ্রামের মধ্যে বিভিন্ন তাপমাত্রার তুলনা করে। মনে হচ্ছে আমার মাদারবোর্ডের জেনেরিক টেম্প সেন্সরটি OHMonitor এর জন্য #2, তাই আপনি MoBo স্টাফের অধীনে Timer1_tick সাব -এ দেখতে পাচ্ছেন আমাকে সঠিক পঠন পেতে " #2" স্ট্রিংযুক্ত একটি সেন্সর নাম খুঁজতে হয়েছে।

TL; DR: আপনাকে নিজের জন্য সঠিক মাদারবোর্ড তাপমাত্রা সেন্সর দেখাশোনা করতে হবে। বাকিটা বোধহয় ভালো।

যাইহোক এটি কেবলমাত্র সংস্করণ 1, আমি এই গ্যাজেটটি আমার অন্য পিসি ইনস্টল করার পরিকল্পনা করছি, তাই আমি সম্ভবত সেন্সর নির্বাচন করার একটি উপায় বাস্তবায়ন করব এবং এমনকি যেতে যেতে Arduino এ ইন্টারফেসটি পুনরায় ডিজাইন করতে পারি।

অটোকানেক্ট ফাংশন

এই ফাংশনটি আসলে সহজ: যদি পিসি একটি Arduino এর সাথে সংযুক্ত না থাকে, তাহলে প্রতি x মিলিসেকেন্ড (টাইমার 1 এর উপর ভিত্তি করে) এই ফাংশনটিকে বলা হয়। এটি পিসিতে প্রতিটি COM পোর্টের সাথে সংযোগ করার চেষ্টা করে, যদি সফল হয় তবে এটি হ্যান্ডশেক স্ট্রিং "*****;" পাঠায়। যদি উত্তর "R" হয়, তাহলে সঠিক ডিভাইসটি সংযুক্ত হয় এবং স্বাভাবিক পদ্ধতি অনুসরণ করা হয়। অন্যথায়, এটি পরবর্তী COM পোর্ট চেষ্টা করে।

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

স্টার্ট এ বুট ফাংশন

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

সিস্টেম ট্রে আইকন

NotifyIcon এবং ContextMenu অবজেক্টের জন্য ধন্যবাদ, আমি অ্যাপটি নিয়ন্ত্রণ করার একটি সহজ এবং চর্বিযুক্ত উপায় বাস্তবায়ন করতে সক্ষম হয়েছি। শুধু ট্রে আইকনে ডান ক্লিক করুন এবং মেনু প্রদর্শিত হবে। এই oprions আছে:

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

সফটওয়্যার কম্পাইল করা

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

আপনি এখানে OpenHardwareMonitor লাইব্রেরি খুঁজে পেতে পারেন। আপনাকে অবশ্যই সফ্টওয়্যারটি ডাউনলোড করতে হবে, জিপ ফাইলটি খুলতে হবে এবং প্রকল্প ফোল্ডারে OpenHardwareMonitorLib. DLL ফাইলটি অনুলিপি করতে হবে।

এখানে RTSSharedMemoryNET লাইব্রেরির লিঙ্ক দেওয়া আছে, আপনাকে অবশ্যই আপনার আর্কিটেকচারের জন্য ডাউনলোড এবং কম্পাইল করতে হবে, তারপর আপনার প্রকল্প ফোল্ডারে RTSS [TL; DR] moryNET. DLL অনুলিপি করুন।

এখন আপনাকে আপনার কোডে একটি রেফারেন্স যোগ করতে হবে, নির্দেশাবলী এখানে

শুধু একই আর্কিটেকচারের জন্য RTSS [TL; DR] moryNET এবং PCHwMon সার্ভার প্রকল্প দুটি কম্পাইল করতে ভুলবেন না।

আমি একটি রেডিমেড সেটআপ প্রোগ্রাম অন্তর্ভুক্ত করেছি, যাতে আপনি ভিজ্যুয়াল বেসিকের সাথে ঝামেলা ছাড়াই পুরো জিনিসটি ইনস্টল করতে পারেন। এটি x86 এর জন্য কম্পাইল করা হয়েছে, x86 এবং x64 উভয় আর্কিটেকচারেই কাজ করবে। এটি চালানোর জন্য. NET ফ্রেমওয়ার্ক 4.7.2 প্রয়োজন।

যে কোনও ক্ষেত্রে, আপনাকে রিভাটুনার ইনস্টল করতে হবে। আপনি এটি একটি স্বতন্ত্র অ্যাপ্লিকেশন হিসাবে এখানে খুঁজে পেতে পারেন অথবা আপনি Msi Afterburner ইনস্টল করতে পারেন, যা RTServer অন্তর্ভুক্ত করা উচিত।

ধাপ 5: চূড়ান্ত হার্ডওয়্যার বাস্তবায়ন

প্রস্তাবিত: