সুচিপত্র:

যোগাযোগহীন পানির ফোয়ারা: 9 টি ধাপ (ছবি সহ)
যোগাযোগহীন পানির ফোয়ারা: 9 টি ধাপ (ছবি সহ)

ভিডিও: যোগাযোগহীন পানির ফোয়ারা: 9 টি ধাপ (ছবি সহ)

ভিডিও: যোগাযোগহীন পানির ফোয়ারা: 9 টি ধাপ (ছবি সহ)
ভিডিও: দৈত্যরা মেয়েটিকে নিয়ে গেলো | Movie Explained in Bangla | Fantasy Movie | Cinemon 2024, জুলাই
Anonim
যোগাযোগহীন পানির ফোয়ারা
যোগাযোগহীন পানির ফোয়ারা

একজন এমসিটি ছাত্র হিসেবে আমার প্রথম বছরের শেষের দিকে আমাকে একটি প্রকল্প তৈরির দায়িত্ব দেওয়া হয়েছিল যাতে সারা বছর ধরে কোর্স থেকে যে সমস্ত দক্ষতা আমি তুলে নিয়েছিলাম তা ছিল।

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

এই প্রজেক্টটি একটি দূরত্ব সেন্সর ব্যবহার করে যাতে পানির আউটপুটের নিচে কাপ বা গ্লাস রাখা হয়েছে কিনা তা সনাক্ত করা যায়, তারপর ঝর্ণা 60 সেকেন্ড (100 মিলি / মিনিট) জল আউটপুট করতে এগিয়ে যাবে। এটি আরও সামঞ্জস্যপূর্ণ করার জন্য কারণ গ্লাসটি সরানো হয়েছে কিনা তা সনাক্ত করা একটি কাজের জন্য খুব কঠিন/ধীর বলে প্রমাণিত হয় যার কারণে একটি টাইমার স্থাপন করা হয়েছিল। আপনার গ্লাসটি 100 মিলি পানিতে ভরে যাওয়ার পরে আপনি 5 সেকেন্ড অপেক্ষা করতে পারেন এবং যদি গ্লাসটি এখনও দূরত্ব সেন্সরের সামনে থাকে তবে এটি অন্য সময় পূরণ করতে এগিয়ে যাবে (এর অর্থ হল দুটি ভিন্ন ভরাটের মধ্যে 5 সেকেন্ডের সময়সীমাও রয়েছে আইটেম)।

সরবরাহ

উপাদান

1x রাস্পবেরিপি রঙ LEDs (নীল, হলুদ, লাল)- 1x LCD1602- 1x সক্রিয় বুজার- 1x PCF8574- 1x MCP3008- 1x জল পাম্প (একটি 12v peristaltic পাম্প ব্যবহার করা হয়েছিল, এই আইটেমের লিঙ্ক)

- 1x ডিসি পাওয়ার সাপ্লাই (12v, 600mAh)- 3x দাগযুক্ত 1x পাওয়ার ইট- 3x ব্রেডবোর্ড (আপনি সম্ভবত কম ব্যবহার করতে পারেন)- রাস্পবেরি GPIO পিনের জন্য T-cobbler- T-cobbler কেবল (pi এবং cobbler এর মধ্যে সংযোগের জন্য)

ব্যবহৃত উপকরণ এবং সরঞ্জাম

- নিম্নলিখিত ড্রিল বিট সঙ্গে একটি ড্রিল:

- 4 মিমি (স্ক্রুগুলির জন্য প্রাক -ড্রিল গর্ত) - 15 মিমি (দূরত্ব সেন্সরের জন্য গর্ত ড্রিল করতে)

- যেকোনো স্ক্রু ড্রাইভার- 45 মিমি লম্বা 30 টি স্ক্রু- 20 মিমি এর 6 টি স্ক্রু- দরজার জন্য 2 টি কব্জি

ধাপ 1: সার্কিট একত্রিত করা

সার্কিট একত্রিত করা
সার্কিট একত্রিত করা
সার্কিট একত্রিত করা
সার্কিট একত্রিত করা
সার্কিট একত্রিত করা
সার্কিট একত্রিত করা

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

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

আমি নীচের সার্কিটের রুটিবোর্ড এবং পরিকল্পিত দৃশ্য যুক্ত করেছি।

ধাপ 2: আমাদের রাস্পবেরিপি সেট করা

আমাদের রাস্পবেরিপি সেটআপ করার জন্য, আমরা রাস্পবেরি সাইট থেকে ইমেজিং সফটওয়্যারটি ডাউনলোড করব, এর সাহায্যে আপনি আপনার পছন্দমত রাস্পবিয়ানের সংস্করণটি ডাউনলোড করতে পারেন এবং আপনার জন্য আপনার SDCARD চিত্রটি তৈরি করতে পারেন। এই টুলটি তার কাজ শেষ করার পরে আপনি উইন্ডোজ এক্সপ্লোরারে SDCARD খুলতে পারেন, আপনি আপনার রাস্পবেরিপি এর বুট পার্টিশন দেখতে সক্ষম হবেন। এখানে আমরা cmdline.txt নামে একটি ফাইল খুঁজে পাব (এই ফাইলটি নোটপ্যাডে খুলবেন না, এটি নোটপ্যাড ++ বা অন্য কোন IDE তে খুলুন)। আমরা এই ফাইলের শেষে ip = 169.254.10.1 যোগ করব যাতে আমরা আমাদের ডিভাইসের সাথে ইথারনেটের মাধ্যমে সংযুক্ত হতে পারি (নিশ্চিত করুন যে আপনি আপনার ফাইলের শেষে কোন ENTERS যোগ করবেন না বা আপনার সমস্যা হবে)।

এখন আপনি আপনার RaspberryPi এ আপনার SDCARD andুকিয়ে বুট করতে পারেন, Pi কে আপনার কম্পিউটারের সাথে সংযুক্ত করুন এবং SSH এর মাধ্যমে আপনার Pi এর সাথে সংযোগ স্থাপনের জন্য Putty ব্যবহার করুন। আমি পুটি ব্যবহার করার পরিবর্তে আমার পাইয়ের সাথে সংযোগ করার জন্য নিম্নলিখিত কমান্ডটি ব্যবহার করি। "ssh [email protected]" এটি সময় শেষ হতে পারে, তাই ধৈর্য ধরুন এবং Pi বুট করার জন্য অপেক্ষা করুন। একবার পাসওয়ার্ডের জন্য অনুরোধ করা হলে আমরা "রাস্পবেরি" এর ডিফল্ট পাসওয়ার্ড পূরণ করব। আপনার রাস্পবেরি পাই অ্যাক্সেস করতে অসুস্থ অভিপ্রায়যুক্ত কাউকে আটকানোর জন্য লগ ইন করার পরে এই পাসওয়ার্ডটি পরিবর্তন করতে ভুলবেন না।

আমরা এখন আমাদের কোডের জন্য প্রয়োজনীয় কার্যকারিতা প্রদানের জন্য আমাদের Pi কনফিগার করব কনফিগারেশন মেনু খুলতে "sudo raspi-config" ব্যবহার করুন এবং এখানে আমরা ইন্টারফেসিং বিকল্পগুলিতে যাব।

এখানে আমরা নিম্নলিখিত বিকল্পগুলি চালু করব:- SPI- I2C

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

প্যাকেজ: (কমান্ডগুলি ক্রম অনুসারে চালান যেমন তারা এখানে উল্লেখ করা হয়েছে)

আমাদের Pi -sudo apt আপডেট এবং & apt আপগ্রেড -y এর জন্য সর্বশেষ আপডেট পেতে নিম্নলিখিতগুলি

আমাদের MySQL সার্ভার এবং ওয়েব সার্ভার ইনস্টল করুন- sudo apt mariadb-server apache2 ইনস্টল করুন

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

আপনি উপরের সবগুলো করার পর আমাদের আমাদের ডাটাবেসের জন্য একটি ব্যবহারকারী তৈরি করতে হবে। আপনার মাইএসকিউএল সার্ভারে লগ ইন করার জন্য "sudo mysql -u root" ব্যবহার করুন, এখানে আমরা db_admin নামক একজন ব্যবহারকারী তৈরি করব তার নিজ নিজ পাসওয়ার্ড দিয়ে, রাখুন এই পাসওয়ার্ডটি পরবর্তী নির্দেশাবলীর জন্য কোথাও উল্লেখ করা হয়েছে। সমস্ত অনুদানের উপর অনুদান দিন।

মাইএসকিউএল টার্মিনাল থেকে বেরিয়ে আসার জন্য "\ q" কমান্ডটি ব্যবহার করুন।

পাইথন প্যাকেজ: এগিয়ে যাওয়ার আগে আমাদের এখনও কিছু পাইথন প্যাকেজ ইনস্টল করতে হবে, নিখুঁত অভিজ্ঞতার জন্য সবকিছু আছে কিনা তা নিশ্চিত করতে নীচের কমান্ডটি চালান।

sudo pip3 Flask Flask-Cors Flask-SocketIO gevent gevent-websocket greenlet spi SPI-Pyspidev ইনস্টল করুন

পাশাপাশি নিম্নলিখিত মাইএসকিউএল পাইথন প্যাকেজগুলি সংযুক্ত করুন

সব ঠিক থাকলে আপনি এখন আপনার ওয়েব ব্রাউজারে নিচের ঠিকানা https://169.254.10.1/ দিয়ে আপনার Pi পরিদর্শন করতে পারেন

ধাপ 3: ব্যাকএন্ড সেট আপ করা

ব্যাকএন্ড সেট আপ করা হচ্ছে
ব্যাকএন্ড সেট আপ করা হচ্ছে

এখানে আমি ব্যাখ্যা করতে যাচ্ছি যে আপনি কিভাবে ব্যাকএন্ড নিজে সেটআপ করতে পারেন, প্রথমে নিচের থেকে rar ফাইলটি ডাউনলোড করুন, এটি কিছু অস্থায়ী ডিরেক্টরিতে আনরার করুন। নিচের শংসাপত্রগুলির সাথে FileZilla বা WinSCP- এর সাথে আপনার RaspberryPi- এর সাথে সংযোগ করুন:

IP: 169.254.10.1 ব্যবহারকারী: piPassword: রাস্পবেরি (যদি আপনি পাসওয়ার্ড পরিবর্তন করেন তবে এখানেও করুন

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

পরবর্তী ধাপের জন্য আপনার FTP প্রোগ্রাম খোলা রাখুন!

এখন আপনার এসএসএইচ সংযোগের সাথে আপনার কমান্ড প্রম্পটটি আবার খুলুন কারণ আমাদের ওয়েব সার্ভারে কিছু পরিবর্তন করতে হবে যাতে ফ্রন্টএন্ড ব্যাকএন্ডের সাথে যোগাযোগ করতে পারে। ন্যানো /etc/apache2/sites-available/000-default.conf

ডকুমেন্টরুট এর নিচে নিচের লাইনগুলো আমরা যে কনফিগ ফাইলে খুলেছি তা যোগ করুন: ProxyPass/api/https://127.0.0.1:5000/api/ProxyPassReverse/api/https://127.0.0.1:5000/api/

আপনি একটি উদাহরণের জন্য সংযুক্ত ছবিটি দেখতে পারেন।

ধাপ 4: ফ্রন্টএন্ড সেট আপ করা

আমাদের ফাইল ট্রান্সফার করার আগে আমাদের ফ্রন্টএন্ড ফাইল ট্রান্সফার করা শুরু করার আগে আমাদের কিছু করতে হবে। আপনার পূর্বে করা SSH কানেকশনের সাথে আপনার কমান্ড প্রম্পটটি খুলুন এবং আমাদের RaspberryPi এর রুট ব্যবহারকারীর কাছে যাওয়ার জন্য নিচের কমান্ডটি ব্যবহার করুন: "sudo su -"

এর পরে আমরা নিম্নলিখিত কমান্ড দিয়ে আমাদের রুট ব্যবহারকারীর পাসওয়ার্ড পরিবর্তন করতে পারি: "passwd" এটি আপনাকে একটি নতুন পাসওয়ার্ড ইনপুট করতে বলবে, এটি করার পরে আপনি আপনার FTP প্রোগ্রামে ফিরে যেতে পারেন এবং আপনার রুট শংসাপত্র দিয়ে লগইন করতে পারেন:

আইপি: 169.254.10.1 ব্যবহারকারী: rootPassword:

নিচে থেকে rar ফাইলটি ডাউনলোড করুন এবং এটি একটি অস্থায়ী ফোল্ডারে আনরার করুন, আপনি এই ফাইলগুলিকে আপনার RaspberryPi এ নিম্নলিখিত ডিরেক্টরিতে স্থানান্তর করতে পারেন/var/www/html/, এটি করার পরে আপনি http: /169.254.10.1, আপনি এখনও ইন্টারঅ্যাক্ট করতে পারবেন না কারণ ব্যাকএন্ড এখনও চলছে না, আমি আপনাকে এই গাইডে পরে দেখাব কিভাবে এটি করতে হয়।

ধাপ 5: আমাদের প্রকল্পের জন্য ডাটাবেস আমদানি করা

আমাদের প্রকল্পের জন্য ডাটাবেস আমদানি করা
আমাদের প্রকল্পের জন্য ডাটাবেস আমদানি করা
আমাদের প্রকল্পের জন্য ডাটাবেস আমদানি করা
আমাদের প্রকল্পের জন্য ডাটাবেস আমদানি করা

আপনার পছন্দের মাইএসকিউএল সার্ভার ম্যানেজমেন্ট প্রোগ্রামটি খুলুন এবং আপনার রাস্পবেরি পাই এর সাথে আমাদের ধাপ 2 এ তৈরি শংসাপত্রগুলির সাথে সংযুক্ত করুন।

নিচে থেকে ডাটাবেস ডাম্পটি ডাউনলোড করুন এবং এটি যেমন আপনি স্বাভাবিকভাবে আমদানি করবেন, মাইএসকিউএল ওয়ার্কবেঞ্চে আপনি ফাইল> এসকিউএল স্ক্রিপ্ট খুলুন এবং আপনার ডাউনলোড করা ডাটাবেস ডাম্প নির্বাচন করুন। ডাটাবেস তৈরি করা উচিত।

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

ধাপ 6: আমাদের প্রকল্প শুরু করা

শুরু হচ্ছে আমাদের প্রকল্প
শুরু হচ্ছে আমাদের প্রকল্প
শুরু হচ্ছে আমাদের প্রকল্প
শুরু হচ্ছে আমাদের প্রকল্প

আমরা আমাদের প্রকল্প শুরু করার আগে আমাদের config.py ফাইলে ডাটাবেস শংসাপত্রগুলি পরিবর্তন করতে হবে, যদি আপনি এই নির্দেশিকা ঠিক যেমন নির্দেশাবলী অনুসরণ করেন তাহলে আপনি /home/pi/Documents/Backend/src/config.py এর অধীনে এটি খুঁজে পেতে পারেন এখানে আমাদের db_config ভেরিয়েবলের শংসাপত্রগুলি পরিবর্তন করতে হবে যা আমরা আমাদের ডাটাবেসের জন্য আগে তৈরি করেছি। আমি নীচের এই ফাইলে আপনি কি দেখতে পাবেন তার একটি উদাহরণ যোগ করেছি।

তারপরে আমরা একটি.service ফাইল যোগ করব এই ফাইলটি নিশ্চিত করবে যে আমাদের প্রকল্পটি যখন রাস্পবেরিপি শুরু হবে তখন নিশ্চিত করুন যে আপনি ব্যাকএন্ড ফাইলগুলি কোথায় ইনস্টল করেছেন তার যথাযথভাবে ডিরেক্টরি পরিবর্তন করুন। সার্ভিস ফাইল তৈরি করতে নিচের কমান্ডটি ব্যবহার করুন:

[ইউনিট] বর্ণনা = পানি সরবরাহকারী = mysql.service

[পরিষেবা] টাইপ = simpleRestart = alwaysRestartSec = 1User = piExecStart =/usr/bin/python3 /home/pi/Documents/Backend/index.py

[ইনস্টল করুন] WantedBy = multi-user.target

আপনি যেখানে আপনার ব্যাকএন্ড ফাইল ইন্সটল করেছেন সেখানে /home/pi/Documents/Backend/index.py যেখানে লাইনটি সংশোধন করুন, যদি আপনি এটি সঠিকভাবে না করেন তবে প্রকল্পটি সঠিকভাবে শুরু হবে না! আমি নীচে একটি উদাহরণ ফাইল যোগ করব।

আপনি এটি করার পরে এবং টেক্সট এডিটর থেকে বেরিয়ে যাওয়ার পরে আমরা নিম্নলিখিত কমান্ডগুলি দিয়ে পরিষেবাটি সক্ষম করতে পারি:- sudo systemctl daemon-reload- sudo systemctl dispenser- sudo systemctl start dispenser

এবং অতিরিক্ত হিসাবে আমরা চালাতে পারি:

ধাপ 7: কেস

কেস
কেস
কেস
কেস
কেস
কেস
কেস
কেস

অভিনন্দন আমরা প্রায় সেখানে আছি, আমি কিছু ছবি যুক্ত করব যা আমার প্রকল্পের জন্য আমি যে মাত্রাগুলি ব্যবহার করেছি তা সঠিকভাবে দেখাবে, আমি 18mm পুরু MDF প্লেট ব্যবহার করেছি, আপনি allyচ্ছিকভাবে একটি ভিন্ন বেধ ব্যবহার করতে পারেন। আমার আবরণ আপনার ডিজাইন করার জন্য একটি নির্দেশিকা হিসাবে ব্যবহার করা যেতে পারে অথবা আপনি যা তৈরি করেছেন তা আপনি পুনরায় তৈরি করতে পারেন। (যদি আপনি MDF এর একটি ভিন্ন পুরুত্ব ব্যবহার করেন তবে আমার অঙ্কনগুলি আপনাকে আর আমার নকশা তৈরি করতে দেবে না, এটি মানিয়ে নিতে ভুলবেন না!) আমার তৈরি করা প্যানেলগুলি:- 32cm এর 42cm এর 2 প্যানেল (পাশের প্যানেল)- 24cm এর 1 প্যানেল 32cm (নিচের প্লেট)- 24cm দ্বারা 16cm এর 2 প্যানেল (সামনে প্লেট যেখানে LCD থাকে এবং প্রতিবেশী প্লেট)- 28cm এর 1 প্যানেল 24cm (মধ্যম প্লেটটি সামনে থেকে দেখা যায়)- 30cm এর 1 প্যানেল 24cm (উপরের প্লেট)

ধাপ 8: চূড়ান্ত পণ্যটির প্রশংসা করুন

চূড়ান্ত পণ্যের প্রশংসা করুন
চূড়ান্ত পণ্যের প্রশংসা করুন
চূড়ান্ত পণ্যটির প্রশংসা করুন
চূড়ান্ত পণ্যটির প্রশংসা করুন

আপনি শেষের দিকে পৌঁছে গেছেন এবং এখন আশা করছি পুরো বিষয়টিকে বাস্তব করে তুলতে পেরেছেন। আপনি যদি কেবল একজন পথচারী হয়ে পড়েন, স্বাগত জানাই, শেষ ধাপ পর্যন্ত পড়ার জন্য আপনাকে ধন্যবাদ!

আমি এই প্রকল্পে প্রচুর রক্ত, ঘাম এবং অশ্রু ব্যয় করেছি তাই যদি আপনি মন্তব্য করেন তবে আমি এটির প্রশংসা করব, এটি উন্নত করার জন্য যে কোনও সমালোচনা স্বাগত!

ধাপ 9: সমস্যা

আমি প্রকল্পটিকে তার বর্তমান অবস্থায় একটি কার্যকরী প্রোটোটাইপ হিসাবে রাখব যা অনেক বেশি উন্নতি দেখতে পারে।

ব্যাকএন্ডের কোড বেস এমনভাবে তৈরি করা হয়েছে যে একটি মাস্টার স্লেভ রিলেশন পুরোপুরি তৈরি করা যেতে পারে যেখানে একটি ফোয়ারা প্রধান ফ্রন্টএন্ড হিসেবে কাজ করবে এবং অন্য সব ফোয়ারা মাস্টারের REST api এর উপর ডেটা এবং পরিবর্তনগুলি ঠেলে দেবে। কোডটিতে একটি API টোকেন সিস্টেমের অবশিষ্টাংশও রয়েছে কারণ এটি বাস্তবায়নের উদ্দেশ্যে ছিল কিন্তু সময়ের সীমাবদ্ধতার কারণে পরে কেটে যায়।

আমি আমার গিটল্যাব সার্ভারে আমার কোড আপলোড করেছি এবং সেখানে আপনি সম্পূর্ণ কোডটি দেখে নিতে পারেন:

প্রস্তাবিত: