विषयसूची:

स्वचालित कार्ड वितरक: 7 कदम
स्वचालित कार्ड वितरक: 7 कदम

वीडियो: स्वचालित कार्ड वितरक: 7 कदम

वीडियो: स्वचालित कार्ड वितरक: 7 कदम
वीडियो: सबसे सस्ती गाड़िया 🔥दिमाग़ हिल जाएगा🔥|Cheapest Second hand Cars in Mumbai|Used cars for sale 2024, नवंबर
Anonim
स्वचालित कार्ड वितरक
स्वचालित कार्ड वितरक

मैंने अपने पहले प्रोजेक्ट के रूप में एक स्मार्ट कार्ड वितरक को चुना है क्योंकि मुझे कार्डगेम खेलना पसंद है। जिस चीज को मैं सबसे ज्यादा नापसंद करता हूं वह है डीलिंग कार्ड। आपको हर खेल के लिए याद रखना होगा कि प्रत्येक व्यक्ति को कितने कार्ड मिलते हैं। जब आप बहुत सारे कार्ड गेम जानते हैं तो यह भ्रमित हो जाता है। मेरा प्रोजेक्ट उन लोगों की भी मदद करेगा, जिन्हें कार्ड बांटने में परेशानी होती है, जैसे वृद्ध लोग और पार्किंसन से पीड़ित लोग।

आपूर्ति

  • 1 रास्पबेरी पाई (मैंने रास्पबेरी पाई 4 का इस्तेमाल किया)
  • एसडी कार्ड (16GB अनुशंसित)
  • रास्पबेरी पाई (टी-पीस) के लिए 1 आउटब्रेड पीस
  • 2 ब्रेडबोर्ड
  • 1 ब्रेडबोर्ड के लिए बिजली आपूर्ति मॉड्यूल, 5V और 3V3
  • 1 एलसीडी डिस्प्ले
  • 1 पोटेंशियोमीटर
  • 1 MPU6050 (एक्सेलेरोमीटर और जायरोस्कोप)
  • 1 एनपीएन ट्रांजिस्टर
  • 1 PCF8574N I/O विस्तारक
  • 1 स्टेपर मोटर
  • स्टेपर मोटर को नियंत्रित करने के लिए 1 ULN2003 ब्रेकआउट बोर्ड
  • 1 HC-SR04 अल्ट्रासोनिक सेंसर
  • १ ५वी डीसी मोटर्स
  • 1 डायोड
  • 6 470 ओम प्रतिरोधक
  • 4 10K ओम प्रतिरोधक
  • सब कुछ जोड़ने के लिए बिजली के तार

बनाते समय उपयोगी:

  • सोल्डरिंग आयरन
  • मिलाप
  • डरमेल या जिग आरी (लकड़ी और एब्स प्लास्टिक काटने के लिए कुछ)

सॉफ्टवेयर:

  • पोटीन
  • MySQL कार्यक्षेत्र
  • Win32 डिस्क इमेजर
  • कोड संपादक (मैं विजुअल स्टूडियो कोड की अनुशंसा करता हूं)
  • विनएससीपी
  • रास्पियन छवि

चरण 1: रास्पबेरी पाई तैयार करना

कुछ और करने से पहले हमें सबसे पहले रास्पबेरी पाई तैयार करनी होगी। क्योंकि सब कुछ पीआई से चल रहा होगा इसलिए यह कार्ड वितरक के सबसे महत्वपूर्ण टुकड़ों में से एक है।

स्थापना:

www.raspberrypi.org/downloads/raspberry-pi-os/ से रास्पियन छवि डाउनलोड करें

  1. ज़िप-फ़ाइल डाउनलोड करें
  2. ज़िप-फ़ाइल निकालें जहाँ आप इसे आसानी से पा सकते हैं
  3. Win32 डिस्क इमेजर खोलें और निकाली गई छवि का चयन करें
  4. ड्रॉपडाउन मेनू में एसडी कार्ड चुनें और राइट क्लिक करें
  5. एक बार लिखने की प्रक्रिया पूरी हो जाने के बाद आप Win32 डिस्क इमेजर को बंद कर सकते हैं

इससे पहले कि हम Pi. से जुड़ सकें, अब हमें कुछ और काम करने होंगे

  1. एसडी कार्ड पर बूट फ़ोल्डर में नेविगेट करें
  2. फ़ाइल खोलें cmdline.txt
  3. रिक्त स्थान से अलग की गई पंक्ति के अंत में 'ip=169.254.10.1' जोड़ें
  4. फ़ाइल को सहेजें और बाहर निकलें
  5. उसी निर्देशिका में ssh नामक फ़ाइल बनाएँ और एक्सटेंशन को हटा दें (यह पहले बूट पर ssh को सक्षम करेगा ताकि हम Pi से जुड़ सकें)
  6. SD कार्ड को सुरक्षित रूप से बाहर निकालें और उसे Pi. में डालें

अब हम पाई से जुड़ सकते हैं:

  1. एक ईथरनेट केबल लें और एक सिरा पाई में और दूसरा सिरा अपने कंप्यूटर में डालें
  2. पोटीन खोलें
  3. होस्ट नाम फ़ील्ड में 169.254.10.1 दर्ज करें
  4. सुनिश्चित करें कि SSH चयनित है और पोर्ट 22. है
  5. ओपन पर क्लिक करें
  6. यदि आपको कोई चेतावनी मिलती है तो आप बस जारी रख सकते हैं और उसे अनदेखा कर सकते हैं
  7. उपयोगकर्ता नाम पीआई है और पासवर्ड रास्पबेरी है

सॉफ्टवेयर का विन्यास और स्थापना:

निम्न आदेश के साथ रास्पि-कॉन्फ़िगरेशन खोलें:

सुडो रास्पि-कॉन्फ़िगरेशन

5वां विकल्प चुनें: इंटरफेसिंग विकल्प

SPI और I2C सक्षम करें

3वें विकल्प में निम्न चीज़ें अक्षम करें: बूट विकल्प:

  • स्प्लैश स्क्रीन
  • स्टार्टअप के लिए क्ली चुनें न कि डेस्कटॉप

वाईफ़ाई सेटअप:

वेबसाइट पर आसानी से नेविगेट करने के लिए वाईफाई उपयोगी है। सुनिश्चित करें कि आपके पास अपने वाईफाई क्रेडेंशियल पास हैं।

वाईफाई सेटअप करने के लिए हमें कुछ चीजों की जरूरत होती है:

इस कमांड का उपयोग करके अपना वाईफाई जोड़ें और SSID और PASSWORD को अपनी जानकारी में बदलें:

sudo wpa_passphrase "SSID" "पासवर्ड" >> /etc/wpa_supplicant/wpa_supplicant.conf

अपने वाईफाई को पुन: कॉन्फ़िगर करने के लिए इस आदेश को निष्पादित करें:

सुडो wpa_cli

सही इंटरफ़ेस चुनें:

इंटरफ़ेस wlan0

इंटरफ़ेस को फिर से कॉन्फ़िगर करें:

reconfigure

जांचें कि क्या इस आदेश के साथ पुनर्विन्यास सफल था:

आईपी ए

यदि आप wlan0 इंटरफ़ेस पर एक आईपी-पता देखते हैं तो सब कुछ सेटअप है।

ऑपरेटिंग सिस्टम को अपडेट करना

इन 2 आदेशों के साथ ऑपरेटिंग सिस्टम को अपडेट करें:

सुडो उपयुक्त अद्यतन

sudo apt पूर्ण-उन्नयन

मारियाडीबी की स्थापना:

अपाचे वेबसर्वर स्थापित करना:

sudo apt apache2 -y. स्थापित करें

मारियाडीबी सर्वर स्थापित करना:

sudo apt mariadb-server -y. स्थापित करें

अब हमें रिबूट करने की आवश्यकता है:

सुडो रिबूट

मारियाडीबी इंस्टॉलेशन को सुरक्षित करने की सिफारिश की गई है। आप इसे इस आदेश को चलाकर कर सकते हैं:

सुडो mysql_secure_installation

सबसे पहले आपसे वर्तमान रूट पासवर्ड मांगा जाएगा लेकिन डिफ़ॉल्ट इंस्टॉलेशन में एक नहीं है इसलिए एंटर दबाएं।

इसके बाद आपसे पूछा जाएगा कि क्या आप रूट पासवर्ड सेट करना चाहते हैं, y टाइप करें। सुनिश्चित करें कि आप पासवर्ड याद रख सकते हैं!

  • अनाम उपयोगकर्ताओं को हटाने के लिए y दर्ज करें
  • रूट लॉगिन को दूरस्थ रूप से अक्षम करने के लिए y दर्ज करें
  • परीक्षण डेटाबेस को हटाने और उस तक पहुंचने के लिए y दर्ज करें
  • विशेषाधिकार पुनः लोड करने के लिए y दर्ज करें

आपका मारियाडीबी इंस्टॉलेशन सुरक्षित होना चाहिए!

अब हम एक नया उपयोगकर्ता बना सकते हैं:

इस आदेश के साथ mysql शेल दर्ज करें:

सुडो mysql

उपयोगकर्ता नाम mysql और एक पासवर्ड (your_password) के साथ एक उपयोगकर्ता बनाएँ जो निम्न कमांड है:

'your_password' द्वारा पहचाना गया उपयोगकर्ता mysql@localhost बनाएं;

*.* पर mysql@localhost को सभी विशेषाधिकार प्रदान करें;

फ्लश विशेषाधिकार;

इस कमांड के साथ mysql शेल से बाहर निकलें:

बाहर जाएं;

पायथन पैकेज:

जब तक आपने लाइट संस्करण नहीं चुना है, तब तक पायथन पहले से ही स्थापित होना चाहिए:

sudo apt स्थापित python3-pip

हमें अच्छी मात्रा में पायथन पैकेज की आवश्यकता है, आप उन सभी को निम्न कमांड के साथ स्थापित कर सकते हैं:

pip3 mysql-कनेक्टर-पायथन फ्लास्क-सॉकेटियो फ्लास्क-कॉर्स गीवेंट गीवेंट-वेबसोकेट स्थापित करें

अब हमें एक बार फिर से रिबूट करने की जरूरत है

सुडो रिबूट

चरण 2: विजुअल स्टूडियो कोड और MySQL वर्कबेंच सेट करना

MySQL कार्यक्षेत्र के साथ पाई से जुड़ना:

MySQL कार्यक्षेत्र खोलें

निम्नलिखित जानकारी के साथ पाई से एक नया संबंध बनाएं:

  • कनेक्शन का नाम: रास्पि
  • कनेक्शन विधि: एसएसएच पर मानक टीसीपी/आईपी
  • SSH होस्टनाम: Pi. का IP-पता

आप इस आदेश के साथ आईपी-पता प्राप्त कर सकते हैं:

आईपी ए

  • SSH उपयोगकर्ता नाम: pi
  • MySQL होस्टनाम: 127.0.0.1
  • MySQL सर्वर पोर्ट: 3306
  • उपयोगकर्ता नाम: mysql

ठीक क्लिक करें और उपयोगकर्ता पीआई के लिए पासवर्ड दर्ज करें और फिर उपयोगकर्ता MySQL के लिए पासवर्ड दर्ज करें।

विजुअल स्टूडियो कोड की स्थापना:

विजुअल स्टूडियो कोड खोलें

ये 2 एक्सटेंशन इंस्टॉल करें:

  • रिमोट - एसएसएच
  • रिमोट - एसएसएच: कॉन्फ़िगरेशन फ़ाइलों का संपादन

विजुअल स्टूडियो कोड F1 में दबाएं और ssh. टाइप करें

रिमोट एसएसएच चुनें: नया एसएसएच होस्ट जोड़ें

ssh pi@IP-address भरें

अगले स्टेप में एंटर दबाएं

कनेक्शन अब पीआई से बना है। आप F1 दबाकर और रिमोट होस्ट से कनेक्ट का चयन करके पाई से कनेक्ट कर सकते हैं।

पासवर्ड दर्ज करें ताकि विजुअल स्टूडियो कोड की पीआई तक पहुंच हो।

एक और बात: रिमोट मशीन पर पायथन एक्सटेंशन इंस्टॉल करें ताकि आप आसानी से कोड चला सकें और डिबग कर सकें।

चरण 3: फ्रिटिंग आरेख

फ्रिटिंग आरेख
फ्रिटिंग आरेख
फ्रिटिंग आरेख
फ्रिटिंग आरेख
फ्रिटिंग आरेख
फ्रिटिंग आरेख

इस चरण में मैं सर्किट की व्याख्या करूंगा।

ऊपर दिए गए स्कीमैटिक्स फ्रिट्ज़िंग के साथ बनाए गए हैं।

डीसी यंत्र:

GPIO 18 को कलेक्टर के आधार से कनेक्ट करें, एक एनपीएन ट्रांजिस्टर पर मध्य पिन। ट्रांजिस्टर से मोटर के ग्राउंड को कलेक्टर से और मोटर की शक्ति को 5V से कनेक्ट करें। ट्रांजिस्टर के ग्राउंड को ग्राउंड लाइन से कनेक्ट करें। डायोड को मोटर के ऊपर बैरियर से कनेक्ट करें ताकि यह करंट को सीधे ट्रांजिस्टर में बहने से रोके।

स्टेपर मोटर:

स्टेपर मोटर को कंट्रोल बोर्ड से कनेक्ट करें। नियंत्रण बोर्ड पर 5V और जमीन को जोड़ने के लिए एक तरफ पिन होते हैं। अन्य पिन नियंत्रण पिन हैं। ये पिन मोटर के अंदर चुम्बक को नियंत्रित करते हैं ताकि वह मुड़ सके। रास्पबेरी पाई पर इन पिनों को GPIO 12, 16, 20 और 21 से कनेक्ट करें।

HC-SR04 अल्ट्रासोनिक:

यह सेंसर ध्वनि का उपयोग करके लगभग 4.5 मीटर की दूरी को माप सकता है।

VCC पिन को 5V से, ट्रिगर पिन को GPIO 25 से, इको पिन को 470 ओम के रेसिस्टर से GPIO 24 और ग्राउंड को 470 ओम के रेसिस्टर के साथ ग्राउंड से कनेक्ट करें।

एमपीयू6050:

VCC पिन को 3V3, ग्राउंड टू ग्राउंड, scl को Pi पर scl और sda को Pi पर sda से कनेक्ट करें। इस सेंसर के लिए मैं इसे नियंत्रित करने के लिए I2C का उपयोग करता हूं। आप इसके बारे में यहां और अधिक पढ़ सकते हैं। यहाँ एक बुनियादी व्याख्या है: पाई मास्टर है और MPU6050 गुलाम है। scl लाइन के माध्यम से Pi समय को नियंत्रित करता है और sda लाइन का उपयोग मास्टर से दास को या दास से मास्टर को डेटा भेजने के लिए किया जाता है। केवल मास्टर ही डेटा ट्रांसफर शुरू कर सकता है।

प्रकाश निर्भर रोकनेवाला:

LDR से सही रीडिंग प्राप्त करने के लिए मैं MCP3008 चिप का उपयोग करता हूं। यह सुनिश्चित करता है कि एलडीआर से रीडिंग स्थिर हैं और एनालॉग से डिजिटल सिग्नल में परिवर्तित सही हैं।

3V3 को ldr के एक तरफ 10K ओम के रेसिस्टर के साथ कनेक्ट करें। Ldr और रोकनेवाला के बीच MCP3008 के चैनल 0 से एक तार कनेक्ट करें। फिर एलडीआर के दूसरे हिस्से को जमीन से जोड़ दें।

एलसीडी प्रदर्शन:

आप PCF8574 के बिना LCD डिस्प्ले का उपयोग कर सकते हैं, लेकिन क्योंकि Pi पर GPIO पिन सीमित हैं, मैं कुछ GPIO पिन को बचाने के लिए PCF8574 का उपयोग करता हूं। आप एक शिफ्ट रजिस्टर का भी उपयोग कर सकते हैं लेकिन मैं एक PCF8574 पसंद करता हूं। आप पीसीएफ 8574 को एसएमबस प्रोटोकॉल के साथ नियंत्रित कर सकते हैं लेकिन मैंने इसे नियंत्रित करने के लिए अपनी खुद की कक्षा लिखी है। पोटेंशियोमीटर कंट्रास्ट को नियंत्रित करता है।

एलसीडी डिस्प्ले पिन:

  • वीएसएस टू ग्राउंड
  • वीडीडी से 5वी
  • V0 पोटेंशियोमीटर के वेरिएबल पिन तक
  • आरएस से जीपीआईओ 13
  • जमीन पर आर/डब्ल्यू क्योंकि मैं केवल प्रदर्शन के लिए लिखता हूं और पढ़ता नहीं हूं
  • ई से जीपीआईओ 19
  • PCF का DB0 से P0
  • डीबी1 से पी1
  • DB2 से P2
  • डीबी3 से पी3
  • डीबी4 से पी4
  • डीबी5 से पी5
  • डीबी6 से पी6
  • डीबी7 से पी7
  • एलईडी+ से 5वी
  • एलईडी- टू ग्राउंड

पीसीएफ 8574 पिन:

  • A0 से जमीन तक
  • A1 टू ग्राउंड
  • A2 टू ग्राउंड
  • जमीन से जमीन
  • वीसीसी से 5 वी
  • एसडीए से जीपीआईओ 27
  • 330 ओम के प्रतिरोधक के साथ SCL से GPIO 22

हो सकता है कि आपके पास एलईडी+ और एलईडी न हों- यह इस बात पर निर्भर करता है कि आपको किस प्रकार का डिस्प्ले मिला है। LED+ और LED- बैकलाइट के लिए है।

पोटेंशियोमीटर के सकारात्मक पक्ष को 5V और जमीन से जमीन से कनेक्ट करें।

सुनिश्चित करें कि आप पुल-अप प्रतिरोधों का उपयोग करते हैं!

चरण 4: गीथूब पर कोड

आप मेरे जीथब पर सभी आवश्यक कोड पा सकते हैं।

फ़ोल्डर प्रोजेक्ट1:

इस फ़ोल्डर में बैकएंड के लिए सभी कोड हैं। फोल्डर में हार्डवेयर को नियंत्रित करने के लिए क्लासेस सभी क्लासेस हैं।

फ़ोल्डर रिपॉजिटरी में 2 फ़ाइलें हैं: Database.py और DataRepository.py। Database.py डेटाबेस से कनेक्शन बनाए रखता है और प्रश्नों को संभालता है। DataRepository.py में साइट के लिए आवश्यक सभी प्रश्न शामिल हैं।

App.py बैकएंड की मुख्य फाइल है। पाई बूट होने पर यह फ़ाइल अपने आप शुरू हो जाती है।

Config.py में डेटाबेस से कनेक्ट करने के लिए कुछ सेटिंग्स हैं। सुनिश्चित करें कि आप इन फ़ाइलों को अपनी जानकारी से भरते हैं।

आप इस फोल्डर को अपने होम डायरेक्टरी में कहीं भी रख सकते हैं।

फ़ोल्डर एचटीएमएल:

इस फ़ोल्डर में साइट के लिए सभी फाइलें, फ्रंटएंड हैं।

  • फ़ोल्डर में साइट के लेआउट के लिए फ़ाइलें हैं।
  • फ़ॉन्ट्स में साइट पर उपयोग किए जाने वाले फ़ॉन्ट होते हैं।
  • साइट को गतिशील बनाने के लिए स्क्रिप्ट में सभी Javascript फ़ाइलें शामिल हैं

यह फ़ोल्डर /var/www/html. फ़ोल्डर में होना चाहिए

आप इस कमांड से फाइल या फोल्डर को कॉपी कर सकते हैं:

सुडो एमवी /पथ/से/वर्तमान/निर्देशिका/पथ/से/गंतव्य/निर्देशिका

अपने ब्राउज़र में साइट प्रकार पर नेविगेट करने के लिए एलसीडी डिस्प्ले पर प्रदर्शित आईपी-पता।

चरण 5: सामान्यीकृत डेटाबेस संरचना

सामान्यीकृत डेटाबेस संरचना
सामान्यीकृत डेटाबेस संरचना

इस चरण में हम डेटाबेस आयात करने जा रहे हैं।

  1. MySQL वर्कबेंच के साथ अपने रास्पबेरी पाई से कनेक्ट करें
  2. सर्वर पर क्लिक करें -> डेटा आयात
  3. स्व-निहित फ़ाइल आयात करें का चयन करें
  4. Github से डेटाबेस-निर्यात फ़ोल्डर में एक sql फ़ाइल है जिसे dump_project1.sql. कहा जाता है
  5. इस फ़ाइल को ब्राउज़ करें और आयात प्रारंभ करें पर क्लिक करें

बस, इतना ही। अगर सही जानकारी है तो पीआई अब डेटाबेस तक पहुंच सकता है।

चरण 6: कार्ड वितरक के लिए मामला

कार्ड वितरक के लिए मामला
कार्ड वितरक के लिए मामला
कार्ड वितरक के लिए मामला
कार्ड वितरक के लिए मामला
कार्ड वितरक के लिए मामला
कार्ड वितरक के लिए मामला

इस चरण में मैं समझाऊंगा कि मैंने मामले के लिए क्या उपयोग किया और मैंने सब कुछ कैसे माउंट किया।

मामले के लिए मैंने 2 ABS बॉक्स का इस्तेमाल किया:

- 265 x 185 x 95 मिमी

- १७१ x १२१ x ८० मिमी

मैंने बक्सों में जो छेद किए

एलसीडी डिस्प्ले के लिए एक छेद, पावर केबल के लिए 3 छेद, स्टेपर मोटर से तारों के लिए एक, डीसी मोटर और अल्ट्रासोनिक सेंसर।

सबसे छोटे बॉक्स में मैंने घटकों से तारों के लिए एक छेद बनाया और कार्ड के माध्यम से गुजरने के लिए एक छेद बनाया। शीर्ष में मैंने सबसे बड़ा छेद बनाया ताकि आप डिवाइस में प्ले कार्ड रख सकें।

मैंने डीसी मोटर को एक ब्रैकेट और कुछ दो तरफा टेप के साथ लगाया। मैंने कार्ड को शूट करने के लिए पहिया के लिए एक छेद के साथ कार्ड रखने के लिए लकड़ी का बोर्ड बनाया।

मैंने ABS प्लास्टिक के लिए चुना है क्योंकि यह हल्का है इसलिए स्टेपर मोटर इसे आसानी से चालू कर सकता है। लकड़ी वास्तव में भारी हो सकती है और स्टेपर मोटर को इससे समस्या हो सकती है। छेदों को काटने के लिए मैंने धातु और एक ड्रेमेल के लिए डिज़ाइन किए गए ड्रिलबिट्स के साथ एक ड्रिल का उपयोग किया। बड़े छेदों को काटने में बहुत अधिक काम लगता है और एक जिग आरी बेहतर होगी।

चरण 7: एक सेवा के रूप में कार्यक्रम

पीआई बूट होने के बाद कोड शुरू करना वास्तव में उपयोगी है। उसके लिए हम एक सेवा करने जा रहे हैं।

निम्नलिखित कमांड के साथ स्मार्टकार्ड.सर्विस नामक एक नई फाइल बनाएं:

सुडो नैनो /etc/systemd/system/smartcard.service

इसे फ़ाइल में जाना है:

[इकाई]

विवरण = स्मार्ट कार्ड बैकएंड आफ्टर=network.target [सेवा] ExecStart=/usr/bin/python3 -u app.py WorkingDirectory=/home/pi/project1 StandardOutput=इनहेरिट StandardError=इनहेरिट रिस्टार्ट=हमेशा उपयोगकर्ता=pi [इंस्टॉल करें] वांटेडबाय =बहु-उपयोगकर्ता.लक्ष्य वर्किंगडायरेक्टरी उस फ़ोल्डर का पथ है जहाँ प्रोग्राम स्थित है

अब आपको अपना स्मार्ट कार्ड मिल गया है!

सिफारिश की: