সুচিপত্র:

কীসোর্টার: 6 টি ধাপ
কীসোর্টার: 6 টি ধাপ

ভিডিও: কীসোর্টার: 6 টি ধাপ

ভিডিও: কীসোর্টার: 6 টি ধাপ
ভিডিও: Как спрятать данные в ячейках Excel? 2024, জুলাই
Anonim
কীসোর্টার
কীসোর্টার
কীসোর্টার
কীসোর্টার

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

এটার কাজ কি?

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

এটিকে RFID এর মাধ্যমে একটি চাবিতে স্ক্যান করে বাক্সে স্থান দিতে হবে। যদি আমি আবার একই কী স্ক্যান করি তবে এটি তার পূর্বে নির্ধারিত স্থানটি দেখাবে। শেষ ধোয়া গাড়ি দেখানোর জন্য একটি বোতামও রয়েছে।

এটি একটি রাস্পবেরি পাইতে চলবে যার ফ্লাস্কের মাধ্যমে একটি ওয়েবপেজ যুক্ত করার বিকল্প রয়েছে।

পৃষ্ঠায় আমি সমস্ত কী দেখতে সক্ষম হব, একটি কীতে একটি নাম যুক্ত করব এবং একটি কী মুছে ফেলব।

ধাপ 1: ধাপ 1: আমার কি দরকার?

ধাপ 1: আমার কি দরকার?
ধাপ 1: আমার কি দরকার?
ধাপ 1: আমার কি দরকার?
ধাপ 1: আমার কি দরকার?

আমি উপাদানগুলির একটি তালিকা তৈরি করে শুরু করেছি যা আমাকে এই জিনিসটি কাজ করতে হবে।

উপাদান:

  • রাস্পবেরি পাই
  • 2 x শিফট রেজিস্টার (74hc595)
  • 3 x বোতাম
  • 9 x সবুজ নেতৃত্বাধীন
  • RFID স্ক্যানার (MFRC522)
  • 12 x প্রতিরোধক 220 ওহম

তারপর আমি এই সব আমার fritzing পরিকল্পিত মধ্যে রাখা।

একবার আমি এটি করা হয়ে গেলে আমি এটি বাস্তব জীবনে তৈরি করেছি।

ধাপ 2: ধাপ 2: একটি ডাটাবেস স্কিম্যাটিক তৈরি করা

পদক্ষেপ 2: একটি ডাটাবেস স্কিম্যাটিক তৈরি করা
পদক্ষেপ 2: একটি ডাটাবেস স্কিম্যাটিক তৈরি করা

আমার ডেটা সংরক্ষণ করতে আমাকে একটি ডাটাবেস তৈরি করতে হয়েছিল যা আমার পাইতে চলতে পারে।

আমি এটা মাইএসকিউএলে তৈরি করেছি।

টেবিল গাড়ি:

  • গাড়ির আইডি
  • ব্যবহারকারীর প্রমানপত্র
  • ব্র্যান্ড (গাড়ির ব্র্যান্ড)
  • প্রকার
  • শেষ ধুয়েছে
  • চাবি
  • RFID_ID

ধাপ 3: ধাপ 3: কোডিং

ধাপ 3: কোডিং
ধাপ 3: কোডিং

যখন এই সব প্রস্তুত ছিল তখন আমি কোডিং শুরু করতে পারতাম।

আমি পাইথন 3.5 এ আমার সেন্সরের কোড তৈরি করে শুরু করেছি।

কোডটি ডাউনলোড করতে এখানে ক্লিক করুন।

প্রকল্পের ক্লোন করতে লিঙ্কটি ব্যবহার করুন।

ধাপ 4: ধাপ 4: আমার রাস্পবেরি পাইতে আল কোড দেওয়া

প্যাকেজ ইনস্টল করা হচ্ছে

প্রথমে আমি এই কাজটি করার জন্য আমার প্রয়োজনীয় প্যাকেজগুলি ইনস্টল করেছি।

আমি@my-rpi: ~ $ sudo apt আপডেট

me@my-rpi: ~ $ sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3

ভার্চুয়াল পরিবেশ

আমি@my-rpi: ~ $ python3 -m pip install --upgrade pip setuptools wheel virtualenvme@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi: ~/project1 $ python3 -m venv --system- সাইট-প্যাকেজ env me@my-rpi: ~/project1 $ source env/bin/activate (env) me@my-rpi: ~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth ফ্লাস্ক-মাইএসকিউএল মাইএসকিউএল-সংযোগকারী-পাইথন পাসলিব

পাইচার্ম ব্যবহার করে আপনার পাইতে প্রকল্পটি আপলোড করুন

Pycharm খুলুন এবং VCS> ভার্সন কন্ট্রোল থেকে আমদানি> Github এ যান এবং আমার github ফাইল ক্লোন করুন।

আপনার সদ্য তৈরি করা ডিরেক্টরিতে স্থাপনার কনফিগারেশন রাখুন। (/হোম/আমি/প্রকল্প 1)। প্রয়োগ চাপুন!

দোভাষী সেটিংসে যান এবং আপনার তৈরি ভার্চুয়াল পরিবেশ নির্বাচন করুন। (/home/me/project1/env/bin/pyhon)

পাথ ম্যাপিং সঠিক কিনা তা পরীক্ষা করুন।

এখন আপনি Pycharm ব্যবহার করে আপনার ডিরেক্টরিতে কোড আপলোড করতে পারেন।

তথ্যশালা

ডাটাবেস চলছে কিনা তা পরীক্ষা করুন আপনার এইরকম কিছু পাওয়া উচিত:

me@my -rpi: ~ $ sudo systemctl status mysql ● mariadb.service - MariaDB ডাটাবেস সার্ভার লোড: লোড (/lib/systemd/system/mariadb.service; সক্ষম; বিক্রেতা প্রিসেট: সক্ষম) সক্রিয়: সক্রিয় (চলমান) সূর্য থেকে 2018-06-03 09:41:18 CEST; 1 দিন 4 ঘন্টা আগে প্রধান পিআইডি: 781 (মাইএসকিউএলডি) স্থিতি: "এখন আপনার এসকিউএল অনুরোধ গ্রহণ করা হচ্ছে …" টাস্ক: 28 (সীমা: 4915) সিগ্রুপ: /system.slice/mariadb.service └─781/usr/sbin/mysqld

জুন 03 09:41:13 my-rpi systemd [1]: মারিয়াডিবি ডাটাবেস সার্ভার শুরু হচ্ছে… Jun 03 09:41:15 my-rpi mysqld [781]: 2018-06-03 9:41:15 4144859136 [দ্রষ্টব্য] / usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) Jun 03 09:41:18 my-rpi systemd [1]: মারিয়াডিবি ডাটাবেস সার্ভার চালু হয়েছে।

আমি@my -rpi: ~ $ ss -lt | grep mysql LISTEN 0 80 127.0.0.1:mysql *: *

ব্যবহারকারী তৈরি করুন এবং ডাটাবেস যোগ করুন

আমি@my-rpi: ~ $ sudo mariadb

একবার আপনি ডাটাবেসে থাকলে এটি করুন।

ব্যবহারকারী 'project1-admin'@'localhost' 'adminpassword' দ্বারা চিহ্নিত; ব্যবহারকারী 'project1-web' local 'localhost' '' webpassword 'দ্বারা স্বীকৃত; ব্যবহারকারী 'প্রকল্প 1-সেন্সর'@'স্থানীয় হোস্ট' 'সেন্সর পাসওয়ার্ড' দ্বারা সনাক্ত করা;

ডেটাবেজ প্রকল্প তৈরি করুন 1;

গ্রান্ট অপশন সহ 'project1-admin'@'localhost' এর সমস্ত প্রজেক্ট গ্রান্ট করুন; গ্রান্ট সিলেক্ট, ইনসার্ট, আপডেট, প্রজেক্ট 1 এ ডিলিট করুন।* থেকে 'project1-web'@'localhost'; গ্রান্ট সিলেক্ট, ইনসার্ট, আপডেট, প্রজেক্ট 1 এ ডিলিট করুন।* থেকে 'প্রজেক্ট 1-সেন্সর'@'লোকালহোস্ট'; ফ্লাশ বিশেষাধিকার;

টেবিল তৈরি করুন `ব্যবহারকারী` (` idUser` int (11) নট নয়, `পাসওয়ার্ড` ভারচার (45) ডিফল্ট নাল, প্রাথমিক কী (` idUser`)) ইঞ্জিন = InnoDB ডিফল্ট অক্ষর = utf8

টেবিল তৈরি করুন `গাড়ি` (` idCar` int (11) নট অটো_ইনক্রিমেন্ট, `idUser` int (11) নট,` ব্র্যান্ড` ভারচার (45) ডিফল্ট নুল, `টাইপ` ভারচার (45) ডিফল্ট নুল,` লাস্টওয়াশড` ডেটাটাইম DEFAULT NULL, `RFID_Number` varchar (15) DEFAULT NULL,` Key` varchar (5) DEFAULT NULL, PRIMARY KEY (`idCar`,` idUser`), KEY `fk_Car_User1_idx` (` idUser_) বিদেশী কী (`idUser`) রেফারেন্স` ব্যবহারকারী` (`idUser`) আপডেট নং অ্যাকশনে কোন অ্যাকশন মুছে ফেললে) ইঞ্জিন = InnoDB AUTO_INCREMENT = 4 ডিফল্ট অক্ষর = utf8

আপনার ডাটাবেসকে পাইচার্মের সাথে সংযুক্ত করুন

ডান পাশে ডাটাবেস ট্যাবে ক্লিক করুন। আপনার যদি ট্যাব খোলা না থাকে তবে এটি করুন: দেখুন> টুল উইন্ডোজ> ডাটাবেস।

সংযোগ যোগ করুন ক্লিক করুন। ডাটা সোর্স> মাইএসকিউএল চয়ন করুন (যদি একটি বোতাম ডাউনলোড ড্রাইভার থাকে তবে এটি টিপুন।)

SSH/SSL এ যান এবং SSH চেক করুন। আপনার রাস্পবেরি পাই শংসাপত্রগুলি পূরণ করুন (হোস্ট/ব্যবহারকারী/পাসওয়ার্ড)। পোর্ট 22 হওয়া উচিত এবং পাসওয়ার্ড মনে রাখতে ভুলবেন না।

জেনারেল -এ ফেরত যান। হোস্ট হওয়া উচিত লোকালহোস্ট এবং ডাটাবেস হওয়া উচিত project1। প্রজেক্ট 1-অ্যাডমিন থেকে শংসাপত্র পূরণ করুন সংযোগ পরীক্ষা করুন।

যদি সংযোগ ঠিক থাকে তাহলে স্কিমা ট্যাবে যান এবং নিশ্চিত করুন যে প্রকল্প 1 টি চেক করা আছে।

ডাটাবেস সঠিক কিনা তা পরীক্ষা করুন

me@my-rpi: ~ $ echo 'শো টেবিল;' | mysql project1 -t -u project1-admin -pEnter পাসওয়ার্ড: + --------------------------- + | টেবিল_ইন_প্রজেক্ট 1 | + ---------------------------+ | সেন্সর | | ব্যবহারকারী | +---------------------------+

কনফিগারেশন ফাইল

ডিরেক্টরিতে conf আপনি 4 টি ফাইল পাবেন। আপনার ব্যবহারকারীর নাম আপনার ব্যবহারকারীর নাম পরিবর্তন করা উচিত।

সিস্টেমড

সবকিছু শুরু করতে আপনার এই কমান্ডগুলি চালানো উচিত।

me@my-rpi: ~/project1 $ sudo cp conf/project1-*। service/etc/systemd/system/

me@my-rpi: ~/project1 $ sudo systemctl daemon-reload me@my-rpi: ~/project1 $ sudo systemctl start project1-* me@my-rpi: ~/project1 $ sudo systemctl status project1-* ● project1- flask.service-uWSGI দৃষ্টান্ত project1 ওয়েব ইন্টারফেস পরিবেশন লোড: লোড (/etc/systemd/system/project1-flask.service; অক্ষম; বিক্রেতা প্রিসেট: সক্ষম) সক্রিয়: সক্রিয় (চলমান) 14:56 CEST; 1s আগে প্রধান PID: 6618 (uwsgi) টাস্ক: 6 (সীমা: 4915) CGroup: /system.slice/project1-flask.service ├─6618/usr/bin/uwsgi --ini/home/me/project1/conf/ uwsgi-flask.ini ├─620/usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini 66621/usr/bin/uwsgi --ini/home/me/project1/ conf/uwsgi-flask.ini ├─622/usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini ├─6623/usr/bin/uwsgi --ini/home/me/ project1/conf/uwsgi-flask.ini └─6244/usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini

Jun 04 13:14:56 my-rpi uwsgi [6618]: 5 কোরের জন্য 383928 বাইট (374 KB) ম্যাপ করা হয়েছে 04 04 13:14:56 my-rpi uwsgi [6618]: *** অপারেশনাল মোড: প্রফোর্কিং ***

● project1-sensor.service-প্রকল্প 1 সেন্সর পরিষেবা লোড: লোড (/etc/systemd/system/project1-sensor.service; অক্ষম; বিক্রেতা প্রিসেট: সক্ষম) সক্রিয়: সক্রিয় (চলমান) সোম 2018-06-04 13 থেকে: 16:49 CEST; 5s আগে প্রধান PID: 6826 (পাইথন) টাস্ক: 1 (সীমা: 4915) CGroup: /system.slice/project1-sensor.service └─6826/home/me/project1/env/bin/python/home/me/project1 /sensor/sensor.py

জুন 04 13:16:49 my-rpi systemd [1]: প্রজেক্ট 1 সেন্সর পরিষেবা শুরু হয়েছে। Jun 04 13:16:49 my-rpi python [6826]: DEBUG: _ main _: সংরক্ষিত সেন্সর process_count = b'217 / n 'ডাটাবেসে Jun 04 13:16:55 my-rpi python [6826]: DEBUG: _ main_: সংরক্ষিত সেন্সর process_count = b'218 / n 'ডাটাবেসে

nginx

আমি@my-rpi: ~/project1 $ ls -l/etc/nginx/sites-*

/etc/nginx/sites-available: মোট 4 -rw-r-r-- 1 রুট রুট 2416 জুলাই 12 2017 ডিফল্ট

/etc/nginx/sites-enabled: মোট 0 lrwxrwxrwx 1 রুট রুট 34 জানুয়ারি 18 13:25 ডিফল্ট->/etc/nginx/sites-available/default

সবকিছু ডিফল্ট করার জন্য এই কমান্ডগুলি চালান।

আমি@my-rpi: ~/project1 $ sudo cp conf/nginx/etc/nginx/sites-available/project1me@my-rpi: ~/project1 $ sudo rm/etc/nginx/sites-enabled/default me@my- rpi: ~/project1 $ sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project1 me@my-rpi: ~/project1 $ sudo systemctl restart nginx.service

স্বয়ংক্রিয় শুরু

আসুন নিশ্চিত করি সবকিছু স্বয়ংক্রিয়ভাবে শুরু হয়।

Conf ডিরেক্টরিতে যান এবং এই চূড়ান্ত কমান্ডগুলি চালান এবং আপনার কাজ শেষ!

me@my-rpi: ~/project1 $ sudo systemctl সক্ষম প্রকল্প 1-*

আপনি যদি আপনার পাই পুনরায় বুট করেন তবে এটি স্বয়ংক্রিয়ভাবে শুরু হওয়া উচিত।

ধাপ 5: ধাপ 5: একটি আবাসন তৈরি করা।

ধাপ 5: একটি আবাসন তৈরি করা
ধাপ 5: একটি আবাসন তৈরি করা
ধাপ 5: একটি আবাসন তৈরি করা
ধাপ 5: একটি আবাসন তৈরি করা
ধাপ 5: একটি আবাসন তৈরি করা
ধাপ 5: একটি আবাসন তৈরি করা
ধাপ 5: একটি আবাসন তৈরি করা
ধাপ 5: একটি আবাসন তৈরি করা

পুনর্ব্যবহার

আমার বাসস্থান তৈরির জন্য আমি একটি পুরানো পায়খানা ব্যবহার করতাম যা আমার মা দূরে সরিয়ে দিতেন।

ভিত্তি

আমি 4 তক্তা (34 সেমি x 26 সেমি) দেখেছি। (তাই এটি 34 x 34 x 26 থেকে একটি ঘনক)।

নীচে আমি নীচে একটি পাতলা কাঠের টুকরা যুক্ত করেছি।

নেতৃত্বাধীন সঙ্গে বোর্ড

মাঝখানে আমি উপরে থেকে 9 সেন্টিমিটার উভয় পাশে 2 টি ছোট কাঠের টুকরো রেখেছি। এটি এমন বোর্ডকে ধরে রাখে যেখানে নেতৃত্ব বসবে।

নেতৃত্বাধীন বোর্ডটি একটি ছোট বোর্ড (32 সেমি x 32 সেমি)।

আমি নেতৃত্ব থেকে বেরিয়ে আসার জন্য 9 টি গর্ত ড্রিল করেছি।

বিভাগ

আমি নিচের মত একই উপাদান এবং নেতৃত্বাধীন বোর্ড দিয়ে বিভাগ তৈরি করেছি।

10.3 সেমি (9 সেমি x 31 সেমি) এ একটি ছেদ দিয়ে 4 টি টুকরো। এখন আমি তাদের একসাথে রাখতে সক্ষম।

বোতাম এবং আরএফআইডি রিডার

আমি আরএফআইডি রিডার এবং বোতাম putুকানোর জন্য গোড়ায় একটি ছিদ্র করেছিলাম। আরএফআইডি -র জন্য আমি তার সামনে একটি পাতলা টুকরো রেখেছিলাম যাতে এটি পরিষ্কার দেখা যায়।

ধাপ 6: ধাপ 6: হাউজিংয়ে সবকিছু রাখা।

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

আমি নেতৃত্বের জায়গায় আঠালো এবং কেসে আরএফআইডি রিডার এবং ব্রেডবোর্ড টেপ করেছি।

এবং এভাবেই আপনি একটি কীসোর্টার তৈরি করেন!

প্রস্তাবিত: