جدول المحتويات:

موزع البطاقات الأوتوماتيكي: 7 خطوات
موزع البطاقات الأوتوماتيكي: 7 خطوات

فيديو: موزع البطاقات الأوتوماتيكي: 7 خطوات

فيديو: موزع البطاقات الأوتوماتيكي: 7 خطوات
فيديو: في نفس اللحظة.. تعرف على كيفية استخراج بطاقة الرقم القومي الفورية 2024, شهر نوفمبر
Anonim
موزع البطاقات التلقائي
موزع البطاقات التلقائي

لقد اخترت موزع بطاقات ذكية كأول مشروعي لأنني أحب أن ألعب لعبة بطاقة. أكثر ما لا يعجبني هو التعامل مع البطاقات. عليك أن تتذكر في كل لعبة عدد البطاقات التي يحصل عليها كل شخص. يصبح هذا محيرًا عندما تعرف الكثير من ألعاب الورق. سيساعد مشروعي أيضًا الأشخاص الذين يواجهون مشكلة في توزيع البطاقات مثل كبار السن والأشخاص الذين يعانون من مرض باركنسون.

اللوازم

  • 1 Raspberry Pi (لقد استخدمت Raspberry Pi 4)
  • بطاقة SD (يوصى بسعة 16 غيغابايت)
  • قطعة واحدة Outbread لـ Raspberry Pi (T-piece)
  • عدد 2 لوح توصيل
  • 1 وحدة إمداد الطاقة للوح ، 5 فولت و 3 فولت 3
  • 1 شاشة LCD
  • 1 مقياس الجهد
  • 1 MPU6050 (مقياس التسارع والجيروسكوب)
  • 1 ترانزستورات NPN
  • 1 موسع إدخال / إخراج PCF8574N
  • 1 محرك متدرج
  • 1 لوحة اندلاع ULN2003 للتحكم في محرك السائر
  • 1 جهاز استشعار بالموجات فوق الصوتية HC-SR04
  • 1 محركات بجهد 5 فولت
  • 1 ثنائيات
  • 6470 مقاومات أوم
  • 4 مقاومات أوم 10 كيلو
  • سلك كهربائي لربط كل شيء

من المفيد الحصول عليها أثناء صنع:

  • لحام حديد
  • جندى
  • منشار دريميل أو تهزهز (شيء لقطع الخشب والبلاستيك ABS)

برمجة:

  • المعجون
  • منضدة MySQL
  • Win32 Disk Imager
  • محرر الكود (أوصي بـ Visual Studio Code)
  • WinSCP
  • صورة Raspbian

الخطوة 1: تحضير Rasperry Pi

نحتاج أولاً إلى تحضير Raspberry Pi قبل أن نفعل أي شيء آخر. نظرًا لأن كل شيء سيتم تشغيله من Pi ، فهذه واحدة من أهم قطع موزع البطاقات.

التركيب:

قم بتنزيل صورة Raspbian من

  1. قم بتنزيل ملف ZIP
  2. قم باستخراج ملف ZIP حيث يمكنك العثور عليه بسهولة
  3. افتح Win32 Disk Imager وحدد الصورة المستخرجة
  4. حدد بطاقة SD في القائمة المنسدلة وانقر فوق "كتابة"
  5. بمجرد الانتهاء من عملية الكتابة ، يمكنك إغلاق Win32 Disk Imager

نحتاج الآن إلى القيام ببعض الأشياء الأخرى قبل أن نتمكن من الاتصال بـ Pi

  1. انتقل إلى مجلد التمهيد على بطاقة SD
  2. افتح الملف cmdline.txt
  3. أضف "ip = 169.254.10.1" في نهاية السطر مفصولاً بمسافة
  4. حفظ وإنهاء الملف
  5. أنشئ في نفس الدليل ملفًا يسمى ssh وأزل الامتداد (هذا wil يمكّن ssh في التمهيد الأول حتى نتمكن من الاتصال بـ Pi)
  6. أخرج بطاقة SD بأمان وضعها في Pi

الآن يمكننا الاتصال بـ Pi:

  1. احصل على كابل إيثرنت وأدخل أحد طرفيه في Pi والطرف الآخر في جهاز الكمبيوتر الخاص بك
  2. افتح المعجون
  3. أدخل 169.254.10.1 في حقل اسم المضيف
  4. تأكد من تحديد SSH وأن المنفذ هو 22
  5. انقر فوق فتح
  6. إذا تلقيت تحذيرًا ، يمكنك الاستمرار وتجاهله
  7. اسم المستخدم pi وكلمة المرور raspberry

تكوين وتثبيت البرنامج:

افتح raspi-config باستخدام الأمر التالي:

sudo raspi-config

حدد الخيار الخامس: خيارات التفاعل

تمكين SPI و I2C

قم بتعطيل الأشياء التالية في الخيار الثالث: خيارات التمهيد:

  • شاشة البداية
  • اختر cli لبدء التشغيل وليس سطح المكتب

إعداد واي فاي:

شبكة Wifi مفيدة للتنقل بسهولة إلى موقع الويب. تأكد من إغلاق بيانات اعتماد wifi الخاصة بك.

لإعداد wifi ، نحتاج إلى بعض الأشياء:

أضف wifi الخاص بك باستخدام هذا الأمر وقم بتغيير SSID و PASSWORD إلى معلوماتك:

sudo wpa_passphrase "SSID" "كلمة المرور" >> /etc/wpa_supplicant/wpa_supplicant.conf

قم بتنفيذ هذا الأمر لإعادة تكوين wifi الخاص بك:

sudo wpa_cli

حدد الواجهة الصحيحة:

واجهة wlan0

أعد تكوين الواجهة:

إعادة التشكيل

تحقق مما إذا كانت إعادة التكوين ناجحة باستخدام هذا الأمر:

الملكية الفكرية أ

إذا رأيت عنوان IP على واجهة wlan0 ، فسيتم إعداد كل شيء.

تحديث نظام التشغيل

قم بتحديث نظام التشغيل باستخدام الأمرين التاليين:

sudo apt التحديث

sudo apt الترقية الكاملة

إعداد MariaDB:

تثبيت خادم الويب Apache:

sudo apt تثبيت apache2 -y

تثبيت خادم MariaDB:

sudo apt تثبيت خادم mariadb -y

الآن نحن بحاجة إلى إعادة التشغيل:

sudo إعادة التشغيل

يوصى بتأمين تثبيت MariaDB. يمكنك القيام بذلك عن طريق تشغيل هذا الأمر:

sudo mysql_secure_installation

سيُطلب منك أولاً إدخال كلمة مرور الجذر الحالية ولكن التثبيت الافتراضي لا يحتوي على كلمة مرور ، لذا اضغط على إدخال.

بعد ذلك ، سيتم سؤالك عما إذا كنت تريد تعيين كلمة مرور جذر ، اكتب y. تأكد من أنه يمكنك تذكر كلمة المرور!

  • أدخل y لإزالة المستخدمين المجهولين
  • أدخل y لتعطيل تسجيل الدخول إلى الجذر عن بُعد
  • أدخل y لإزالة قواعد بيانات الاختبار والوصول إليها
  • أدخل y لإعادة تحميل الامتيازات

يجب أن يكون تثبيت MariaDB آمنًا!

الآن يمكننا إنشاء مستخدم جديد:

أدخل صدفة mysql بهذا الأمر:

sudo mysql

أنشئ مستخدمًا باسم المستخدم mysql وكلمة المرور (your_password) بالأوامر التالية:

إنشاء المستخدم mysql @ localhost المحدد بواسطة "your_password" ؛

منح جميع الامتيازات في *. * إلى mysql @ localhost ؛

امتيازات التنظيف ؛

اخرج من قذيفة mysql باستخدام هذا الأمر:

خروج؛

حزم بايثون:

يجب تثبيت Python بالفعل إلا إذا اخترت الإصدار Lite:

sudo apt install python3-pip

نحتاج إلى قدر لا بأس به من حزم Python ، يمكنك تثبيتها جميعًا باستخدام الأمر التالي:

pip3 تثبيت mysql-connector-python flask-socketio flask-cors gevent gevent-websocket

الآن نحن بحاجة إلى إعادة التشغيل مرة أخرى

sudo إعادة التشغيل

الخطوة 2: إعداد Visual Studio Code و MySQL Workbench

الاتصال بـ Pi باستخدام MySQL Workbench:

افتح MySQL Workbench

قم بإجراء اتصال جديد بـ Pi بالمعلومات التالية:

  • اسم الاتصال: Raspi
  • طريقة الاتصال: TCP / IP القياسي عبر SSH
  • اسم مضيف SSH: عنوان IP الخاص بـ Pi

يمكنك الحصول على عنوان IP باستخدام هذا الأمر:

الملكية الفكرية أ

  • اسم مستخدم SSH: pi
  • اسم مضيف MySQL: 127.0.0.1
  • منفذ خادم MySQL: 3306
  • اسم المستخدم: mysql

انقر فوق "موافق" وأدخل كلمة المرور الخاصة بالمستخدم pi ثم أدخل كلمة المرور الخاصة بالمستخدم mysql.

إعداد Visual Studio Code:

افتح Visual Studio Code

قم بتثبيت هذين الملحقين:

  • جهاز التحكم عن بعد - SSH
  • Remote - SSH: تحرير ملفات التكوين

اضغط في Visual Studio Code F1 واكتب ssh

اختر Remote SSH: أضف مضيف SSH جديدًا

املأ ssh pi @ IP-address

في الخطوة التالية ، اضغط على مفتاح الإدخال

يتم الآن الاتصال بـ Pi. يمكنك الاتصال بـ Pi بالضغط على F1 واختيار الاتصال بالمضيف البعيد.

أدخل كلمة المرور حتى يتمكن Visual Studio Code من الوصول إلى Pi.

شيء آخر: قم بتثبيت امتداد Python على الجهاز البعيد حتى تتمكن من تشغيل الكود وتصحيحه بسهولة.

الخطوة 3: مخطط فريتزينج

مخطط فريتزينج
مخطط فريتزينج
مخطط فريتزينج
مخطط فريتزينج
مخطط فريتزينج
مخطط فريتزينج

في هذه الخطوة سأشرح الدائرة.

المخططات أعلاه مصنوعة من فريتزينج.

محرك بتيار مستمر:

قم بتوصيل GPIO 18 بقاعدة المجمع ، الدبوس الأوسط في ترانزستور npn. قم بتوصيل أرضية المحرك بالمجمع من الترانزستور وقوة المحرك بجهد 5 فولت. قم بتوصيل أرضية الترانزستور بالخط الأرضي. قم بتوصيل الصمام الثنائي في الحاجز فوق المحرك بحيث يمنع التيار من التدفق مباشرة إلى الترانزستور.

السائر المحركات:

قم بتوصيل محرك السائر بلوحة التحكم. يوجد على لوحة التحكم دبابيس على جانب واحد لتوصيل 5 فولت والأرض. الدبابيس الأخرى هي دبابيس تحكم. تتحكم هذه المسامير في المغناطيس داخل المحرك حتى يتمكن من الدوران. قم بتوصيل هذه المسامير بـ GPIO 12 و 16 و 20 و 21 على Raspberry Pi.

HC-SR04 بالموجات فوق الصوتية:

يستطيع هذا المستشعر قياس المسافات حتى 4.5 متر باستخدام الصوت.

قم بتوصيل دبوس VCC بـ 5 فولت ، ودبوس الزناد بـ GPIO 25 ، ودبوس الصدى بمقاوم 470 أوم إلى GPIO 24 والأرض بمقاوم 470 أوم على الأرض.

MPU6050:

قم بتوصيل دبوس VCC بـ 3V3 ، الأرض بالأرض ، scl بـ scl على Pi و sda بـ sda على Pi. بالنسبة لهذا المستشعر ، أستخدم I2C للتحكم فيه. يمكنك قراءة المزيد عنه هنا. هنا شرح أساسي: Pi هو السيد و MPU6050 هو العبد. من خلال خط scl ، يتحكم Pi في التوقيتات ويستخدم خط sda لإرسال البيانات من السيد إلى العبد أو من العبد إلى السيد. يمكن للسيد فقط بدء نقل البيانات.

المقاوم المعتمد على الضوء:

للحصول على قراءات صحيحة من LDR أستخدم شريحة MCP3008. هذا يضمن أن القراءات من ldr مستقرة وصحيحة محولة من الإشارات التناظرية إلى الرقمية.

قم بتوصيل 3V3 إلى جانب واحد من ldr مع المقاوم 10K أوم بينهما. بين ldr والمقاوم ، قم بتوصيل سلك بالقناة 0 من MCP3008. ثم قم بتوصيل الجانب الآخر من ldr بالأرض.

عرض شاشات الكريستال السائل:

يمكنك استخدام شاشة LCD بدون PCF8574 ولكن نظرًا لأن دبابيس GPIO الموجودة على Pi محدودة ، أستخدم PCF8574 لحفظ بعض دبابيس GPIO. يمكنك أيضًا استخدام سجل المناوبة ولكني أفضل PCF8574. يمكنك التحكم في PCF8574 باستخدام بروتوكول SMbus لكنني كتبت صفي الخاص للتحكم فيه. يتحكم مقياس الجهد في التباين.

دبابيس شاشة LCD:

  • VSS إلى الأرض
  • VDD إلى 5V
  • V0 إلى الدبوس المتغير لمقياس الجهد
  • RS إلى GPIO 13
  • R / W على الأرض لأنني أكتب فقط على الشاشة ولا أقرأ
  • E إلى GPIO 19
  • DB0 إلى P0 من PCF
  • DB1 إلى P1
  • DB2 إلى P2
  • DB3 إلى P3
  • DB4 إلى P4
  • DB5 إلى P5
  • DB6 إلى P6
  • DB7 إلى P7
  • LED + إلى 5V
  • LED- على الأرض

دبابيس PCF8574:

  • A0 على الأرض
  • A1 على الأرض
  • A2 على الأرض
  • من الأرض إلى الأرض
  • VCC إلى 5V
  • SDA إلى GPIO 27
  • SCL إلى GPIO 22 بمقاوم 330 أوم

قد لا يكون لديك LED + و LED- اعتمادًا على نوع الشاشة التي حصلت عليها. LED + و LED- للإضاءة الخلفية.

قم بتوصيل الجانب الإيجابي من مقياس الجهد بـ 5 فولت والأرض بالأرض.

تأكد من استخدام مقاومات السحب!

الخطوة 4: الكود على جيثب

يمكنك العثور على جميع الكودات اللازمة على جيثب الخاص بي.

مشروع المجلد 1:

يحتوي هذا المجلد على جميع التعليمات البرمجية للواجهة الخلفية. في المجلد Klasses عبارة عن جميع الفئات للتحكم في الأجهزة.

تحتوي مستودعات المجلد على ملفين: Database.py و DataRepository.py. يحافظ Database.py على الاتصال بقاعدة البيانات ويتعامل مع الاستعلامات. يحتوي DataRepository.py على جميع الاستعلامات المطلوبة للموقع.

App.py هو الملف الرئيسي للخلفية. يبدأ هذا الملف تلقائيًا عند بدء تشغيل Pi.

يحتوي Config.py على بعض الإعدادات للاتصال بقاعدة البيانات. تأكد من ملء هذه الملفات بمعلوماتك الخاصة.

يمكنك وضع هذا المجلد في أي مكان في الدليل الرئيسي الخاص بك.

مجلد html:

يحتوي هذا المجلد على جميع ملفات الموقع ، الواجهة الأمامية.

  • يحتوي المجلد على ملفات تخطيط الموقع.
  • الخطوط تحتوي على الخطوط المستخدمة في الموقع.
  • يحتوي البرنامج النصي على جميع ملفات جافا سكريبت لجعل الموقع ديناميكيًا

يجب أن يكون هذا المجلد في المجلد / var / www / html

يمكنك نسخ ملف أو مجلد باستخدام هذا الأمر:

sudo mv / path / to / current / directory / path / to / destination / directory

للانتقال إلى نوع الموقع في متصفحك ، عنوان IP المعروض على شاشة LCD.

الخطوة 5: بنية قاعدة البيانات المقيسة

هيكل قاعدة البيانات الطبيعي
هيكل قاعدة البيانات الطبيعي

في هذه الخطوة سنقوم باستيراد قاعدة البيانات.

  1. اتصل بـ Raspberry Pi الخاص بك باستخدام MySQL Workbench
  2. انقر فوق الخادم -> استيراد البيانات
  3. حدد استيراد ملف مضمّن ذاتيًا
  4. في المجلد Database-export من Github ، يوجد ملف sql يسمى dump_project1.sql
  5. استعرض للوصول إلى هذا الملف وانقر فوق بدء الاستيراد

هذا كل شيء. يمكن لـ Pi الآن الوصول إلى قاعدة البيانات إذا كانت تحتوي على المعلومات الصحيحة.

الخطوة 6: حالة لموزع البطاقات

الحال بالنسبة لموزع البطاقات
الحال بالنسبة لموزع البطاقات
الحال بالنسبة لموزع البطاقات
الحال بالنسبة لموزع البطاقات
الحال بالنسبة لموزع البطاقات
الحال بالنسبة لموزع البطاقات

في هذه الخطوة ، سأشرح ما استخدمته للحالة وكيف قمت بتركيب كل شيء.

بالنسبة للحالة ، استخدمت صندوقين ABS:

- 265 × 185 × 95 ملم

- 171 × 121 × 80 ملم

الثقوب التي صنعتها في الصناديق

فتحة لشاشة LCD ، 3 فتحات لكابلات الطاقة ، فتحة للأسلاك من محرك السائر ، محرك DC وجهاز استشعار الموجات فوق الصوتية.

في المربع الأصغر ، قمت بعمل ثقب للأسلاك من المكونات وفتحة لتمرير البطاقات من خلالها. في الجزء العلوي ، قمت بعمل أكبر ثقب حتى تتمكن من وضع أوراق اللعب في الجهاز.

لقد قمت بتركيب محرك DC بقوس وبعض الشريط مزدوج الجوانب. لقد صنعت لوحًا خشبيًا لوضع البطاقات عليه مع فتحة للعجلة لتصوير بطاقة.

لقد اخترت بلاستيك ABS لأنه خفيف الوزن بحيث يمكن للمحرك السائر تحويله بسهولة. يمكن أن يكون الخشب ثقيلًا حقًا وقد يواجه محرك السائر مشاكل في ذلك. لقطع الثقوب ، استخدمت مثقابًا مع مثقاب مصمم للمعدن و Dremel. استغرق قطع الثقوب الأكبر الكثير من العمل وسيكون من الأفضل استخدام المنشار الرقائقي.

الخطوة 7: البرنامج كخدمة

من المفيد حقًا أن يبدأ الكود بعد تمهيد Pi. لذلك نحن بصدد تقديم خدمة.

قم بإنشاء ملف جديد يسمى smartcard.service باستخدام الأمر التالي:

sudo nano /etc/systemd/system/smartcard.service

هذا يجب أن ينتقل إلى الملف:

[وحدة]

الوصف = خلفية البطاقة الذكية بعد = network.target [الخدمة] ExecStart = / usr / bin / python3 -u app.py WorkingDirectory = / home / pi / project1 StandardOutput = ورث StandardError = ورث إعادة التشغيل = دائمًا User = pi [تثبيت] WantedBy = متعدد المستخدمين دليل العمل هو المسار إلى المجلد حيث يوجد البرنامج

الآن لديك البطاقة الذكية الخاصة بك!

موصى به: