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

بيرغارديان: 5 خطوات
بيرغارديان: 5 خطوات

فيديو: بيرغارديان: 5 خطوات

فيديو: بيرغارديان: 5 خطوات
فيديو: 5 اسرار للـ Endodontic Working Length 2024, شهر نوفمبر
Anonim
بيرغارديان
بيرغارديان

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

المميزات

  • عرض خفيف مع ألوان قابلة للتعديل
  • كاميرا تعرض لك صورًا حية
  • مكبر صوت لتشغيل الموسيقى
  • مستشعرات لالتقاط حركة الطفل
  • كل ما يظهر على موقع على شبكة الإنترنت

معلومات قصيرة

اسمحوا لي أن أشرح هذا في نسخة قصيرة. لذلك نحن بحاجة إلى موقع ويب وهذا المشروع الذي أستخدمه Flask ، نحتاج أيضًا إلى قاعدة بيانات وأنا أستخدم mysql ، وهو أيضًا برنامج نصي يقوم بتشغيل الأجهزة وهذا مع python (3) وأخيرًا نحتاج إلى إعداد خادم سيكون ذلك nginx على PI.

ماذا نحتاج

  • توت العليق باي 3
  • 28BYJ متدرج
  • وحدة السائر ULN2003 ذات المحرك المتدرج
  • RGB ليد مع 3 مقاومات 330 أوم
  • كاميرا Pi NoIR V2.0
  • جهاز استشعار الموجات فوق الصوتية HC-SR04
  • الوحدة الصغيرة من ardiuno
  • MAX98357A
  • مكبر صوت 8 أوم
  • ولا تنس شراء دب

إعداد raspberry pi ----------------------------------------------- -------------------------------------------------- --------------------------

في البداية نحتاج إلى إعداد Pi. ابدأ بالفعل في تسجيل الدخول عبر المعجون ، إذا لم يكن لديك معجون أوصيك بتنزيل هذا ، فما عليك سوى كتابة عنوان IP الثابت الخاص بـ Pi مع ssh وتذهب معه. إذا كان عليك تثبيت Raspberry Pi الخاص بك ، فحينئذٍ تلقيت أخبارًا سيئة ، فأنا لا أشرح ذلك في هذا المشروع.

تثبيت الحزم

sudo apt التحديث

sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3

بيئة افتراضية

تثبيت python3 -m pip - ترقية pip setuptools wheel virtualenv

mkdir {your project foldername} && cd {your project foldername} python3 -m venv --system-site -pack env source env / bin / activ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask- MySQL mysql-connector-python passlib

الآن عليك استنساخ مستودع git في مجلد المشروع الخاص بك

github.com/NMCT-S2-Project-I/Project-I.git

إذا نظرت في مجلد المشروع الخاص بك ، يجب أن ترى 5 مجلدات

  • أسيوط
  • الحسد
  • المستشعر
  • sql
  • الويب

قاعدة البيانات

sudo systemctl حالة mysql

ss -lt | grep mysql sudo mysql

إنشاء مستخدم في قاعدة البيانات مع جميع الامتيازات وجعل قاعدة البيانات الخاصة بك

إنشاء مستخدم "مستخدم" @ "مضيف محلي" معرف بواسطة "كلمة مرور" ؛

إنشاء قاعدة بيانات yourdatabasename ؛ منح جميع الامتيازات على اسم قاعدة البيانات الخاصة بك. * إلى "user" @ "localhost" مع خيار المنح ؛

ملفات Conf للخادم

في uwsgi-flask.ini ، تقوم بتغيير "module = …" إلى "module = web: app" والمسار إلى virtualenv الذي قمت بإنشائه. في الملفات الأخرى ، تحتاج إلى تغيير المسارات إلى المسارات الفعلية المطلقة للدليل الخاص بك.

بمجرد معرفة ذلك ، يمكنك ضبط الملفات في المكان المناسب.

sudo cp conf / project1 - *. service / etc / systemd / system /

sudo systemctl daemon-reload sudo systemctl start project1- * sudo systemctl status project1- *

الآن علينا تعيين هذا متاحًا

sudo cp conf / nginx / etc / nginx / sites-available / project1

sudo rm / etc / nginx / sites-enabled / default sudo ln -s / etc / nginx / sites-available / project1 / etc / nginx / sites-enabled / project1 sudo systemctl reset nginx.service sudo nginx -t

إذا سارت الأمور على ما يرام ، يجب أن يكون لديك عالم مرحبًا بهذا الأمر

wget -qO - المضيف المحلي

منتهي ! حسنًا ، هذا هو الجزء الذي يسمح بتشغيل نظامك …

الخطوة 1: توصيل الأجهزة بـ Pi

توصيل الأجهزة بـ Pi
توصيل الأجهزة بـ Pi

باستخدام BCM

صوت MAX98357A

  • BCK إلى GPIO 18
  • البيانات إلى GPIO 21
  • LRCK إلى GPIO 19

ضوء

  • أحمر إلى GPIO 17
  • أخضر إلى GPIO 27
  • الأزرق إلى GPIO 22

وحدة المحرك ULN2003

  • دبوس 1 إلى GPIO 5
  • دبوس 2 إلى GPIO 6
  • دبوس 3 إلى GPIO 13
  • دبوس 4 إلى GPIO 26

مجهري

D0 إلى GPIO 21

أجهزة الاستشعار بالموجات فوق الصوتية

  • حساب المثلثات إلى GPIO 16
  • صدى لـ GPIO 20

الخطوة الثانية: برمجة البرامج الرئيسية

أنا لا أدخل في التفاصيل هنا ولكن يمكنك التحقق من الكود الخاص بي في جيثب.

لتبدأ ، قمت بإنشاء html و css ، فهرس ، تسجيل دخول ، تسجيل ، شاشة رئيسية ، موسيقى ، addmusic ، addbear ، light ، camera ، cameraettings ، sensor ، dashboard page. يجب أن تكون ملفات html في القوالب وملفات css في مجلد static / css. يمكنك تخصيص ملف css تمامًا كما يحلو لك.

إذا قمت بهذا الجزء ، فأنت بحاجة إلى إعداد القارورة الخاصة بك. Flask سهل الاستخدام مجرد مثال على عالم hello

# استيراد القارورة في البداية

من flask import * @ app.route ('/') def index (): return render_template ('index.html')

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

الخطوة 3: إنشاء قاعدة البيانات

إنشاء قاعدة البيانات
إنشاء قاعدة البيانات

بالنسبة للمعجبين الحقيقيين ، سأخبركم بكيفية إنشاء نفس قاعدة البيانات.

لذلك نحتاج أولاً إلى إنشاء قاعدة البيانات إذا لم تفعل ذلك في الخطوة الأولى.

إنشاء قاعدة بيانات Beargardian ؛

بمجرد القيام بذلك ، تقوم بإنشاء الجداول في mysql workbench أو phpadmin

يحتوي جدول المستخدم

  • معرف المستخدم
  • الاسم الأول
  • الكنية
  • البريد الإلكتروني
  • بابينام
  • كلمة المرور مع sha1
  • مجلد المستخدم
  • playmusic (int)
  • playlight (int)
  • playrecording (int)

طاولة الموسيقى لها

  • musicID
  • أغنية
  • طريق
  • مجلد المستخدم
  • الحالة
  • الصوت

يحتوي جدول التسجيل

  • معرف التسجيل
  • طريق
  • مجلد المستخدم
  • زمن
  • يوم

يحتوي جدول الألوان

  • معرف
  • أحمر
  • لون أخضر
  • أزرق
  • سطوع
  • معرف المستخدم

طاولة الدب لها

  • معرف الدب (عشري (8))
  • معرف المستخدم الافتراضي فارغ
  • بيرنام

يحتوي جدول الاستشعار

  • مستشعر
  • مسافه: بعد
  • مجهري
  • معرف الدب
  • زمن
  • يوم
  • وقت النوم

والآن بعد أن أنشأت قاعدة البيانات بنجاح ، دعنا ننتقل إلى الأجهزة.

الخطوة 4: ترميز الأجهزة

سأعرض القليل من الشفرة وأخبرك لماذا فعلت ذلك بهذه الطريقة.

بادئ ذي بدء ، استخدمت الخيوط ، ما يجب أن يكون مطلقًا في هذا المشروع. ما هو الخيوط ، هممم سؤال جيد! التهديد الجيد في Python هو تشغيل برامج متعددة في وقت واحد. لذلك إذا قمت بتغيير اللون على سبيل المثال ، يمكنك أيضًا تسجيله. إنه سهل الاستخدام ولا تقلق.

import _threaddef function_name (something، something_else): كود للتشغيل

_thread.start_new_thread (function_name، tuple_with_the_functions_variables)

إذا نظرت إلى برنامجي رأيت logger.info ("…"). هذه هي وظيفة الطباعة ولكنها أفضل بكثير ، لأنه على Pi لا يمكنك طباعة الأشياء لذلك أقوم بإنشاء ملف وطباعته هناك. يمكنك تعيين ملف السجل مع هذا الرمز.

logger = logging.getLogger (_ name _) logger.setLevel (logging. INFO) # إنشاء معالج معالج ملف = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)

# إنشاء تنسيق التسجيل

المنسق = التسجيل. المنسق ('٪ (asctime) s -٪ (name) s -٪ (message) s') handler.setFormatter (المنسق)

# إضافة المعالجات إلى المسجل

logger.addHandler (معالج)

logger.info ('بدء تشغيل الأجهزة / n ---------------------------------------')

كذلك في الكود نفسه أشرح كل شيء.

موصى به: