IOT

স্টোন ডিসপ্লে ব্যবহার করে ঘড়ি এবং হোম অটোমেশন

বিষয়বস্তু

  1. বিবরণ
  2. GUI ডিজাইন

3. সার্কিট ডায়াগ্রাম

  1. কোড
  2. ভিডিও

বিবরণ

এই প্রকল্পে আমরা একটি ঘড়ি এবং একটি অটোমেশন সিস্টেম ডিজাইন করতে যাচ্ছি যার সাহায্যে আমরা বাড়ির আলো চালু বা বন্ধ করতে পারি এবং ঘড়িও রয়েছে যা সময় এবং তারিখ দেখাবে৷

এ জন্য আমরা ব্যবহার করছি TFT প্রদর্শন (স্টোন-এইচএমআই), এই ডিসপ্লেতে একটি সফ্টওয়্যার রয়েছে যা একটি GUI সফ্টওয়্যার এই সাহায্যে আমরা ইন্টারফেস ডিজাইন করতে যাচ্ছি যাতে সেকশন ক্লক এবং অটোমেশন উভয়ই থাকবে৷ GUI সফ্টওয়্যার ডাউনলোড করুন এখানে ক্লিক করুন

ঘড়ির অংশের নকশা:-

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

আপনি বাম দিকে দেখতে পাচ্ছেন যে সমস্ত ছবি ছবি ফাইলের বিভাগে যোগ করা হয়েছে। এখন ইমেজ '14' এ ক্লিক করুন আপনি এই ইন্টারফেসটি পাবেন যেমন আপনি ছবিতে দেখছেন। এখন সময় সেট করার জন্য টাচ কনফিগারেশন থেকে 'RTC' নির্বাচন করুন। এবং তারিখ এবং সমস্ত কনফিগারেশন করুন এর জন্য প্রথমে 'পৃষ্ঠায়' ইমেজ নম্বর 6 হিসাবে যোগ করুন যা সেট করার সময় ব্যবহার করা হবে। এখন ইমেজ নম্বর 6-এ যান এবং সমস্ত বোতাম এবং তাদের কীগুলির মান যুক্ত করুন। এই বিন্যাসে হতে.

'1' - 0031-এর জন্য

'2' - 0031-এর জন্য

'3' - 0031-এর জন্য

'4' - 0031-এর জন্য

'5' - 0031-এর জন্য

'6' - 0031-এর জন্য

'7' - 0031-এর জন্য

'8' - 0031-এর জন্য

'9' - 0031-এর জন্য

'0' - 0030-এর জন্য

'OK'- 00F1 এর জন্য

এর পরে সমস্ত বোতামের জন্য ইমেজ nimber-7 হিসাবে বোতাম প্রভাব যুক্ত করুন তাই এই অংশ দ্বারা ঘড়ি সেট আপ করা হবে। আসুন ঘড়ির হাত তৈরি করতে আরও এগিয়ে যাই।

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

অটোমেশন পার্ট ডিজাইনিং:-

এর জন্য অটোমেশন অংশ ডিজাইন করা যাক আমাদের একটি ঠিকানায় নির্দিষ্ট কী মান পাঠাতে Arduino প্রয়োজন, এখানে আমরা সমস্ত কী মানের জন্য '0001' ব্যবহার করছি। ফ্যান(ON) বোতামের জন্য আমরা '0001' কী মান পাঠাচ্ছি এবং ফ্যানের জন্য (OFF) ) আমরা '0002' কী ভ্যালু পাঠাচ্ছি একইভাবে আমরা সমস্ত অ্যাপ্লায়েন্সের জন্য সমস্ত নির্দিষ্ট মানের জন্য পাঠাচ্ছি৷ এখানে আমরা ঘড়ির GUI-তে স্যুইচ করার জন্য একটি বোতামও যুক্ত করেছি যা এই ইন্টারফেস থেকে ক্লক ইন্টারফেসে যেতে সাহায্য করবে৷

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

বর্তনী চিত্র

আপনি সংযোগে দেখতে পাচ্ছেন যে তিনটি এলইডি লাইট-1, লাইট-2 এবং ফ্যানের জন্য এখানে আমরা শুধুমাত্র এলইডি ব্যবহার করছি কিন্তু আপনি এতে প্রকৃত যন্ত্রপাতি সংযোগ করতে পারেন। লাইট-1 আরডুইনোর পিন-ডি6-এর সাথে সংযোগ করুন, আলো- 2 আরডুইনোর পিন-D7-এর সাথে কানেক্ট করুন, আরডুইনোর সাথে D5-এর সাথে অনুরূপ ফ্যান কানেক্ট করুন। এবং সার্কিট ডায়াগ্রাম অনুযায়ী Rx এবং Tx-এর জন্য কানেকশন করুন। এখানে আমরা Arduino-এর পিন-2-এর সাথে Tx-কে পিন-3 এবং Rx-এর সাথে কানেক্ট করেছি। আরডুইনো কোড অনুযায়ী। কোডের সাথে এটি কীভাবে কাজ করছে তা আরও এগিয়ে নেওয়া যাক।

সিরিয়াল কমিউনিকেশন বিভিন্ন ধরনের আছে. আপনি যখন একটি প্রজেক্টে একটি Arduino বোর্ড ব্যবহার করেন তখন আপনি Arduino বোর্ডের ভিতরে UART থেকে Arduino সফ্টওয়্যার সিরিয়াল Rx Tx হিসাবে স্ট্যান্ডার্ড সিরিয়াল পিনগুলি বেছে নিতে পারেন, তাই একে সিরিয়াল TTL বলা হয়। সেক্ষেত্রে, আমরা Hardware serial.h Library ব্যবহার করছি, তবে কিছু অতিরিক্ত পিন Rx বা Tx হিসেবে কাজ করতে পারে। উদাহরণস্বরূপ, এসপিআই কমিউনিকেশন পিনগুলি একটি MISO, MOSI এবং সিলেক্ট (SC) হিসাবে কাজ করতে পারে, তবে এগুলি এমন পিন যা ডিজিটাল ইনপুট বা ডিজিটাল আউটপুট হিসাবে কাজ করতে পারে, অথবা আপনার প্রয়োজন হলে আপনি সফ্টওয়্যার সিরিয়াল ব্যবহার করে সেই পিনগুলিকে Rx, Tx হিসাবে ব্যবহার করতে পারেন জ লাইব্রেরি। 

কোড কিভাবে কাজ করে তা জানতে আসুন আরও এগিয়ে যাই। 

কোড:- 

#অন্তর্ভুক্ত //সফ্টওয়্যার সিরিয়াল লাইব্রেরি

SoftwareSerial max232(2,3);

char তথ্য; 

স্ট্রিং মিস্ট্রিং;

int f = 5; // ফ্যানের জন্য পিন

int l1 = 6; // আলোর জন্য পিন-1

int l2 = 7; // আলো-2 এর জন্য পিন

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

{

Serial.begin(115200); // এখানে বাউড্রেট হল 115200

max232.begin(115200);

পিনমোড(f, আউটপুট);     

digitalWrite(f, LOW); 

পিনমোড (l1, আউটপুট);    

digitalWrite(l1, LOW);

পিনমোড (l2, আউটপুট);    

digitalWrite(l2, LOW);

}

অকার্যকর লুপ ()

{

যদি (max232.available()>0)

 {

   ডেটা = max232.read();

   mystring = mystring + বাইট(ডেটা); 

   বিলম্ব (10);

 }

অন্যথায় যদি (mystring.endsWith(“101”)) // ফ্যান চালু করার শর্ত

  {

    mystring = ""; 

   digitalWrite(f,HIGH);

  }

অন্যথায় যদি  (mystring.endsWith(“102”)) // ফ্যান বন্ধ করার শর্ত

  {

   mystring = ""; 

   ডিজিটাল রাইট(f,LOW);

  }

অন্যথায় যদি  (mystring.endsWith(“103”)) // লাইট-1 চালুর শর্ত

  {

  mystring = ""; 

  digitalWrite(l1,HIGH);

  }

অন্যথায় যদি  (mystring.endsWith(“104”)) // লাইট-1 বন্ধের শর্ত

  {

   mystring = ""; 

   ডিজিটাল রাইট(l1,LOW);

  }

অন্যথায় যদি  (mystring.endsWith(“105”)) // লাইট-2 চালুর শর্ত

  {

  mystring = ""; 

  digitalWrite(l2,HIGH);

  }

অন্যথায় যদি  (mystring.endsWith(“106”)) // লাইট-2 বন্ধের শর্ত

  {

   mystring = ""; 

   ডিজিটাল রাইট(l2,LOW);

  }

অন্যথায় যদি  (mystring.endsWith(“107”)) //সকল যন্ত্রপাতি চালুর জন্য শর্ত

  {

   mystring = ""; 

   digitalWrite(l1,HIGH);

   digitalWrite(l2,HIGH);

   digitalWrite(f,HIGH);

  }

অন্যথায় যদি  (mystring.endsWith(“108”)) //সকল যন্ত্রপাতি বন্ধের শর্ত

  {

   mystring = ""; 

   ডিজিটাল রাইট(l1,LOW);

   ডিজিটাল রাইট(l2,LOW);

   ডিজিটাল রাইট(f,LOW);

  }

}

কাজ করা:-

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

অকার্যকর লুপ বিভাগে ডিভাইসগুলির জন্য চারটি শর্ত রয়েছে৷ প্রথম শর্ত হল ফ্যান চালু এবং বন্ধ করার জন্য এখানে আমরা চালু অবস্থার জন্য '0001' কী মান পাঠাচ্ছি এবং '0002' ঠিকানার উপর অফ কন্ডিশনের জন্য '0001' পাঠাচ্ছি এই ঠিকানাটি সমস্ত ডিভাইসের জন্য একই। লাইট-1-এর জন্য দ্বিতীয় ডিভাইসের জন্য আমরা অন কন্ডিশনের জন্য '0003' এবং অফ কন্ডিশনের জন্য '0004' পাঠাচ্ছি, একইভাবে লাইট-2 '0005' চালুর জন্য এবং '0006' অফ কন্ডিশনের জন্য। এই ভাবে এই শর্ত পৃথক ডিভাইসের জন্য কাজ করছে.

সব ডিভাইস একবারে বন্ধ বা সুইচ অন করার জন্য আরও একটি শর্ত রয়েছে এর জন্য আমরা চালু করার জন্য '0007' এবং অফের জন্য '0008' ব্যবহার করছি।

আউটপুট ভিডিও:-

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

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

কোড

//এই প্রকল্প সম্পর্কে আরও তথ্যের জন্য ভিজিট করুন:- wwww.electrocircuit.net //

# অন্তর্ভুক্ত

SoftwareSerial max232(2,3);

char তথ্য; 

স্ট্রিং মিস্ট্রিং;

int f = 5; 

int l1 = 6; 

int l2 = 7;  

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

{

সিরিয়াল.বেগিন (115200); 

max232.begin(115200);

পিনমোড(f, আউটপুট); //////// লাল///////

digitalWrite(f, LOW); 

পিনমোড (l1, আউটপুট); ///////সবুজ//////

digitalWrite(l1, LOW);

পিনমোড(l2, আউটপুট); //////নীল///////

digitalWrite(l2, LOW);

}

অকার্যকর লুপ ()

{

যদি (max232.available()>0)

 {

   ডেটা = max232.read();

   mystring = mystring + বাইট(ডেটা); 

   বিলম্ব (10);

 }

অন্যথায় যদি (mystring.endsWith(“101”))

  {

    mystring = ""; 

   digitalWrite(f,HIGH);

  }

অন্যথায় যদি (mystring.endsWith(“102”))

  {

   mystring = ""; 

   ডিজিটাল রাইট(f,LOW);

  }

অন্যথায় যদি (mystring.endsWith(“103”))

  {

  mystring = ""; 

  digitalWrite(l1,HIGH);

  }

অন্যথায় যদি (mystring.endsWith(“104”))

  {

   mystring = ""; 

   ডিজিটাল রাইট(l1,LOW);

  }

অন্যথায় যদি (mystring.endsWith(“105”))

  {

  mystring = ""; 

  digitalWrite(l2,HIGH);

  }

অন্যথায় যদি (mystring.endsWith(“106”))

  {

   mystring = ""; 

   ডিজিটাল রাইট(l2,LOW);

  }

অন্যথায় যদি (mystring.endsWith(“107”))

  {

   mystring = ""; 

   digitalWrite(l1,HIGH);

   digitalWrite(l2,HIGH);

   digitalWrite(f,HIGH);

  }

অন্যথায় যদি (mystring.endsWith(“108”))

  {

   mystring = ""; 

   ডিজিটাল রাইট(l1,LOW);

   ডিজিটাল রাইট(l2,LOW);

   ডিজিটাল রাইট(f,LOW);

  }

}

সূত্র: প্লেটো ডেটা ইন্টেলিজেন্স