সুচিপত্র:

ইউসিএল - IIOT গ্রিনহাউস: 11 টি ধাপ
ইউসিএল - IIOT গ্রিনহাউস: 11 টি ধাপ

ভিডিও: ইউসিএল - IIOT গ্রিনহাউস: 11 টি ধাপ

ভিডিও: ইউসিএল - IIOT গ্রিনহাউস: 11 টি ধাপ
ভিডিও: Jamie Carragher blew his big moment 💀 #ucl #championsleague 2024, জুলাই
Anonim
ইউসিএল - আইআইওটি গ্রিনহাউস
ইউসিএল - আইআইওটি গ্রিনহাউস

এই প্রকল্পটি গ্রীনহাউসের সাথে আমাদের আগের প্রকল্পের একটি সম্প্রসারণ (https://www.instructables.com/id/EAL-EMBEDDED-GREE…)।

এই প্রকল্পে আমরা একটি ডাটাবেস যোগ করেছি, যেখানে আমরা আমাদের সমস্ত ডেটা লগ ইন করি এবং তারপর বৃহত্তর ওভারভিউয়ের জন্য নোড-রেড দিয়ে এটি কল্পনা করি।

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

ডেটালগিন ছাড়াও আমরা গ্রীনহাউসে কোন প্রোফাইলটি সক্রিয় এবং তা দূর থেকে নিয়ন্ত্রণ করতে সক্ষম।

তারপর আমরা ম্যানুয়ালি পাম্প এবং ফ্যান নিয়ন্ত্রণ করতে সক্ষম।

ধাপ 1: ইনস্টলেশন গাইড

চালুর নির্দেশিকা
চালুর নির্দেশিকা

প্রথম ধাপ হল সমস্ত বিভিন্ন উপাদান ইনস্টল করা।

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

ব্যবহৃত হার্ডওয়্যার:

  • আরডুইনো (রাস্পবেরি পাই)
  • রাস্পবেরি পাই 3 বি+
  • মাটির হাইগ্রোমিটার (আরডুইনো)
  • DHT11 সেন্সর (Arduino)
  • HG-320 সাবমার্সিবল ওয়াটার পাম্প (রিলে)
  • 5V রিলে (Arduino)
  • একটি কম্পিউটার ফ্যান (রিলে)
  • 230V পাওয়ার সাপ্লাই (পাম্প)

ব্যবহৃত সফটওয়্যার:

  • রাস্পবিয়ান (রাস্পবেরি পাই এর জন্য ওএস)
  • Arduino IDE
  • পাইথন (রাস্পবেরি পাই)- পাই সিরিয়াল- মাইএসকিউএল ক্লায়েন্ট
  • নোড-রেড (রাস্পবেরি পাই)- পাইথনশেল- সামারাইজার- মাইএসকিউএল- ড্যাশবোর্ড
  • মাইএসকিউএল সার্ভার (freemysqlhosting.net)

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

তারপরে আপনাকে আপনার রাস্পবেরি পাইতে রাস্পবিয়ান ওএস ইনস্টল করতে হবে। তারপরে আপনাকে পাইথন ইনস্টল করতে হবে এবং তারপরে পাইথন লাইব্রেরিগুলি ইনস্টল করতে হবে।

পরবর্তী ধাপ হল রাস্পবেরি পাইতে নোড-রেড ইনস্টল করা, এবং তারপরে প্যালেট ম্যানেজারে নেভিগেট করুন এবং পূর্বে বর্ণিত মডিউলগুলি ইনস্টল করুন।

তারপর এই সাইটে যান ফ্রি মাইএসকিউএল সার্ভার এবং একটি ফ্রি মাইএসকিউএল সার্ভার তৈরি করুন।

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

ধাপ 2: নিয়ন্ত্রণ প্রদর্শন

Image
Image

ধাপ 3: প্রকল্পে ব্যবহৃত অংশ/সফ্টওয়্যারের তালিকা

গ্রিনহাউস তৈরিতে আমরা নিম্নলিখিত প্রযুক্তি ব্যবহার করেছি

  • আরডুইনো
  • রাস্পবেরি পাই
  • নোড-লাল
  • পাইথন
  • PHPMyAdmin

ধাপ 4: I/0 তালিকা

তারের ডায়াগ্রাম
তারের ডায়াগ্রাম

ধাপ 5: তারের ডায়াগ্রাম

ধাপ 6: Arduino কোড

আরডুইনো কোড সেন্সর দ্বারা পরিমাপ করা ডেটা মুদ্রণ করে সিরিয়াল সংযোগে কাজ করে যেখানে এটি রাস্পবেরি পাই দ্বারা পড়ে এবং ডাটাবেসে স্থানান্তরিত হয়।

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

এছাড়াও আমরা বিলম্বের পরিবর্তে মিলিস ব্যবহার করার জন্য কোডটি আপগ্রেড করেছি যা পুরাতন বিলম্বের মাধ্যমে একটি বিরতির পরিবর্তে বোতাম এবং বাকি কোডগুলিকে সব সময় পড়তে সক্ষম করে।

ধাপ 7: রাস্পবেরি পাই 3 বি+

রাস্পবেরি পাই 3 বি+
রাস্পবেরি পাই 3 বি+

আমরা আমাদের আরডুইনোকে ইন্টারনেট এবং একটি মাইএসকিউএল ডাটাবেসের সাথে সংযুক্ত করার জন্য একটি রাস্পবেরি পাই 3 বি+ ব্যবহার করেছি। এটি আমাদের পক্ষে আমাদের সেন্সর থেকে ডেটা সঞ্চয় করা এবং শেষ ব্যবহারকারীর জন্য একটি ভিজ্যুয়াল ইন্টারফেস তৈরি করা সম্ভব করেছে। ইউজার ইন্টারফেসের জন্য আমরা ড্যাশবোর্ড প্যালেটের সাথে নোড-রেড ব্যবহার করেছি।

কিন্তু নোড-রেডে আমাদের সেন্সর ডেটা দেখানোর আগে, আমাদের একটি মাইএসকিউএল ডাটাবেসে ডেটা আপলোড করার একটি উপায় দরকার ছিল এবং এর জন্য আমরা একটি পাইথন স্ক্রিপ্ট তৈরি করেছি যা আমাদের রাস্পবেরি পাইতে চলবে।

ধাপ 8: পাইথন

পাইথন
পাইথন

পাইথন স্ক্রিপ্টটি Arduino থেকে আসা সিরিয়াল-যোগাযোগ থেকে তথ্য গ্রহণের জন্য ব্যবহৃত হয়। স্ক্রিপ্ট তারপর একটি মাইএসকিউএল ডাটাবেসে ডেটা পাঠায়।

আমরা দুটি লাইব্রেরি ব্যবহার করেছি, pyserial এবং mysqlclient।

তাই প্রথম ধাপ এই দুটি লাইব্রেরি ডাউনলোড করা হবে:

  1. পাই সিরিয়াল
  2. মাইএসকিউএল ক্লায়েন্ট

সিরিয়াল-কমিউনিকেশনের মাধ্যমে আরডুইনো থেকে ডেটা সংগ্রহের জন্য PySerial ব্যবহার করা হয়।

ডিভাইস = '/dev/ttyUSB0'

arduino = serial. Serial (ডিভাইস, 9600)

প্রথম লাইন আমাদের COM- পোর্ট সংজ্ঞায়িত করার জন্য ব্যবহার করা হচ্ছে। রাস্পবেরি পাইতে এটি /dev /ttyUSB0, যা আমরা Arduino এর জন্য ব্যবহার করি। আরডুইনোতে সিরিয়াল পোর্ট খোলার জন্য দ্বিতীয় লাইন। আমরা শুধু সংজ্ঞায়িত করি কোন COM- পোর্ট এবং কোন গতিতে সংযোগ চলছে।

বাকি কোড কিছুক্ষণের লুপে চলছে।

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

তাই ট্রাই ব্লকের ভিতরে আমাদের কোড আছে যা সিরিয়াল-কমিউনিকেশন পড়বে এবং তারপর আমাদের মাইএসকিউএল ডাটাবেসে পাঠাবে।

hygrolist = arduino.readlines (1)

templist = arduino.readlines (2) humidlist = arduino.readlines (3)

সুতরাং উপরের কোডটি সিরিয়াল-কমিউনিকেশনে লাইন পড়ার জন্য। কোডের শেষে নম্বরটি সিরিয়ালে পড়া লাইনটিকে সংজ্ঞায়িত করছে। সুতরাং এই লাইনগুলিকে বিভিন্ন ভেরিয়েবলে শ্রেণিবদ্ধ করা হচ্ছে।

যখন Arduino থেকে তথ্য প্রাপ্ত হয়, আমরা আমাদের MySQL সার্ভারে ডেটা পাঠানোর জন্য mysqlclient মডিউল ব্যবহার করি।

db = _mysql.connect (host = "sql7.freemysqlhosting.net", user = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")

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

db.query ("INSERTINTO` TempHumid` (`temp ',` humid`, `hygro`) VALUES (%s, %s, %s)" %(temp, humid, hygro))

তাই এখানে আমরা আমাদের DB সংযোগ গ্রহণ করি এবং একটি SQL প্রশ্ন করি। প্রশ্নটি বলে যে "টেম্পহুমিড" টেবিলের ভিতরে মানগুলি সন্নিবেশ করতে হবে এবং তারপরে "টেম্প", "আর্দ্র" এবং "হাইগ্রো" কলামগুলিতে প্রবেশ করতে হবে। শেষ অংশ “(%s, %s, %s)” হল স্ট্রিং ফরম্যাটিং এবং এটি ডাটাবেসকে এমন একটি ফরম্যাট দিতে ব্যবহার করা হয় যা এটি পড়তে পারে।

এবং এই সমস্ত ক্রিয়াকে একটি সময় লুপে রাখা হয়, যাতে আমরা মাইএসকিউএল সার্ভারে ডেটা পাঠাতে থাকি।

আপনি যদি সমস্ত কোড দেখতে চান তবে পাইথন স্ক্রিপ্টটি ডাউনলোড করুন (TempHumid.py)।

ধাপ 9: মাইএসকিউএল

মাইএসকিউএল
মাইএসকিউএল
মাইএসকিউএল
মাইএসকিউএল

মাইএসকিউএল সার্ভারের জন্য, আমরা www.freemysqlhosting.net এ একটি বিনামূল্যে পরিষেবা ব্যবহার করেছি। আমরা রাস্পবেরি পাইতে স্থানীয়ভাবে একটি সার্ভার তৈরি করতে পারতাম, কিন্তু ক্লাউড/ইন্টারনেটের সাথে এটি সম্পূর্ণরূপে সংযুক্ত করার জন্য আমরা বিনামূল্যে পরিষেবা দিয়েছিলাম।

আপনার মাইএসকিউএল অ্যাক্সেস করতে, আপনাকে phpmyadmin.co এ যেতে হবে এবং আপনার freemysqlhosting অ্যাকাউন্ট থেকে প্রমাণপত্রাদি দিয়ে লগইন করতে হবে।

যখন আপনি ভিতরে থাকবেন, তখন আপনাকে "টেম্পহুমিড" নামে একটি টেবিল তৈরি করতে হবে, এই টেবিলের ভিতরে আপনাকে "আইডি", "টেম্প", "আর্দ্র" এবং "হাইগ্রো" নামে 4 টি কলাম তৈরি করতে হবে। প্রথম কলাম (ID) আপনাকে A_I (অটো ইনক্রিমেন্ট) বক্সে টিক দিতে হবে। এটি যাতে আইডি কলাম প্রতিটি ডেটাসেটকে একটি আইডি দেয়। নিম্নলিখিত সমস্ত কলামগুলিকে একটি INT (পূর্ণসংখ্যা) হিসাবে সেট করতে হবে এবং মান মানটি NULL এ সেট করতে হবে।

ধাপ 10: নোড-লাল

নোড-লাল
নোড-লাল
নোড-লাল
নোড-লাল
নোড-লাল
নোড-লাল

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

আমাদের নোড-রেড প্রোগ্রামিং ইনস্টল করার জন্য, ধাপ 1 এ দেখুন এবং "Node-Red.docx" নামে ডকুমেন্টটি ডাউনলোড করুন। তারপরে উপরের ডান কোণে আমদানি ফাংশনের মাধ্যমে পাঠ্যটি নোড-রেডে কপি এবং পেস্ট করুন।

তারপরে আপনার মাইএসকিউএল ডিবি এর জন্য ডিবি সেটিংস পরিবর্তন করুন।

প্রস্তাবিত: