সুচিপত্র:

সকালের বন্ধু: 8 টি ধাপ
সকালের বন্ধু: 8 টি ধাপ

ভিডিও: সকালের বন্ধু: 8 টি ধাপ

ভিডিও: সকালের বন্ধু: 8 টি ধাপ
ভিডিও: 8 IMPORTANT Chess Opening Principles BANGLA 2024, জুলাই
Anonim
Image
Image

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

ধাপ 1: আইডিয়া মস্তিষ্কের

স্কেচিং এবং উপকরণ
স্কেচিং এবং উপকরণ

যখন আমরা সমস্যাটি সমাধান করার চেষ্টা করছিলাম তখন আমরা ফিশবোন পদ্ধতিটি ব্যবহার করে একটি ধারণা নিয়ে এসেছিলাম এবং এর ফলে আমাদের অ্যালার্ম ঘড়ি তৈরি হয়েছিল।

ধাপ 2: স্কেচিং এবং উপকরণ

স্কেচিং এবং উপকরণ
স্কেচিং এবং উপকরণ

এই ধাপের সময় আমরা ইলেকট্রনিক্স এবং বাইরের আবরণগুলির জন্য আমাদের প্রয়োজনীয় সমস্ত জিনিসের একটি তালিকা তৈরি করার চেষ্টা করেছি। তারপরে আমরা এলার্ম ঘড়িটি কেমন দেখতে চাই এবং এর বাইরের আবরণটি কীভাবে একত্রিত করব তার একটি স্কেচ নিয়ে এসেছি।

ধাপ 3: আউটটার কেসিং তৈরি করা

আউটটার কেসিং তৈরি করা
আউটটার কেসিং তৈরি করা
আউটটার কেসিং তৈরি করা
আউটটার কেসিং তৈরি করা

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

ধাপ 4: লেজার বাইরের আবরণ কাটা

লেজার বাইরের আবরণ কাটা
লেজার বাইরের আবরণ কাটা

দ্বিতীয় প্রোটোটাইপের জন্য আমি সঠিক পরিমাপ পেতে চেয়েছিলাম এবং লেজার কাটারে পাঠানোর জন্য একটি পিডিএফ তৈরি করতে হয়েছিল। এটি করার জন্য আমি একটি বক্স মেকার অ্যাপ ওয়েবসাইট, https://boxdesigner.connectionlab.org ব্যবহার করেছি। সেই ওয়েবসাইটে আমি তারপর বাক্সের 3-ডি মাত্রা, আমাদের উপাদানের পুরুত্ব, পরিমাপ ইউনিট, এবং আমি কোন ধরনের ফাইল তৈরি করতে চেয়েছিলাম তা প্রবেশ করেছি। বাক্সের মাত্রা 7.5 x 3 x 5 x ছিল এবং আমি 1/8 পুরু এক্রাইলিক উপাদান ব্যবহার করেছি। আঙুলের যৌথ খাঁজ পরিমাপ তখন স্বয়ংক্রিয়ভাবে 0.46875 ইঞ্চি কনফিগার করা হয়েছিল। আমি পিডিএফ সংস্করণটি নির্বাচন করেছি কারণ এটি একটি লেজার কাটার ফাইলের ধরন এবং আমি ফাইলটিতে অ্যাডোবে কিছু পরিবর্তন করতে চেয়েছিলাম। আমি রেখার রংগুলিকে লাল করে দিয়েছি, যাতে লেজার কাটার আকৃতি খোদাই করার পরিবর্তে সেগুলো কেটে ফেলতে জানে, এবং আমি একটি আয়তক্ষেত্র বাক্স যোগ করেছি যার মাত্রা 3.92 এর মধ্যে 1.56 ইঞ্চি হবে বাক্স অ্যালার্ম ঘড়ির সাথে সংযুক্ত কর্ডের জন্য একটি খোলার কাজ করার জন্য আমি নীচে ডান পাশের টুকরোতে 1 ইঞ্চি 0.5 ইঞ্চি মাত্রা দিয়ে কাটা একটি আয়তক্ষেত্র যুক্ত করেছি। সর্বশেষ আমি দুটি buzzers এবং বোতাম জন্য শীর্ষে তিনটি বৃত্তাকার খোলার যোগ। বাজারের খোলার ব্যাস ছিল 0.5 ইঞ্চি এবং বোতাম খোলার পরিমাণ ছিল 0.375 ইঞ্চি।

ধাপ 5: এটি একসাথে রাখা

একসাথে রেখে
একসাথে রেখে

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

ধাপ 6: কোড

ভূমিকা:

এই প্রকল্পটি Arduino IDE সফটওয়্যারে c ++ ভাষা ব্যবহার করে কোড করা হয়েছিল। ব্যবহৃত মাইক্রো-কন্ট্রোলারটি ছিল ESP8266 সহ NodeMCU। এই প্রকল্পের জন্য আমাদের সময় সঠিকভাবে রাখার একটি উপায়, শব্দ করার জন্য একটি বজার, অ্যালার্ম বাজানোর জন্য একটি অ্যালার্ম সিস্টেম এবং সব সময় এবং অ্যালার্মের সময় প্রদর্শন করার জন্য একটি স্ক্রিন প্রয়োজন হবে। সম্পূর্ণ কোডের জন্য এই লিঙ্কটি পড়ুন

লাইব্রেরি আমদানি করা

প্রথম জিনিস, আমাদের প্রয়োজনীয় লাইব্রেরি আমদানি করতে হবে।

#অন্তর্ভুক্ত "RTClib.h"

#অন্তর্ভুক্ত "Wire.h" #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত

ভেরিয়েবল শুরু করা

পরবর্তীতে আমাদের পরবর্তীতে ভেরিয়েবল শুরু করতে হবে, বজার বোতামের জন্য পিন লেআউট বরাদ্দ করতে হবে, আরটিসি সেট আপ করতে হবে এবং এলসিডি ডিসপ্লের আই 2 সি ঠিকানা সেট করতে হবে।

LiquidCrystal_I2C lcd (0x27, 20, 4);

const int buzzer1 = 12; const int buzzer2 = 0; const int বাটন = 2; RTC_DS3231 rtc; char daysOfTheWeek [7] [12] = {"রবিবার", "সোমবার", "মঙ্গলবার", "বুধবার", "বৃহস্পতিবার", "শুক্রবার", "শনিবার"} int starttime; int সক্রিয় সময়; int prevoustime = 0; char ahours1 [3]; char amins1 [3]; int hour1 = 0; int min1 = 0; char ahours2 [3]; char amins2 [3]; int hour2 = 0; int min2 = 0; char ahours3 [3]; char amins3 [3]; int hour3 = 0; int min3 = 0; int এলার্ম = 0; int ByteReceived; char recievedChar; const বাইট numChars = 32; received receiveChars [numChars];

সেটআপ

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

অকার্যকর সেটআপ() {

#ifndef ESP8266 যখন (! সিরিয়াল); #endif if (! rtc.begin ()) {Serial.println ("RTC খুঁজে পাওয়া যায়নি"); যখন (1); } যদি (rtc.lostPower ()) {Serial.println ("RTC শক্তি হারিয়েছে, সময় সেট করতে দেয়!"); rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))} lcd.init (); lcd.backlight (); // বাকলাইট চালু করে। lcd.clear (); // LCD lcd.print ("00:00") সাফ করে; // কোড আপলোড করার পর LCD তে ডিসপ্লে lcd.setCursor (10, 0); lcd.print ("00:00"); lcd.setCursor (0, 1); lcd.print ("সময়"); lcd.setCursor (10, 1); lcd.print ("অ্যালার্ম 1"); lcd.setCursor (0, 3); lcd.print ("অ্যালার্ম 2"); lcd.setCursor (0, 2); lcd.print ("00:00"); lcd.setCursor (10, 3); lcd.print ("অ্যালার্ম 3"); lcd.setCursor (10, 2); lcd.print ("00:00"); rtc.begin (); পিনমোড (বোতাম, ইনপুট); // নীরবতা বোতাম পিনমোডের জন্য একটি পিন সেট করুন (buzzer1, আউটপুট); // বুজার আউটপুট পিনমোডের জন্য একটি পিন সেট করুন (বুজার 2, আউটপুট); // buzzer আউটপুট Serial.begin (9600) এর জন্য একটি পিন সেট করুন; Serial.println ("HHMM ফরম্যাটে অ্যালার্মের ইনপুট টাইম যার মধ্যে অ্যালার্মের মধ্যে কোন জায়গা নেই"); শুরুর সময় = মিলিস ()/1000; }

তথ্য গ্রহণ

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

অকার্যকর recvWithEndMarker () {

স্ট্যাটিক int ndx = 0; স্ট্রিং টাইমিন = Serial.readString (); জন্য (ndx = 0; timein [ndx]; ndx ++) {receiveChars [ndx] = timein [ndx]; } প্রাপ্ত চারস [ndx] = '\ 0'; সিরিয়াল.প্রিন্ট (প্রাপ্ত চারস); }

অ্যালার্ম সেট করা

পরবর্তী ধাপ হল অ্যালার্ম সেট করতে সক্ষম হওয়া। এখানে অ্যালার্মের জন্য কোড 1।

/* অ্যালার্ম 1*/

recvWithEndMarker (); int h, m; জন্য (h = 0; h <2; h ++) {ahours1 [h] = receiveChars [h]; } এর জন্য (m = 2; m <4; m ++) {amins1 [m-2] = receiveChars [m]; } ahours1 [h] = '\ 0'; amins1 [m-2] = '\ 0'; সিরিয়াল.প্রিন্ট (ahours1); Serial.print (amins1); hour1 = atoi (ahours1); min1 = atoi (amins1); সিরিয়াল.প্রিন্ট (ঘন্টা 1); সিরিয়াল.প্রিন্ট (মিনিট 1);

বুজার/বোতাম

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

/ * নীরবতা বোতাম */

int নীরবতা; int খ; b = ডিজিটাল রিড (2); যদি (b == LOW) {নীরবতা = 1; } অন্য {নীরবতা = 0; } / * অ্যালার্ম শুরু করুন * / যদি (ঘন্টা == ঘন্টা 1 && মিনিট == মিনিট 1) {অ্যালার্ম = 1; } অন্যথায় যদি (ঘন্টা == ঘন্টা 2 && মিনিট == মিনিট 2) {অ্যালার্ম = 1; } অন্যথায় যদি (ঘন্টা == ঘন্টা 3 && মিনিট == মিনিট 3) {অ্যালার্ম = 1; } অন্য {অ্যালার্ম = 0; নীরবতা = 0; } যদি (এলার্ম == 1 && নীরবতা == 0) {টোন (buzzer1, 4000, 1000); স্বর (buzzer2, 4000, 1000); বিলম্ব (1000); noTone (buzzer1); noTone (buzzer2); বিলম্ব (1000); }

প্রিন্টিং টাইমস

পরিশেষে, আমাদের এলসিডি স্ক্রিনে অ্যালার্মের সময় এবং রিয়েল টাইম প্রিন্ট করতে হবে।

তারিখের সময় এখন = rtc.now ();

int ঘন্টা = (এখন। ঘন্টা ()); int mins = (now.minute ()); / * অ্যালার্ম টাইম 00:00 ফরম্যাটে */ lcd.setCursor (10, 0); lcd.print (ahours1); lcd.setCursor (13, 0); lcd.print (amins1); lcd.setCursor (0, 2); lcd.print (ahours2); lcd.setCursor (3, 2); lcd.print (amins2); lcd.setCursor (10, 2); lcd.print (ahours3); lcd.setCursor (13, 2); lcd.print (amins3); / * RTC */ lcd.setCursor থেকে প্রদর্শন সময় (0, 0); lcd.print (ঘন্টা); lcd.print (":"); lcd.print (মিনিট);

ধাপ 7: ইলেকট্রনিক্স

ইলেকট্রনিক্স
ইলেকট্রনিক্স
ইলেকট্রনিক্স
ইলেকট্রনিক্স
ইলেকট্রনিক্স
ইলেকট্রনিক্স

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

আপনার ব্রেডবোর্ডের শেষ প্রান্তে আপনার নোডএমসিইউ সংযুক্ত করতে শুরু করুন। তারপরে আপনাকে আপনার অন্যান্য সমস্ত ইলেকট্রনিক্সকে নোডএমসিইউ এবং রুটিবোর্ডের সাথে সংযুক্ত করতে হবে। আপনার এলসিডি স্ক্রিনকে এসসিএল -এর জন্য পিন ডি 1 এবং এসডিএ -র জন্য ডি -২ এর সাথে সংযুক্ত করে শুরু করুন। এলসিডি ব্যবহারকারীকে বর্তমান সময় এবং সেট অ্যালার্মের সময় দেখতে দেবে। এখন আপনার বাজারগুলিকে D3 এবং D6 পিনের সাথে সংযুক্ত করুন। গুঞ্জনগুলি অ্যালার্ম ব্যবহারকারীকে সতর্ক করার অনুমতি দেবে যখন সময় সেট পৌঁছে গেছে। অ্যালার্ম বন্ধ করার জন্য আপনাকে এখন একটি বোতাম সংযুক্ত করতে হবে। D4 পিন করতে এই বোতামটি সংযুক্ত করুন। এখন আপনি আপনার রিয়েল-টাইম ঘড়িটি রুটিবোর্ডের সাথে সংযুক্ত করবেন। রিয়েল-টাইম ঘড়িটি ওয়্যার করুন যাতে এটি একই এসডিএ এবং এসসিএল পিন ব্যবহার করে যা এলসিডি ডিসপ্লের জন্য ব্যবহৃত হয়।

ধাপ 8: চূড়ান্ত

ফাইনাল
ফাইনাল

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

প্রস্তাবিত: