فهرست مطالب:

Beargardian: 5 Step
Beargardian: 5 Step

تصویری: Beargardian: 5 Step

تصویری: Beargardian: 5 Step
تصویری: Teddy Bear SCP-6330 Guardians of the Innocent (SCP Animation) 2024, نوامبر
Anonim
بیگاردین
بیگاردین

بچه ها برای مدرسه من به ایده ای برای پروژه نیاز داشتم. بنابراین من فکر می کردم ، این باید یک پروژه با تمشک pi باشد و محلی است. ناگهان من یک ایده عالی داشتم و از من نپرسید که چگونه این ایده را به دست می آورم ، اما من در مورد ارتقاء یک مانیتور کودک فکر کردم. فقط یک ثانیه به این ایده فکر کنید ، بیشتر مانیتورهای کودک فقط وظیفه گوش دادن به اتاق کودک را دارند.

ویژگی ها

  • کمی نمایش روشن با رنگ های قابل تنظیم
  • دوربینی که تصاویر زنده را به شما نشان می دهد
  • بلندگو برای پخش موسیقی
  • سنسورهایی برای ثبت حرکت نوزاد
  • همه چیز نشان داده شده در یک وب سایت

اطلاعات کوتاه

اجازه دهید این را در یک نسخه کوتاه توضیح دهیم. بنابراین ما به یک وب سایت نیاز داریم و برای این پروژه من از Flask استفاده می کنم ، ما همچنین به یک پایگاه داده نیاز داریم و از mysql استفاده می کنم ، همچنین یک اسکریپت که سخت افزار را اجرا می کند و این با پایتون (3) است و در آخرین مورد ما نیاز به راه اندازی سرور داریم که در PI nginx خواهد بود.

ما به چه چیزی نیاز داریم

  • رزبری پای 3
  • نامادری 28BYJ
  • ماژول پله ای راننده استپ موتور ULN2003
  • یک rgb led با 3 مقاومت 330 اهم
  • دوربین Pi NoIR V2
  • سنسور اولتراسونیک HC-SR04
  • ماژول میکرو از ardiuno
  • MAX98357A
  • بلندگوی 8 اهم
  • و خرید خرس را فراموش نکنید

راه اندازی تمشک پی ----------------------------------------------- ------------------------------------------------------ ------------------------------

در ابتدا ما باید Pi را راه اندازی کنیم. برای ورود به سیستم از طریق بتونه شروع کنید ، اگر بتونه ندارید توصیه می کنم این را بارگیری کنید ، به سادگی IP ثابت خود را از Pi با ssh تایپ کنید و با آن کار کنید. اگر باید رزبری پای خود را نصب کنید ، من خبر بدی دریافت کردم ، من این را در این پروژه توضیح نمی دهم.

بسته ها را نصب کنید

به روز رسانی sudo apt

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

محیط مجازی

python3 -m pip install -upgrade pip setuptools wheel virtualenv

mkdir {نام پوشه پروژه شما} && cd {نام پوشه پروژه شما} python3 -m venv --system-site-packages env source env/bin/activing 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 پوشه را مشاهده کنید

  • conf
  • حسادت
  • سنسور
  • sql
  • وب

پایگاه داده

sudo systemctl وضعیت mysql

ss -lt | grep mysql sudo mysql

یک کاربر با همه امتیازات در پایگاه داده ایجاد کنید و پایگاه داده خود را بسازید

ایجاد user 'user'@'localhost' با 'password'؛

ایجاد پایگاه داده yourdatabasename؛ اعطای همه امتیازات بر روی 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 status1-*

اکنون باید این را در دسترس قرار دهیم

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 راه اندازی مجدد nginx.service sudo nginx -t

اگر همه چیز خوب پیش رفت ، باید با این دستور سلام کنید

wget -qO - localhost

انجام شده ! خوب این برای بخشی است که اجازه می دهد سیستم شما را اجرا کند…

مرحله 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

سنسور اولتراسونیک

  • trigge به GPIO 16
  • انعکاس به GPIO 20

مرحله 2: برنامه نویسی برنامه های اصلی

من در اینجا وارد جزئیات نمی شوم ، اما می توانید کد من را در github بررسی کنید.

برای شروع ، من html و css ، فهرست ، ورود ، ثبت نام ، صفحه اصلی ، موسیقی ، addmusic ، addbear ، نور ، دوربین ، تنظیمات دوربین ، سنسور ، صفحه داشبورد را ایجاد کردم. فایلهای html باید در قالبها و فایلهای css در پوشه static/css باشد. می توانید css را مطابق میل خود به طور کامل سفارشی کنید.

اگر این قسمت را انجام دادید باید فلاسک خود را راه اندازی کنید. استفاده از Flask آسان است فقط یک نمونه از جهان سلام

در ابتدا # فلاسک وارد کنید

از واردات فلاسک * @app.route ('/') def index (): render_template را برگردانید ('index.html')

اکنون در کد من این مورد قبلاً پر شده است ، تنها کاری که باید انجام دهید این است که کاربر و رمز عبور پایگاه داده را به شما تغییر دهید و البته همان پایگاه داده ای را که می توانید در github پیدا کنید ، ایجاد کنید.

مرحله 3: ایجاد پایگاه داده

ایجاد پایگاه داده
ایجاد پایگاه داده

برای طرفداران واقعی ، من به شما می گویم که چگونه پایگاه داده یکسانی ایجاد کنید.

بنابراین اگر در مرحله اول این کار را نکرده اید ، ابتدا باید پایگاه داده را ایجاد کنیم.

ایجاد پایگاه داده beargardian؛

پس از انجام این کار ، جداول را در mysql workbench یا phpadmin ایجاد کنید

جدول کاربر دارای

  • شناسه کاربری
  • نام کوچک
  • نام خانوادگی
  • پست الکترونیک
  • نام نوزاد
  • رمز عبور با sha1
  • پوشه کاربر
  • پخش موسیقی (int)
  • نور بازی (int)
  • ضبط بازی (int)

میز موسیقی دارد

  • musicID
  • ترانه
  • مسیر
  • پوشه کاربر
  • وضعیت
  • جلد

میز ضبط دارد

  • ضبط ID
  • مسیر
  • پوشه کاربر
  • زمان
  • روز

جدول رنگی دارد

  • colorID
  • قرمز
  • سبز
  • آبی
  • روشنایی
  • شناسه کاربری

میز خرس دارد

  • bearID (اعشاری (8))
  • userID پیش فرض null
  • نام تجاری

میز سنسور دارد

  • sensorID
  • فاصله
  • کوچک
  • bearID
  • زمان
  • روز
  • وقت خواب

بنابراین اکنون شما پایگاه داده را با موفقیت ایجاد کرده اید ، بیایید به سخت افزار برویم.

مرحله 4: کدگذاری سخت افزار

من کمی کد نشان می دهم و به شما می گویم که چرا این کار را به این شکل انجام دادم.

برای شروع ، من از threading استفاده کردم ، آنچه باید در این پروژه مطلق باشد. موضوع چیست ، هوممم سوال خوبی است! تهدید در پایتون اجرای چندین برنامه همزمان است. بنابراین اگر شما به عنوان مثال رنگ را تغییر دهید می توانید ضبط کنید. استفاده از آن آسان است نگران نباشید.

import _threaddef function_name (چیزی ، چیزی_ دیگر): کد برای اجرا

_thread.start_new_thread (نام تابع ، چندگانه_با_متغییرهای_عملکرد)

اگر به برنامه من نگاه کردید logger.info ('…') را مشاهده کردید. این عملکرد چاپ است اما بسیار بهتر است ، زیرا در Pi نمی توانید چیزهایی را چاپ کنید بنابراین من یک فایل ایجاد می کنم و آن را در آنجا چاپ می کنم. Yoe می تواند فایل log را با این کد تنظیم کند.

logger = logging.getLogger (_ name _) logger.setLevel (logging. INFO) # ایجاد یک handler file handler = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)

# یک قالب ورود به سیستم ایجاد کنید

formatter = logging. Formatter ('٪ (asctime) s -٪ (name) s -٪ (message) s') handler.setFormatter (formatter)

# handlers را به logger اضافه کنید

logger.addHandler (handler)

logger.info ('راه اندازی سخت افزار / n ---------------------------------------')

بیشتر در خود کد همه چیز را توضیح می دهم.

توصیه شده: