সুচিপত্র:

ESP32 বোতামের জন্য "ধাতব হোল প্লাগ" ব্যবহার করে ক্যাপাসিটিভ টাচ ইনপুট: 5 টি ধাপ (ছবি সহ)
ESP32 বোতামের জন্য "ধাতব হোল প্লাগ" ব্যবহার করে ক্যাপাসিটিভ টাচ ইনপুট: 5 টি ধাপ (ছবি সহ)

ভিডিও: ESP32 বোতামের জন্য "ধাতব হোল প্লাগ" ব্যবহার করে ক্যাপাসিটিভ টাচ ইনপুট: 5 টি ধাপ (ছবি সহ)

ভিডিও: ESP32 বোতামের জন্য
ভিডিও: ESP32 Tutorial 4 - Data types Define Variable Int, bool, char, Serial Monitor-ESP32 IoT Learnig kit 2024, জুলাই
Anonim
Image
Image
হার্ডওয়্যার।
হার্ডওয়্যার।

যেহেতু আমি একটি আসন্ন ESP32 ওয়াইফাই কিট 32 ভিত্তিক প্রকল্পের জন্য তিনটি বাটন ইনপুটের জন্য নকশা সিদ্ধান্ত চূড়ান্ত করছিলাম, একটি লক্ষণীয় সমস্যা ছিল যে ওয়াইফাই কিট 32 -এ ইনপুটের জন্য একক যান্ত্রিক পুশবাটন নেই, তবে তিনটি যান্ত্রিক বোতাম রয়েছে। যাইহোক, ওয়াইফাই কিট 32 এর প্রচুর ক্যাপাসিটিভ টাচ ইনপুট আছে, তাই আমি কিছু সময় কাটিয়েছি হার্ডওয়্যার একত্রিত করা, সফ্টওয়্যার লেখা এবং ESP32 ক্যাপাসিটিভ টাচ ইনপুট বৈশিষ্ট্য এবং তিনটি 3/8 "" ধাতব গর্ত প্লাগ " বোতাম।

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

সুতরাং যদি আপনি একটি ESP32 এ ডিজিটাল ফিল্টারিং এর সাথে ক্যাপাসিটিভ ইনপুট পরীক্ষা করতে আগ্রহী হন, তাহলে আমি অরডুইনো এনভায়রনমেন্ট ফরম্যাটে সোর্স কোড "Buttons.ino" সমাবেশ এবং প্রোগ্রামিং নির্দেশাবলী সহ সোর্স কোডের সংক্ষিপ্ত বিবরণ অন্তর্ভুক্ত করেছি। আমি যা আবিষ্কার করেছি তা অত্যন্ত নির্ভরযোগ্য তিনটি বোতাম ইনপুট।

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

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

ধাপ 1: হার্ডওয়্যার।

হার্ডওয়্যার।
হার্ডওয়্যার।
হার্ডওয়্যার।
হার্ডওয়্যার।
হার্ডওয়্যার।
হার্ডওয়্যার।

নকশা নিম্নলিখিত হার্ডওয়্যার ব্যবহার করে:

  • এক, ওয়াইফাই কিট 32।
  • তিন, 3/8 "ধাতব গর্ত প্লাগ।
  • তিন, 4 "দৈর্ঘ্য 28awg তারের।

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

  • দেখানো হিসাবে প্রতিটি 4 "তারের দৈর্ঘ্যের প্রান্তগুলি ছিঁড়ে এবং টিন করা হয়েছে।
  • ESP32 (TOUCH4, বা "T4", ইনপুট) -এর 13 টি পিন করার জন্য প্রথম তারটি বিক্রি করে।
  • ESP32 (TOUCH5, বা "T5", ইনপুট) এর 12 টি পিন করার জন্য দ্বিতীয় তারের বিক্রি হয়েছে।
  • ESP32 (TOUCH6, বা "T6" ইনপুট) এর 14 টি পিন করার জন্য তৃতীয় তারের বিক্রি হয়েছে।
  • তিনটি 3/8 "ধাতব গর্তের প্লাগগুলির মধ্যে একটিকে তিনটি তারের দৈর্ঘ্যের মুক্ত প্রান্তে বিক্রি করে।

পদক্ষেপ 2: সফ্টওয়্যার।

সফটওয়্যার
সফটওয়্যার

"Buttons.ino" ফাইলটি একটি Arduino পরিবেশ ফাইল যা নকশার জন্য সফটওয়্যার ধারণ করে। এই ফাইল ছাড়াও, ওয়াইফাই কিট 32 ওএলইডি ডিসপ্লের জন্য আপনার "U8g2lib" গ্রাফিক্স লাইব্রেরির প্রয়োজন হবে (এই লাইব্রেরির আরও তথ্যের জন্য https://github.com/olikraus/u8g2/wiki দেখুন)।

আপনার Arduino ডিরেক্টরিতে U8g2lib গ্রাফিক্স লাইব্রেরি ইনস্টল করা আছে, এবং "Buttons.ino" Arduino পরিবেশে লোড করা হয়েছে, ESP32 এ সফ্টওয়্যারটি কম্পাইল এবং ডাউনলোড করুন।

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

ধাপ 3: সফ্টওয়্যার সম্পর্কে

সফটওয়্যারটিতে তিনটি প্রধান কোড বিভাগ রয়েছে; আরডুইনোতে "সেটআপ ()" এবং "লুপ ()" বিভাগ এবং একটি "বাধা" বিভাগ প্রয়োজন। সেটআপ () বিভাগে OLED আরম্ভ এবং পরিষেবাগুলিকে বাধা দেওয়ার জন্য প্রয়োজনীয় কোড রয়েছে। OLED সেটআপ ফাংশন উপরের লিঙ্কে বর্ণিত হয়েছে। ইন্টারাপ্ট সার্ভিস সেটআপ ফাংশন নিম্নরূপ:

  • "timerLoopSemaphore = xSemaphoreCreateBinary ()" লুপ পাস চালানোর সময় হলে লুপ () জানাতে "InterruptService ()" (ইন্টারাপ্ট সার্ভিস রুটিন) এর জন্য একটি সেমফোর তৈরি করে।
  • "timerInterruptService = timerBegin (0, 80, true)" হার্ডওয়্যার টাইমার 0 ব্যবহার করে একটি টাইমার তৈরি করে যা 80 এর একটি প্রিস্কেল সহ।
  • "timerAttachInterrupt (timerInterruptService, & InterruptService, true)" টাইমারের সাথে InterruptService () সংযুক্ত করে।
  • "timerAlarmWrite (timerInterruptService, 1000, true)" বিরতি পরিষেবা হার 1000hz সেট করে।
  • "timerAlarmEnable (timerInterruptService)" টাইমার অ্যালার্ম শুরু করে, এবং এইভাবে পরিষেবা বিঘ্নিত করে।

সেটআপ সম্পন্ন হলে, লুপ () প্রবেশ করা হয় এবং অবিলম্বে লাইনে থামে:

যদি (xSemaphoreTake (timerLoopSemaphore, portMAX_DELAY) == pdTRUE), মানে লুপ () InterruptService () থেকে সেমফোর না আসা পর্যন্ত এই সময়ে অপেক্ষা করবে। যখন সেমাফোর আসে, লুপ () কোড কার্যকর হয়, বোতাম ডেটা সহ OLED ডিসপ্লে আপডেট করে, তারপর আবার উপরের সেমফোরের অপেক্ষায় শীর্ষে ফিরে আসে। InterruptService () 1000hz এ চলমান এবং 30 এর একটি LOOP_DELAY মানের সাথে, loop () প্রতি 30ms বা 33.333hz এর ডিসপ্লে আপডেট হারে চালায়। যদিও এটি বেশিরভাগ ESP32 অ্যাপ্লিকেশনের জন্য প্রয়োজনের চেয়ে বেশি ডিসপ্লে রিফ্রেশ রেট, আমি ফিল্টারটির প্রতিক্রিয়াশীলতা বোঝাতে এই সেটিংটি ব্যবহার করেছি। আমি পরীক্ষা করেছি এবং একটি একক লুপ () পাস চালানোর জন্য প্রয়োজনীয় সময় নির্ধারণ করেছি 20ms।

InterruptService () 1000hz হারে সেটআপ () এ তৈরি টাইমার দ্বারা বলা হয়। যখন বলা হয়, এটি দুটি ডাউন কাউন্টার, nLoopDelay এবং nButtonDelay আপডেট করে। যখন nLoopDelay নিচে শূন্যের মধ্যে গণনা করা হয়, এটি সেমফোর পাঠায় loop () একটি একক পাস চালানোর অনুমতি দেয় তারপর nLoopDelay রিসেট করে। যখন nButtonDelay নিচে শূন্যের মধ্যে গণনা করা হয়, এটিও রিসেট হয় তারপর বোতাম "ফিল্টার" চালানো হয়।

প্রতিটি বাটন ফিল্টারের একটি অনন্য ফিল্টার কাউন্টার আছে (যেমন nButton1Count, nButton2Count এবং nButton3Count)। যতক্ষণ পর্যন্ত বোতামের জন্য নির্ধারিত স্পর্শ ইনপুট মান নির্ধারিত থ্রেশহোল্ড মান (BUTTON_THRESHHOLD) এর চেয়ে বড় বা সমান হয়, ততক্ষণ বাটন এবং বোতামটি নির্ধারিত ফিল্টার কাউন্টার শূন্য থাকে। যদি বোতামের জন্য নির্ধারিত স্পর্শ ইনপুট মান নির্ধারিত সীমার চেয়ে কম হয়, বাটনে নির্ধারিত ফিল্টার কাউন্টার প্রতি 20ms দ্বারা একটি বৃদ্ধি পায়। যখন ফিল্টার কাউন্টার বোতাম ফিল্টার মান (BUTTON_FILTER) ছাড়িয়ে যায়, তখন বোতামটি "চাপা" বলে বিবেচিত হয়। এই পদ্ধতির প্রভাব হল একটি ফিল্টার তৈরি করা যা 80ms (20ms nButtonDelay * 4ms nButtonCountN যেখানে N হল বোতাম নম্বর) নির্ধারিত থ্রেশহোল্ডের নীচে ক্রমাগত স্পর্শ ইনপুট মানগুলি যা আসলে বোতামটি চাপা আছে তা বিবেচনা করতে হবে। যে কোনো সময় 80ms এর কম সময়কে "ত্রুটি" হিসাবে বিবেচনা করা হয় এবং ফিল্টার দ্বারা প্রত্যাখ্যাত হয়।

এই সংক্ষিপ্ত বিবরণ দেওয়া, যদি আপনার কোন প্রশ্ন থাকে, দয়া করে নির্দ্বিধায় জিজ্ঞাসা করুন এবং আমি তাদের উত্তর দেওয়ার জন্য যথাসাধ্য চেষ্টা করব।

কামনা করি তুমি এটা উপভোগ করেছ!

ধাপ 4: "আসন্ন প্রকল্প"।

দ্য
দ্য

আসন্ন প্রকল্প, "Intelligrill® Pro", একটি দ্বৈত তাপমাত্রা প্রোব ধূমপায়ী মনিটর বৈশিষ্ট্যযুক্ত:

  • বর্ধিত নির্ভুলতার জন্য স্টেইনহার্ট-হার্ট তাপমাত্রা প্রোব গণনা ("লুক-আপ" টেবিলের বিপরীতে)।
  • স্টেইনহার্ট-হার্ট গণনা থেকে প্রাপ্ত বর্ধিত নির্ভুলতা অন্তর্ভুক্ত করে প্রোব 1-এ সমাপ্তির পূর্বাভাস দেওয়ার সময়।
  • ধূমপায়ীর তাপমাত্রা পর্যবেক্ষণের জন্য দ্বিতীয় প্রোব, প্রোব 2, (32 থেকে 399 ডিগ্রি পর্যন্ত সীমিত)।
  • ক্যাপাসিটিভ টাচ ইনপুট কন্ট্রোল (এই নির্দেশের মতো)।
  • ওয়াইফাই ভিত্তিক রিমোট মনিটরিং (একটি নির্দিষ্ট আইপি ঠিকানার সাথে, ধূমপায়ীর অগ্রগতি পর্যবেক্ষণ করতে সক্ষম হয় যেখানেই ইন্টারনেট সংযোগ পাওয়া যায়)।
  • বর্ধিত তাপমাত্রা পরিসীমা (আবার 32 থেকে 399 ডিগ্রী)।
  • শ্রবণযোগ্য সমাপ্তি অ্যালার্ম উভয়ই Intelligrill® ট্রান্সমিটারের মধ্যে এবং বেশিরভাগ ওয়াইফাই সক্ষম মনিটরিং ডিভাইসে।
  • ডিগ্রী এফ বা ডিগ্রি সি তে তাপমাত্রা প্রদর্শন।
  • HH: MM: SS বা HH: MM- এ সময়ের বিন্যাস।
  • ব্যাটারি ডিসপ্লে হয় ভোল্টে অথবা % চার্জে।
  • এবং শীঘ্রই আসছে, auger ভিত্তিক ধূমপায়ীদের জন্য PID আউটপুট।

"ইন্টেলিজ্রিল® প্রো" আমার ডিজাইন করা সবচেয়ে নির্ভুল, ফিচার প্যাকড এবং নির্ভরযোগ্য এইচটিএমএল ভিত্তিক ইন্টেলিজ্রিল become হওয়ার জন্য পরীক্ষা করছে।

এটি এখনও পরীক্ষার অধীনে, কিন্তু পরীক্ষার সময় এটি প্রস্তুত করা খাবারগুলির সাহায্যে, আমি কয়েক পাউন্ডেরও বেশি লাভ করেছি।

আবার, আমি আশা করি আপনি এটি উপভোগ করবেন!

স্টেপহার্ট-হার্ট সংশোধন সহ ESP32 NTP তাপমাত্রা প্রোব এনালগ ইনপুট

এই জন্য আপনার বীজগণিত বই ধুলো প্রস্তুত।

প্রস্তাবিত: