ESP32 টিউটোরিয়াল ১৮/৫৫ - ESP32 ব্যবহার করে টিল্ট শনাক্ত করা | SunFounder-এর ESP32 IoT লার্নিং কিট
এই টিউটোরিয়ালে, আমরা SunFounder ESP32 মাইক্রোকন্ট্রোলার ব্যবহার করে একটি সহজ প্রজেক্ট তৈরি করব যা একটি টিল্ট সুইচ ব্যবহার করে কাত হওয়া শনাক্ত করে। যখন টিল্ট সুইচ সক্রিয় হয়, একটি LED বন্ধ হয়ে যাবে, এবং যখন এটি সোজা অবস্থানে থাকে, LED জ্বলবে। এই প্রজেক্টটি শুধু টিল্ট সেন্সর নিয়ে কাজ করার একটি চমৎকার পরিচিতিই নয়, বরং বিভিন্ন রোবোটিক্স অ্যাপ্লিকেশনের জন্য একটি ভিত্তি হিসেবেও কাজ করে। বিস্তারিত ভিজ্যুয়াল গাইডের জন্য, উপরে লিংক করা ভিডিওটি (ভিডিওতে 00:00 সময়ে) অবশ্যই দেখুন।

হার্ডওয়্যার ব্যাখ্যা
এই প্রজেক্টে ব্যবহৃত প্রধান উপাদানগুলির মধ্যে রয়েছে ESP32 মাইক্রোকন্ট্রোলার, একটি টিল্ট সুইচ এবং একটি LED। ESP32 একটি শক্তিশালী মাইক্রোকন্ট্রোলার যার বিল্ট-ইন Wi-Fi এবং ব্লুটুথ রয়েছে, যা এটিকে IoT অ্যাপ্লিকেশনের জন্য আদর্শ করে তোলে। টিল্ট সুইচ একটি সহজ ডিভাইস যার ভিতরে একটি ক্যানে একটি ধাতব বল থাকে। কাত হলে, বলটি সরে যায় এবং সার্কিট ভেঙে দেয়, যা আমাদের টিল্ট অবস্থা শনাক্ত করতে দেয়। LED সুইচের অবস্থার উপর ভিত্তি করে টিল্ট অবস্থা দৃশ্যমানভাবে নির্দেশ করবে। এই উপাদানগুলির পাশাপাশি, আমরা কারেন্ট সীমিত করার জন্য এবং পুল-ডাউন করার জন্য রেজিস্টরও ব্যবহার করব। LED-এর সাথে সংযুক্ত 220-ওহম রেজিস্টর নিশ্চিত করে যে LED অতিরিক্ত কারেন্ট না টেনে নিরাপদে কাজ করে। 10k-ওহম রেজিস্টর টিল্ট সুইচের জন্য একটি পুল-ডাউন হিসেবে কাজ করে, নিশ্চিত করে যে সুইচ সক্রিয় না থাকলে ইনপুট পিন একটি পরিচিত অবস্থা পড়ে।
ডেটাশিট বিবরণ
| প্রস্তুতকারক | SunFounder |
|---|---|
| পার্ট নম্বর | ESP32 |
| লজিক/IO ভোল্টেজ | 3.3 V |
| সাপ্লাই ভোল্টেজ | 5 V |
| আউটপুট কারেন্ট (প্রতি চ্যানেল) | 12 mA |
| পিক কারেন্ট (প্রতি চ্যানেল) | 40 mA |
| PWM ফ্রিকোয়েন্সি নির্দেশনা | 1 kHz |
| ইনপুট লজিক থ্রেশহোল্ড | 0.8 V (নিম্ন), 2.0 V (উচ্চ) |
| ভোল্টেজ ড্রপ / RDS(on) / স্যাচুরেশন | 0.2 V |
| থার্মাল সীমা | 85 °C |
| প্যাকেজ | ESP32 মডিউল |
| নোট / ভেরিয়েন্ট | Wi-Fi এবং ব্লুটুথ ক্ষমতা অন্তর্ভুক্ত |
- LED-এর ক্ষতি রোধ করতে সঠিক রেজিস্টর মান নিশ্চিত করুন।
- শর্ট সার্কিট এড়াতে তারের সংযোগ পরিপাটি রাখুন।
- টিল্ট সুইচ থেকে স্থিতিশীল রিডিং নিশ্চিত করতে পুল-ডাউন রেজিস্টর ব্যবহার করুন।
- কম্পোনেন্ট ব্যর্থতা এড়াতে সার্কিটে পাওয়ার দেওয়ার আগে সংযোগ পরীক্ষা করুন।
- সঠিক কার্যকারিতার জন্য টিল্ট সুইচের অভিযোজন যাচাই করুন।
ওয়্যারিং নির্দেশাবলী

কম্পোনেন্টগুলি ওয়্যার করতে, টিল্ট সুইচ দিয়ে শুরু করুন, যার কোনো পোলারিটি নেই, তাই এটি যেকোনো দিকে সংযুক্ত করা যেতে পারে। টিল্ট সুইচের একটি পিন 3.3V সাপ্লাইয়ের সাথে এবং অন্যটি ESP32-এর পিন 14-এর সাথে সংযুক্ত করুন। সুইচ সক্রিয় না থাকলে পিন 14 একটি পরিচিত অবস্থা পড়ে তা নিশ্চিত করতে, একই পিন থেকে গ্রাউন্ডে একটি 10k-ওহম রেজিস্টর সংযুক্ত করুন। এরপর, LED নিন এবং এটিকে ব্রেডবোর্ডে ঢোকান যার লম্বা পা (অ্যানোড) একটি 220-ওহম রেজিস্টরের সাথে সংযুক্ত। রেজিস্টরের অন্য প্রান্তটি ESP32-এর পিন 26-এর সাথে সংযুক্ত করুন। LED-এর ছোট পা (ক্যাথোড) গ্রাউন্ডের সাথে সংযুক্ত করা উচিত। অবশেষে, ESP32-এর গ্রাউন্ড পিনটি আপনার ব্রেডবোর্ডের গ্রাউন্ড রেলের সাথে এবং 3.3V পিনটি পাওয়ার রেলের সাথে সংযুক্ত করুন। কোনো শর্ট বা ভুল রিডিং রোধ করতে সমস্ত সংযোগ দুবার পরীক্ষা করুন। আপনি যদি এই ধাপগুলি অনুসরণ করেন, তাহলে আপনার কাছে প্রোগ্রামিংয়ের জন্য প্রস্তুত একটি কার্যকরী টিল্ট সেন্সর সেটআপ থাকা উচিত।
কোড উদাহরণ ও ওয়াকথ্রু
কোডটি টিল্ট সুইচ এবং LED-এর জন্য পিন নম্বর সংজ্ঞায়িত করে শুরু হয়। টিল্ট সুইচটি পিন 14-এর সাথে সংযুক্ত, এবং LEDটি পিন 26-এর সাথে সংযুক্ত। টিল্ট সুইচের অবস্থা tiltState ভেরিয়েবলে সংরক্ষিত থাকে।
// পিন নম্বর সেট করুন
const int tiltPin = 14; // টিল্ট সুইচ
const int ledPin = 26; // LED
// টিল্ট অবস্থা সংরক্ষণের জন্য ভেরিয়েবল
int tiltState = 0;
এই অংশটি পিন অ্যাসাইনমেন্ট এবং টিল্ট অবস্থা ট্র্যাক করবে এমন ভেরিয়েবলের ঘোষণা দেখায়। tiltPin সুইচ অবস্থা পড়ার জন্য একটি ইনপুট হিসেবে সেট করা আছে। setup() ফাংশনে, সিরিয়াল কমিউনিকেশন শুরু হয়, এবং টিল্ট সুইচ এবং LED-এর জন্য পিন মোড সেট করা হয়। এটি নিশ্চিত করে যে ESP32 টিল্ট সুইচ থেকে ইনপুট পড়তে পারে এবং LED নিয়ন্ত্রণ করতে পারে।
void setup() {
Serial.begin(115200);
// টিল্ট পিনটি ইনপুট হিসেবে শুরু করুন
pinMode(tiltPin, INPUT);
// LED পিনটি আউটপুট হিসেবে শুরু করুন
pinMode(ledPin, OUTPUT);
}
এই অংশটি গুরুত্বপূর্ণ কারণ এটি পরিবেশ সেট আপ করে, যা ESP32-কে কার্যকরভাবে যোগাযোগ করতে এবং টিল্ট সুইচ অবস্থার উপর ভিত্তি করে আউটপুট নিয়ন্ত্রণ করতে দেয়। loop() ফাংশনটি ক্রমাগত টিল্ট সুইচের অবস্থা পরীক্ষা করে। যদি সুইচটি সোজা থাকে, LED জ্বলবে; যদি কাত থাকে, LED বন্ধ হয়ে যাবে। বর্তমান অবস্থা ডিবাগিংয়ের জন্য সিরিয়াল মনিটরে প্রিন্ট করা হয়।
void loop() {
// টিল্ট সুইচের অবস্থা পড়ুন
tiltState = digitalRead(tiltPin);
Serial.println(tiltState);
// যদি সুইচটি সোজা থাকে
if (tiltState == HIGH) {
// LED চালু করুন
digitalWrite(ledPin, HIGH);
} else {
// LED বন্ধ করুন
digitalWrite(ledPin, LOW);
}
}
এই লুপটি ক্রমাগত চলে, যা টিল্ট সুইচ অবস্থার রিয়েল-টাইম মনিটরিং এবং সংশ্লিষ্ট LED নিয়ন্ত্রণের অনুমতি দেয়। আউটপুট সিরিয়াল মনিটরে পর্যবেক্ষণ করা যেতে পারে, যা কার্যকারিতা যাচাই করা সহজ করে তোলে।
প্রদর্শন / কী আশা করবেন
একবার সবকিছু সঠিকভাবে সংযুক্ত হয়ে গেলে এবং কোড আপলোড করা হলে, আপনার দেখা উচিত যে টিল্ট সুইচটি সোজা অবস্থায় থাকলে LED জ্বলবে, এবং কাত হলে তা বন্ধ হয়ে যাবে। টিল্ট অবস্থা এবং LED প্রতিক্রিয়ার মধ্যে এই সরাসরি সম্পর্ক টিল্ট সুইচের কার্যকারিতা কার্যকরভাবে প্রদর্শন করে। সাধারণ ভুলগুলির মধ্যে রয়েছে তারের সংযোগ সঠিক কিনা তা নিশ্চিত করা এবং শর্ট সার্কিট এড়াতে রোধকগুলি যথাযথভাবে স্থাপন করা হয়েছে কিনা তা যাচাই করা (ভিডিওতে ১২:০০ মিনিটে)।
ভিডিও টাইমস্ট্যাম্প
- ০০:০০ শুরু
- ১:৪৪ প্রকল্পের পরিচিতি
- ২:৪৯ ডকুমেন্টেশন
- ৬:৪৩ Arduino ওয়্যারিং ব্যাখ্যা
- ১০:৩৯ Arduino কোড ব্যাখ্যা
- ১৩:৪০ Arduino IDE-তে ESP32 বোর্ড এবং COM পোর্ট নির্বাচন
- ১৫:২২ প্রকল্পের টিল্ট প্রদর্শন
// Set pin numbers
const int tiltPin = 14; // Tilt Switch
const int ledPin = 26; // LED
// Variable for storing the tilt status
int tiltState = 0;
void setup() {
Serial.begin(115200);
// Initialize the tilt pin as an input
pinMode(tiltPin, INPUT);
// Initialize the LED pin as an output
pinMode(ledPin, OUTPUT);
}
void loop() {
// Read the state of the tilt switch
tiltState = digitalRead(tiltPin);
Serial.println(tiltState);
// If the switch is upright
if (tiltState == HIGH) {
// Turn LED on
digitalWrite(ledPin, HIGH);
} else {
// Turn LED off
digitalWrite(ledPin, LOW);
}
}
Common Course Links
Common Course Files
সম্পদ ও রেফারেন্সসমূহ
-
ডকুমেন্টেশনESP32 Tutorial 18/55- SunFounder Tile sensor documentationdocs.sunfounder.com
ফাইলসমূহ📁
কোনো ফাইল উপলব্ধ নেই।