ESP32 - Arduino IDE সহ পুশ বোতাম

Esp32 Arduino Ide Saha Pusa Botama



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

এই পাঠের বিষয়বস্তুর সারণী নিম্নরূপ:







1: পুশ বোতামের ভূমিকা



2: পুশ বোতামের কাজ



2.1: পুশ বোতাম ওয়ার্কিং মোড





3: ESP32 এর সাথে ইন্টারফেসিং পুশ বোতাম

3.1: ESP32 এ ডিজিটাল ইনপুট আউটপুট পিন



3.2: কিভাবে ESP32-এ ডিজিটাল ইনপুট পড়তে হয়

3.3: ডিজিটাল রিড ফাংশন ব্যবহার করে ESP32 এর সাথে ইন্টারফেসিং পুশ বোতাম

3.4: হার্ডওয়্যার প্রয়োজনীয়

3.5: পরিকল্পিত

3.6: পুশ বোতামের সাথে ESP32 ইন্টারফেস করার জন্য কোড

3.7: আউটপুট

1: পুশ বোতামের ভূমিকা

একটি পুশ বোতাম হল একটি সাধারণ বোতাম যার একটি প্রক্রিয়া বিভিন্ন মেশিন বা প্রক্রিয়ার অবস্থা নিয়ন্ত্রণ করার জন্য। পুশ বোতামটি প্লাস্টিক বা ধাতুর মতো শক্ত উপাদান দিয়ে তৈরি এবং উপরের পৃষ্ঠটি সাধারণত সমতল হয় যা ব্যবহারকারীদের এটি চাপতে দেয়।

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

আসুন বিস্তারিতভাবে পুশ বোতামের কাজের নীতির গভীরে যাই:

2: পুশ বোতামের কাজ

একটি পুশ বোতামে সাধারণত 4টি পিন থাকে। এই 4টি পিন একটি জোড়া আকারে সংযুক্ত থাকে যেমন দুটি উপরের পিন অভ্যন্তরীণভাবে সংযুক্ত থাকে একইভাবে অন্য দুটিও অভ্যন্তরীণভাবে সংযুক্ত থাকে।


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

2.1: পুশ বোতাম ওয়ার্কিং মোড

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

এই প্রক্রিয়ার উপর ভিত্তি করে পুশ বোতাম নিম্নলিখিত দুটি মোডে কাজ করতে পারে:


আমরা যদি নীচের ছবিতে দেখানো মোডের একটি উদাহরণ গ্রহণ করি। আমরা দেখতে পাচ্ছি যে যখন বোতাম টিপানো হয় না তখন অভ্যন্তরীণ সংযোগ খোলা হয় একবার বোতাম টিপলে অভ্যন্তরীণ A এবং B টার্মিনাল সংযুক্ত হবে এবং সার্কিটটি সম্পূর্ণ হবে।


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

3: ESP32 এর সাথে ইন্টারফেসিং পুশ বোতাম

ESP32 এর সাথে পুশ বোতাম ইন্টারফেস করার আগে একজনকে অবশ্যই GPIO পিনগুলি জানতে হবে যা একটি ইনপুট হিসাবে ব্যবহার করা যেতে পারে। এখন আমরা ESP32 এ ডিজিটাল ইনপুট আউটপুট পিন নিয়ে আলোচনা করব।

3.1: ESP32 এ ডিজিটাল ইনপুট আউটপুট পিন

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

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

নীচের দেওয়া পিনআউট হল 30 পিন ESP32 বোর্ড:


সমস্ত GPIO এর মধ্যে শুধুমাত্র 4 পিন ( 34, 35, 36 এবং 39 ) শুধুমাত্র ইনপুট হয় যখন অন্য সব পিন ইনপুট এবং আউটপুট উভয়ের জন্য ব্যবহার করা যেতে পারে। উপরে উল্লিখিত হিসাবে 6 SPI পিন ইনপুট বা আউটপুট জন্য ব্যবহার করা যাবে না.

3.2: কিভাবে ESP32-এ ডিজিটাল ইনপুট পড়তে হয়

পুশ বোতাম ইনপুট একটি সংজ্ঞায়িত GPIO পিনে পড়া যেতে পারে যার জন্য একটি ফাংশন পিনমোড() Arduino কোডের ভিতরে প্রথমে সংজ্ঞায়িত করা প্রয়োজন। এই ফাংশনটি ইনপুট হিসাবে GPIO পিন সেট করবে। পিনমোড() ফাংশন সিনট্যাক্স নিম্নরূপ:

পিনমোড ( জিপিআইও, ইনপুট ) ;


একটি সংজ্ঞায়িত GPIO পিন থেকে ডেটা পড়তে ডিজিটাল রিড() ফাংশন বলা হবে। একটি GPIO পিনে পুশ বোতাম থেকে ডেটা নেওয়ার জন্য যে কমান্ডটি ব্যবহার করতে পারেন তা হল:

ডিজিটাল রিড ( জিপিআইও ) ;

3.3: ডিজিটাল রিড ফাংশন ব্যবহার করে ESP32 এর সাথে ইন্টারফেসিং পুশ বোতাম

এখন আমরা পুশবাটন ব্যবহার করে ESP32 ইন্টারফেস করব ডিজিটাল পড়া যেকোনো GPIO পিনে ফাংশন। পুশবাটন থেকে ইনপুট নিলে একটি LED চালু বা বন্ধ হয়ে যাবে।

3.4: হার্ডওয়্যার প্রয়োজনীয়

নীচে প্রয়োজনীয় উপাদানগুলির তালিকা রয়েছে:

    • ESP32 বোর্ড
    • একটি LED
    • 220 ওহম প্রতিরোধক
    • 4 পিন পুশ বোতাম
    • ব্রেডবোর্ড
    • জাম্পার তারের সংযোগ

3.5: পরিকল্পিত

নীচের চিত্রটি ESP32 সহ পুশ বোতামের পরিকল্পিত চিত্র। এখানে GPIO পিন 15-এ পুশ বোতাম থেকে ইনপুট পড়া হয় এবং LED GPIO পিন 14-এ সংযুক্ত থাকে।

3.6: ESP32 এর সাথে পুশ বোতাম ইন্টারফেস করার জন্য কোড

এখন ESP32 এ কোড আপলোড করতে Arduino IDE এডিটর ব্যবহার করা হবে। IDE খুলুন এবং ESP32 বোর্ড সংযুক্ত করুন তারপর টুল বিভাগ থেকে COM পোর্ট নির্বাচন করুন। ESP32 বোর্ড প্রস্তুত হলে IDE-তে কোডটি পেস্ট করুন এবং আপলোড ক্লিক করুন:

const int Push_Button = পনের ; /* ডিজিটাল পিন পনের সংজ্ঞায়িত জন্য বোতাম চাপা */
const int LED_Pin = 14 ; /* ডিজিটাল পিন 14 সংজ্ঞায়িত জন্য এলইডি */
int Button_State = 0 ;
অকার্যকর সেটআপ ( ) {
সিরিয়াল.শুরু ( 115200 ) ;
পিনমোড ( Push_Button, INPUT ) ; /* জিপিআইও পনের সেট হিসাবে ইনপুট */
পিনমোড ( LED_Pin, OUTPUT ) ; /* জিপিআইও 14 সেট হিসাবে আউটপুট */
}
অকার্যকর লুপ ( ) {
Button_State = digitalRead ( বোতাম চাপা ) ; /* পুশবাটনের অবস্থা পরীক্ষা করুন */
Serial.println ( বোতাম_রাষ্ট্র ) ;
যদি ( বোতাম_স্থিতি == উচ্চ ) { /* যদি বোতামের স্থিতি পরীক্ষা করার শর্ত */
ডিজিটাল লিখুন ( LED_Pin, HIGH ) ; /* উচ্চ রাষ্ট্র LED অন */
} অন্য {
ডিজিটাল লিখুন ( LED_Pin, LOW ) ; /* অন্যথায় LED বন্ধ */
}
}


LED এবং পুশবাটনের জন্য GPIO পিনগুলি সংজ্ঞায়িত করে কোড শুরু হয়েছে৷ এর পরে LED GPIO আউটপুট হিসাবে ঘোষণা করা হয় যখন পুশ বোতাম GPIO ইনপুট হিসাবে সেট করা হয়।

শেষে পুশ বোতামের অবস্থা if কন্ডিশন ব্যবহার করে চেক করা হয়েছে। পুশ বোতামের অবস্থাও সিরিয়াল মনিটর ব্যবহার করে প্রিন্ট করা হয় Serial.println(Button_State) .

যদি পুশ বোতাম ইনপুট উচ্চ নেতৃত্বে থাকে তবে এটি চালু হবে অন্যথায়, এটি বন্ধ থাকবে।

3.7: আউটপুট

প্রথমে, আমরা দেখতে পাচ্ছি LED বন্ধ আছে।


এখন পুশ বোতাম টিপুন একটি উচ্চ সংকেত ESP32 GPIO 15 এ পাঠানো হবে এবং LED চালু হবে।


একই আউটপুট Arduino সিরিয়াল মনিটরেও দেখা যায়।

উপসংহার

ESP32 এর একাধিক GPIO পিন রয়েছে যা পুশ বোতামের মতো সেন্সর থেকে ডিজিটাল ডেটা পড়তে পারে। ডিজিটাল রিড ফাংশন পুশ বোতাম ব্যবহার করে বিভিন্ন ডিভাইস নিয়ন্ত্রণ করতে ESP32 এর সাথে সহজেই ইন্টারফেস করা যেতে পারে। এই নিবন্ধটি একবার ব্যবহার করে ESP32-এর যেকোনো GPIO পিনের সাথে পুশ বোতাম ইন্টারফেস করতে পারে।