विषयसूची:

कीसॉर्टर: 6 कदम
कीसॉर्टर: 6 कदम

वीडियो: कीसॉर्टर: 6 कदम

वीडियो: कीसॉर्टर: 6 कदम
वीडियो: Skysorter 6 Chute RGB Color Sorter for Peanut Working Video 2024, जुलाई
Anonim
कीसॉर्टर
कीसॉर्टर
कीसॉर्टर
कीसॉर्टर

मैं अभी हॉवेस्ट में एनएमसीटी की पढ़ाई कर रहा हूं। हमारे अंतिम सेमेस्टर के लिए हमें एक प्रोजेक्ट बनाना था। इसलिए मैंने एक कीसोर्टर बनाया।

वह क्या करता है?

हमारे पास घर पर बहुत सारी कार की चाबियां हैं और वे सभी एक जैसी दिखती हैं। इसलिए मैंने इस मुद्दे को हल करने के लिए एक Keysorter बनाया।

इसे RFID के माध्यम से एक कुंजी में स्कैन करना होता है और इसे बॉक्स में जगह देनी होती है। अगर मैं उसी कुंजी को फिर से स्कैन करता हूं तो यह उसकी पहले से निर्दिष्ट जगह दिखाएगा। आखिरी बार धुली हुई कार दिखाने के लिए एक बटन भी है।

यह रास्पबेरी पाई पर चलेगा जिसमें फ्लास्क के माध्यम से एक वेबपेज जोड़ने का विकल्प भी है।

पृष्ठ पर मुझे सभी कुंजियों को देखने, एक कुंजी में एक नाम जोड़ने और एक कुंजी निकालने में सक्षम होना चाहिए।

चरण 1: चरण 1: मुझे क्या चाहिए?

चरण 1: मुझे क्या चाहिए?
चरण 1: मुझे क्या चाहिए?
चरण 1: मुझे क्या चाहिए?
चरण 1: मुझे क्या चाहिए?

मैंने उन घटकों की एक सूची बनाकर शुरुआत की, जिनकी मुझे इस चीज़ को काम करने के लिए आवश्यकता होगी।

अवयव:

  • रास्पबेरी पाई
  • 2 एक्स शिफ्ट रजिस्टर (74hc595)
  • 3 एक्स बटन
  • 9 एक्स हरी एलईडी
  • आरएफआईडी स्कैनर (एमएफआरसी522)
  • 12 x रोकनेवाला 220 ओम

फिर मैंने यह सब अपने फ्रिटिंग योजनाबद्ध में डाल दिया।

एक बार ऐसा करने के बाद मैंने इसे वास्तविक जीवन में बनाया।

चरण 2: चरण 2: डेटाबेस को योजनाबद्ध बनाना

चरण 2: एक डेटाबेस योजनाबद्ध बनाना
चरण 2: एक डेटाबेस योजनाबद्ध बनाना

अपने डेटा को बचाने के लिए मुझे एक डेटाबेस बनाना था जो मेरे पीआई पर चल सके।

मैंने इसे मैसकल में बनाया है।

टेबल कार:

  • कार आईडी
  • यूज़र आईडी
  • ब्रांड (कार ब्रांड)
  • प्रकार
  • अंतिम बार धोया गया
  • चाभी
  • आरएफआईडी_आईडी

चरण 3: चरण 3: कोडिंग

चरण 3: कोडिंग
चरण 3: कोडिंग

जब यह सब तैयार हो गया तो मैं कोडिंग शुरू कर सकता था।

मैंने पायथन 3.5 में अपने सेंसर के लिए कोड बनाकर शुरुआत की।

कोड डाउनलोड करने के लिए यहां क्लिक करें।

प्रोजेक्ट को क्लोन करने के लिए लिंक का उपयोग करें।

चरण 4: चरण 4: माई रास्पबेरी पाई पर अल कोड डालना

पैकेज स्थापित करना

सबसे पहले मैंने इस काम को करने के लिए आवश्यक पैकेजों को स्थापित किया।

me@my-rpi:~ $ sudo apt update

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

आभासी वातावरण

me@my-rpi:~ $ python3 -m pip install --upgrad pip setuptools Wheel virtualenvme@my-rpi:~ $mkdir project1 && cd project1 me@my-rpi:~/project1 $ python3 -m venv --system- साइट-पैकेज env me@my-rpi:~/project1 $ स्रोत env/bin/active (env)me@my-rpi:~/project1 $ python -m pip install mysql-connector-python argon2-cffi फ्लास्क फ्लास्क-HTTPAuth कुप्पी-MySQL mysql-कनेक्टर-अजगर पासलिब

pycharm. का उपयोग करके प्रोजेक्ट को अपने पाई पर अपलोड करें

Pycharm खोलें और VCS> वर्जन कंट्रोल से इम्पोर्ट करें> Github पर जाएं और my github फाइल को क्लोन करें।

परिनियोजन कॉन्फ़िगरेशन को उस निर्देशिका में रखें जिसे आपने अभी बनाया है। (/ होम/मी/प्रोजेक्ट1)। प्रेस लागू करें!

दुभाषिया सेटिंग पर जाएं और अपने द्वारा अभी बनाया गया आभासी वातावरण चुनें। (/होम/मी/प्रोजेक्ट1/एनवी/बिन/पायहोन)

जांचें कि क्या पथ मानचित्रण सही है।

अब आप Pycharm का उपयोग करके कोड को अपनी निर्देशिका में अपलोड कर सकते हैं।

डेटाबेस

जांचें कि क्या डेटाबेस चल रहा है। आपको कुछ इस तरह मिलना चाहिए:

me@my-rpi:~ $ sudo systemctl status mysql● mariadb.service - MariaDB डेटाबेस सर्वर लोडेड: लोडेड (/lib/systemd/system/mariadb.service; सक्षम; विक्रेता प्रीसेट: सक्षम) सक्रिय: सूर्य के बाद से सक्रिय (चल रहा है) 2018-06-03 09:41:18 सीईएसटी; 1 दिन 4 घंटे पहले मुख्य पीआईडी: 781 (mysqld) स्थिति: "आपके SQL अनुरोध अभी ले रहे हैं…" कार्य: 28 (सीमा: 4915) Cgroup: /system.slice/mariadb.service └─781 /usr/sbin/mysqld

जून ०३ ०९:४१:१३ my-rpi systemd[1]: मारियाडीबी डेटाबेस सर्वर शुरू करना… जून ०३ ०९:४१:१५ my-rpi mysqld[७८१]: २०१८-०६-०३ ९:४१:१५ ४१४४८५९१६ [नोट] / usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) जून 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

एक बार जब आप डेटाबेस में हों तो ऐसा करें।

उपयोगकर्ता 'प्रोजेक्ट 1-एडमिन' @ 'लोकलहोस्ट' बनाएं, जिसे 'एडमिनपासवर्ड' द्वारा पहचाना गया हो; 'वेबपासवर्ड' द्वारा पहचाने गए उपयोगकर्ता 'प्रोजेक्ट 1-वेब' @ 'लोकलहोस्ट' बनाएं; उपयोगकर्ता 'प्रोजेक्ट 1-सेंसर' @ 'लोकलहोस्ट' बनाएं 'सेंसरपासवर्ड' द्वारा पहचाना गया;

डेटाबेस प्रोजेक्ट 1 बनाएं;

प्रोजेक्ट 1 पर सभी विशेषाधिकार प्रदान करें। * अनुदान विकल्प के साथ 'प्रोजेक्ट 1-एडमिन' @ 'लोकलहोस्ट' को; अनुदान चयन, सम्मिलित करें, अद्यतन करें, प्रोजेक्ट 1 पर हटाएं। * 'प्रोजेक्ट 1-वेब' @ 'लोकलहोस्ट' पर; अनुदान चयन, सम्मिलित करें, अद्यतन करें, प्रोजेक्ट 1 पर हटाएं। * 'प्रोजेक्ट 1-सेंसर' @ 'लोकलहोस्ट' पर; फ्लश विशेषाधिकार;

तालिका बनाएं `उपयोगकर्ता` (`idUser` int(11) शून्य नहीं, `पासवर्ड` वर्कर (45) डिफ़ॉल्ट शून्य, प्राथमिक कुंजी (`idUser`)) इंजन = InnoDB डिफ़ॉल्ट वर्णसेट = utf8

टेबल बनाएं `कार` (`idCar` int(11) नॉट न्यूल AUTO_INCREMENT, `idUser` int(11) NOT NULL, `ब्रांड` varchar(45) DEFAULT NULL, `Type` varchar(45) DEFAULT NULL, `LastWashed` डेटाटाइम डिफॉल्ट न्यूल, `RFID_Number` वर्कर (15) डिफॉल्ट न्यूल, `की` वर्कर (5) डिफॉल्ट न्यूल, प्राथमिक कुंजी (`idCar`, `idUser`), कुंजी `fk_Car_User1_idx` (`idUser`), CONSTRAINT `fk_Car_User1` विदेशी कुंजी (`idUser`) संदर्भ `उपयोगकर्ता` (`idUser`) अद्यतन पर कोई कार्रवाई नहीं हटाने पर कोई कार्रवाई नहीं) इंजन = InnoDB AUTO_INCREMENT = 4 डिफ़ॉल्ट CHARSET = utf8

अपने डेटाबेस को Pycharm से कनेक्ट करें

दाईं ओर डेटाबेस टैब पर क्लिक करें। यदि आपके पास टैब खुला नहीं है तो ऐसा करें: देखें > टूल विंडोज > डेटाबेस।

कनेक्शन जोड़ें पर क्लिक करें। डेटा स्रोत> MySQL चुनें (यदि कोई बटन डाउनलोड ड्राइवर है तो उसे दबाएं।)

SSH/SSL में जाकर SSH चेक करें। अपने रास्पबेरी पाई क्रेडेंशियल (होस्ट / उपयोगकर्ता / पासवर्ड) भरें। पोर्ट 22 होना चाहिए और पासवर्ड याद रखना न भूलें।

जनरल को लौटें। होस्ट लोकलहोस्ट होना चाहिए और डेटाबेस प्रोजेक्ट 1 होना चाहिए। कनेक्शन का परीक्षण करने के लिए project1-admin से क्रेडेंशियल भरें।

यदि कनेक्शन ठीक है तो स्कीमा टैब पर जाएं और सुनिश्चित करें कि प्रोजेक्ट 1 चेक किया गया है।

जांचें कि क्या डेटाबेस सही है

मुझे @ my-rpi: ~ $ इको 'शो टेबल;' | mysql प्रोजेक्ट 1-टी-यू प्रोजेक्ट 1-एडमिन-पी पासवर्ड दर्ज करें: +-------------------------------+ | टेबल्स_इन_प्रोजेक्ट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- फ्लास्क.सर्विस - प्रोजेक्ट 1 वेब इंटरफेस की सेवा के लिए यूडब्ल्यूएसजीआई इंस्टेंस लोडेड: लोडेड (/etc/systemd/system/project1-flask.service; अक्षम; विक्रेता प्रीसेट: सक्षम) सक्रिय: सोम 2018-06-04 13 से सक्रिय (चल रहा है): 14:56 सीईएसटी; 1s पहले मुख्य PID: 6618 (uwsgi) कार्य: 6 (सीमा: 4915) Cसमूह: /system.slice/project1-flask.service ├─6618 /usr/bin/uwsgi --ini /home/me/project1/conf/ uwsgi-flask.ini ├─6620 /usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini 6621 /usr/bin/uwsgi --ini /home/me/project1/ conf/uwsgi-flask.ini ├─6622 /usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini 6623 /usr/bin/uwsgi --ini /home/me/ project1/conf/uwsgi-flask.ini 6624 /usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini

जून ०४ १३:१४:५६ my-rpi uwsgi[६६१८]: ५ कोर के लिए ३८३९२८ बाइट्स (374 KB) मैप किया गया जून ०४ १३:१४:५६ my-rpi uwsgi [६६१८]: *** ऑपरेशनल मोड: प्रीफ़ोर्किंग ***

● project1-sensor.service - प्रोजेक्ट 1 सेंसर सेवा लोडेड: लोडेड (/etc/systemd/system/project1-sensor.service; अक्षम; विक्रेता प्रीसेट: सक्षम) सक्रिय: सोम 2018-06-04 13 से सक्रिय (चल रहा है): 16:49 सीईएसटी; 5s पहले मुख्य पीआईडी: 6826 (पायथन) कार्य: 1 (सीमा: 4915) सीग्रुप: /system.slice/project1-sensor.service └─6826 /home/me/project1/env/bin/python /home/me/project1 /सेंसर/सेंसर.py

जून ०४ १३:१६:४९ my-rpi systemd[1]: प्रोजेक्ट १ सेंसर सेवा शुरू की। जून ०४ १३:१६:४९ my-rpi python[६८२६]: DEBUG:_main_:सेव्ड सेंसर process_count=b'217\n' डेटाबेस में जून 04 13:16:55 my-rpi python[6826]: DEBUG:_main_: सेव किया गया सेंसर process_count=b'218\n' डेटाबेस में

nginx

me@my-rpi:~/project1 $ ls -l /etc/nginx/sites-*

/etc/nginx/साइट-उपलब्ध: कुल 4 -rw-r--r-- 1 रूट रूट 2416 जुलाई 12 2017 डिफ़ॉल्ट

/etc/nginx/साइट-सक्षम: कुल 0 lrwxrwxrwx 1 रूट रूट 34 जनवरी 18 13:25 डिफ़ॉल्ट -> /etc/nginx/साइट-उपलब्ध/डिफ़ॉल्ट

सब कुछ डिफ़ॉल्ट बनाने के लिए इन आदेशों को निष्पादित करें।

me@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 पुनरारंभ nginx.service

ऑटो स्टार्ट

आइए सुनिश्चित करें कि सब कुछ अपने आप शुरू हो जाए।

conf निर्देशिका पर जाएं और इन अंतिम आदेशों को निष्पादित करें और आपका काम हो गया!

me@my-rpi:~/project1 $ sudo systemctl enable project1-*

यदि आप अपने पाई को रिबूट करते हैं तो यह अपने आप शुरू हो जाना चाहिए।

चरण 5: चरण 5: आवास बनाना।

चरण 5: एक आवास बनाना।
चरण 5: एक आवास बनाना।
चरण 5: एक आवास बनाना।
चरण 5: एक आवास बनाना।
चरण 5: एक आवास बनाना।
चरण 5: एक आवास बनाना।
चरण 5: एक आवास बनाना।
चरण 5: एक आवास बनाना।

रीसाइक्लिंग

अपना आवास बनाने के लिए मैंने एक पुरानी कोठरी का इस्तेमाल किया जिसे मेरी माँ दूर फेंक देती थी।

आधार

मैंने 4 तख्ते (34 सेमी x 26 सेमी) देखे। (इसलिए यह 34 x 34 x 26 का घन है)।

तल पर मैंने नीचे की तरह लकड़ी का एक पतला टुकड़ा जोड़ा।

एलईडी के साथ बोर्ड

बीच में मैंने लकड़ी के 2 छोटे टुकड़े दोनों तरफ ऊपर से 9 सेमी की दूरी पर रखे हैं। यह बोर्ड रखता है जहां एलईडी बैठे होंगे।

एलईडी वाला बोर्ड एक छोटा बोर्ड (32 सेमी x 32 सेमी) है।

मैंने एलईडी के बाहर आने के लिए 9 छेद ड्रिल किए।

विभाजन

मैंने विभाजन को उसी सामग्री के साथ बनाया जो नीचे और बोर्ड के साथ एलईडी है।

१०.३ सेमी (९ सेमी x ३१ सेमी) पर चीरा के साथ ४ टुकड़े। अब मैं उन्हें एक साथ रखने में सक्षम हूं।

बटन और आरएफआईडी रीडर

मैंने अपना RFID रीडर और बटन लगाने के लिए आधार में एक छेद किया। RFID के लिए मैंने इसे साफ दिखने के लिए बोर्ड का एक पतला टुकड़ा उसके सामने रखा।

चरण 6: चरण 6: आवास में सब कुछ डालना।

यह इस बात पर निर्भर करता है कि आप इसे कैसे करना चाहते हैं। मैंने व्यक्तिगत रूप से बिना सोल्डरिंग के बहुत सारे केबल का उपयोग किया क्योंकि मैं अपने रास्पबेरी पाई का पुन: उपयोग करने में सक्षम होना चाहता हूं।

मैंने एलईडी को जगह में चिपका दिया और मामले में आरएफआईडी रीडर और ब्रेडबोर्ड को टेप कर दिया।

और इस तरह आप एक Keysorter बनाते हैं!

सिफारिश की: