Агуулгын хүснэгт:

Beargardian: 5 алхам
Beargardian: 5 алхам

Видео: Beargardian: 5 алхам

Видео: Beargardian: 5 алхам
Видео: Teddy Bear SCP-6330 Guardians of the Innocent (SCP Animation) 2024, Арваннэгдүгээр
Anonim
Бергардиан
Бергардиан

Хөөе сургуулийн хүүхдүүд ээ, надад төслийн санаа хэрэгтэй байсан. Тиймээс би энэ нь бөөрөлзгөнө пи бүхий төсөл байх ёстой гэж бодож байсан бөгөөд энэ нь орон нутгийнх юм. Гэнэт надад гайхалтай санаа төрсөн бөгөөд энэ санаагаа яаж олж авсныг надаас асуугаагүй ч хүүхдийн мониторыг шинэчлэх талаар бодсон. Энэ санааг нэг хором бодоод үзээрэй, ихэнх нярай хүүхдийн монитор нь хүүхдийн өрөөг сонсох чадвартай байдаг.

Онцлог шинж чанарууд

  • Тохируулах өнгө бүхий бяцхан гэрлийн шоу
  • Танд амьд зургийг харуулдаг камер
  • Хөгжим тоглуулах чанга яригч
  • Хүүхдийн хөдөлгөөнийг мэдрэх мэдрэгч
  • Энэ бүхэн вэбсайт дээр харагдаж байна

Богино мэдээлэл

Үүнийг богино хувилбараар тайлбарлая. Тиймээс бидэнд вэбсайт хэрэгтэй бөгөөд энэ төслийн хувьд би Колбыг ашиглаж байна, бидэнд бас мэдээллийн сан хэрэгтэй, би mysql -ийг ашиглаж байна, энэ нь техник хангамжийг ажиллуулдаг скрипт бөгөөд энэ нь python (3) -тэй бөгөөд хамгийн сүүлд бидэнд серверийн тохиргоо хэрэгтэй болно. Энэ нь PI дээрх nginx байх болно.

Бидэнд юу хэрэгтэй байна

  • Raspberry Pi 3
  • Алсын хөдөлгүүр 28BYJ
  • Stepmotor драйверын чип ULN2003 stepper модуль
  • 330Ohm 3 эсэргүүцэлтэй rgb LED
  • Pi NoIR камер V2
  • HC-SR04 хэт авианы мэдрэгч
  • Ardiuno -ийн микро модуль
  • MAX98357A
  • Чанга яригч 8 Ом
  • Мөн баавгай худалдаж авахаа бүү мартаарай

Бөөрөлзгөнө pi тохируулах ----------------------------------------------- -------------------------------------------------- --------------------------

Эхлээд бид Pi -г тохируулах хэрэгтэй. Шаваасаар нэвтрэх ажлыг аль хэдийн эхлүүлээрэй, хэрэв танд шаваас байхгүй бол би үүнийг татаж авахыг зөвлөж байна, зүгээр л Pi -ийн статик ip -ийг ssh ашиглан бичээрэй. Хэрэв та Raspberry Pi -ээ суулгах шаардлагатай бол надад муу мэдээ байна, би үүнийг энэ төсөлд тайлбарлаагүй байна.

Багц суулгах

sudo apt update

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

Виртуал орчин

python3 -m pip install -pip setuptools wheel virtualenv -ийг сайжруулах

mkdir {таны төслийн хавтасны нэр} && cd {таны төслийн хавтасны нэр} python3 -m venv --system-site-packages env source env/bin/python -m pip-ийг идэвхжүүлэх mysql-connector-python argon2-cffi колбо колбо-HTTPAuth Flask- MySQL mysql-connector-python нэвтрэх

Одоо та төслийн хавтсан дахь git репозиторийг хуулбарлах хэрэгтэй

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

Хэрэв та өөрийн төслийн хавтсыг харвал 5 хавтас харах ёстой

  • conf
  • env
  • мэдрэгч
  • кв
  • вэб

Мэдээллийн сан

sudo systemctl status mysql

ss -lt | grep mysql sudo mysql

мэдээллийн санд бүх давуу эрх бүхий хэрэглэгч үүсгэж, мэдээллийн баазаа бүрдүүлэх

'нууц үг' -ээр тодорхойлогдсон хэрэглэгчийн 'хэрэглэгч'@'localhost' үүсгэх;

өгөгдлийн сангийн нэрээ үүсгэх; өгөгдлийн баазын нэр дээрх бүх давуу эрхийг олгоно.

Серверийн конф файлууд

Uwsgi-flask.ini-д та 'module =…' -г 'module = web: app' болгон өөрчилж, өөрийн үүсгэсэн виртуал сүлжээний замыг өөрчилнө. Бусад файлууд дээр та лавлахынхаа абсолют замуудын замыг өөрчлөх хэрэгтэй.

Үүнийг олж мэдсэний дараа та файлуудаа зөв газар байрлуулж болно.

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

sudo systemctl демон-дахин ачаалах sudo systemctl start project1-* sudo systemctl төлөвийн төсөл1-*

одоо бид үүнийг боломжтой болгох ёстой

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 restart nginx.service sudo nginx -t

Хэрэв бүх зүйл сайн болсон бол та энэ тушаалаар сайн байна уу

wget -qO - localhost

Дууссан! Энэ бол таны системийг ажиллуулах хэсэг юм …

Алхам 1: Тоног төхөөрөмжийг Pi руу холбох

Тоног төхөөрөмжийг Pi руу холбох
Тоног төхөөрөмжийг Pi руу холбох

BCM ашиглан

аудио MAX98357A

  • BCIO -аас 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 руу цуурайтах

Алхам 2: Үндсэн програмуудыг кодлох

Би энд дэлгэрэнгүй мэдээлэл өгөхгүй байна, гэхдээ та github дээр миний кодыг шалгаж болно.

Эхлэхийн тулд би html, css, индекс, нэвтрэх, бүртгүүлэх, гэрийн дэлгэц, хөгжим, addmusic, addbear, гэрэл, камер, камерын тохиргоо, мэдрэгч, хяналтын самбарын хуудсыг хийсэн. Html файлууд нь загварууд болон css файлууд нь static/css хавтсанд байх ёстой. Та CSS -ийг хүссэнээрээ бүрэн тохируулах боломжтой.

Хэрэв та энэ хэсгийг хийсэн бол колбыг тохируулах хэрэгтэй. Колбо нь сайн уу ертөнцийн жишээг ашиглахад хялбар байдаг

Эхэндээ # импортын колбо

колбоны импортоос * @app.route ('/') def index (): render_template буцах ('index.html')

Одоо миний кодонд үүнийг аль хэдийн бөглөсөн байгаа бөгөөд таны хийх ёстой цорын ганц зүйл бол мэдээллийн сангийн хэрэглэгч болон нууц үгийг өөрөөсөө өөрчилж, мэдээж github дээрээс олж болох мэдээллийн баазаа хийх явдал юм.

Алхам 3: Мэдээллийн сан үүсгэх

Мэдээллийн сан үүсгэх
Мэдээллийн сан үүсгэх

Жинхэнэ шүтэн бишрэгчдийн хувьд би ижил мэдээллийн санг хэрхэн бий болгох талаар танд хэлэх болно.

Тиймээс, хэрэв та эхний алхам дээр хийгээгүй бол бид эхлээд мэдээллийн санг бий болгох хэрэгтэй.

beargardian мэдээллийн сан үүсгэх;

Үүнийг хийсний дараа та хүснэгтийг mysql workbench эсвэл phpadmin дээр үүсгэж болно

хэрэглэгчийн хүснэгт байна

  • хэрэглэгчийн ID
  • Нэр
  • овог
  • имэйл илгээх
  • хүүхдийн нэр
  • sha1 бүхий нууц үг
  • хэрэглэгчийн хавтас
  • playmusic (int)
  • тоглоомын гэрэл (int)
  • тоглох бичлэг (int)

хөгжмийн ширээ байна

  • хөгжим ID
  • дуу
  • зам
  • хэрэглэгчийн хавтас
  • байдал
  • эзлэхүүн

бичлэгийн хүснэгт байна

  • бичлэг ID
  • зам
  • хэрэглэгчийн хавтас
  • цаг
  • өдөр

өнгөний хүснэгт байна

  • colorID
  • улаан
  • ногоон
  • хөх
  • тод байдал
  • хэрэглэгчийн ID

баавгайн ширээ байна

  • bearID (аравтын бутархай (8))
  • userID анхдагч null
  • овог нэр

мэдрэгчийн хүснэгт байдаг

  • мэдрэгч ID
  • зай
  • бичил
  • баавгай
  • цаг
  • өдөр
  • унтах цаг

Одоо та мэдээллийн санг амжилттай бүтээсэн тул тоног төхөөрөмж рүүгээ явцгаая.

Алхам 4: Тоног төхөөрөмжийн кодчилол

Би жаахан код үзүүлээд яагаад ийм зүйл хийснээ хэлье.

Эхлэхийн тулд би энэ урсгалд туйлын чухал зүйл байх ёстой. Урсгал гэж юу вэ, хммм сайхан асуулт байна! Питон дээр аюул заналхийлж байгаа зүйл бол олон програмыг нэгэн зэрэг ажиллуулах явдал юм. Тиймээс, хэрэв та жишээ нь өнгөө өөрчилвөл бичлэг хийх боломжтой. Хэрэглэхэд хялбар, санаа зоволтгүй.

import _threaddef function_name (ямар нэг зүйл, ямар нэгэн зүйл): ажиллуулах код

_thread.start_new_thread (функцын_ нэр, функцүүдийн_хувьсагчуудтай хамт)

Хэрэв та миний програмыг харсан бол logger.info ('…') харагдсан. Энэ бол хэвлэх функц боловч илүү дээр юм, учир нь Pi дээр та ямар ч зүйлийг хэвлэж чадахгүй тул би файл хийж тэнд хэвлэдэг. Yoe бүртгэлийн файлыг энэ кодоор тохируулж болно.

logger = logging.getLogger (_ нэр _) logger.setLevel (logging. INFO) # файл зохицуулагч үүсгэх = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)

# бүртгэлийн формат үүсгэх

форматлагч = бүртгэл хийх

# зохицуулагчийг бүртгэгч рүү нэмнэ үү

logger.addHandler (зохицуулагч)

logger.info ('техник хангамжийг эхлүүлэх / n ---------------------------------------')

Цаашлаад код өөрөө би бүх зүйлийг тайлбарлаж өгдөг.

Зөвлөмж болгож буй: