Mündəricat:

Beargardian: 5 addım
Beargardian: 5 addım

Video: Beargardian: 5 addım

Video: Beargardian: 5 addım
Video: Teddy Bear SCP-6330 Guardians of the Innocent (SCP Animation) 2024, Noyabr
Anonim
Beargardian
Beargardian

Hey uşaqlar məktəbdə bir layihə üçün bir fikrə ehtiyacım var idi. Düşünürdüm ki, bu, moruq pi ilə bir layihə olmalı və yerli. Birdən əla bir fikrim var idi və məndən bu fikri necə aldığımı soruşmuram, amma körpə monitor üçün təkmilləşdirmə haqqında düşündüm. Bu fikir haqqında bir saniyə düşünün, ən körpə monitorların yalnız körpənin otağını dinləmək funksiyası var.

Xüsusiyyətlər

  • Tənzimlənən rənglərlə kiçik işıq şousu
  • Canlı görüntüləri göstərən bir kamera
  • Musiqi çalmaq üçün natiq
  • Körpənin hərəkəti üçün sensorlar
  • Bütün bunlar bir saytda göstərilir

Qısa məlumat

Bunu qısa bir versiyada izah edək. Buna görə bir veb saytımız lazımdır və bu layihə üçün Flask istifadə edirəm, bir verilənlər bazasına ehtiyacımız var və mysql -dən istifadə edirəm, bu da aparatı işlədən bir skriptdir və bu python (3) ilədir və son olaraq bir server qurulmasına ehtiyacımız var. bu PI -də nginx olardı.

Nəyə ehtiyacımız var

  • Raspberry Pi 3
  • Stepbotor 28BYJ
  • Stepmotor sürücü çipi ULN2003 stepper modulu
  • 330 Ohm 3 rezistorlu bir rgb led
  • Pi NoIR kamera V2
  • HC-SR04 ultrasəs sensoru
  • Ardiuno mikro modulu
  • MAX98357A
  • Dinamik 8Ohm
  • Bir ayı almağı da unutmayın

Moruq pi qurmaq ----------------------------------------------- -------------------------------------------------- --------------------------

Əvvəlcə Pi qurmalıyıq. Putty ilə daxil olmağa artıq başlayın, əgər macun yoxdursa, bunu yükləməyinizi məsləhət görürəm, sadəcə Pi -nin statik ipini ssh ilə yazın və onunla gedin. Raspberry Pi -ni quraşdırmalı olsanız, pis bir xəbər aldım, bunu bu layihədə izah etmirəm.

Paketləri quraşdırın

sudo apt yeniləmə

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

Virtual mühit

python3 -m pip install -pip setuptools təkərini virtualenv təkmilləşdirin

mkdir {layihənizin adı} && cd {layihənizin qovluq adı} python3 -m venv --sistem-sayt-paketləri env/bin/python -m pipini aktivləşdir -m pip mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask- MySQL mysql-bağlayıcı-python keçid

İndi layihə qovluğunuzdakı git deposunu klonlamalısınız

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

Layihə qovluğunuza baxsanız 5 qovluq görməlisiniz

  • konf
  • env
  • sensor
  • kv
  • veb

Verilənlər bazası

sudo systemctl status mysql

ss -lt | grep mysql sudo mysql

verilənlər bazasında bütün imtiyazlara malik bir istifadəçi yaradın və verilənlər bazanızı yaradın

'parol' ilə təyin olunan 'user'@'localhost' istifadəçisi yaratmaq;

verilənlər bazası adınızı yaradın; Verilənlər bazası adınızdakı bütün imtiyazları verin.* qrant seçimi ilə 'user'@'localhost' a;

Server üçün konf faylları

Uwsgi-flask.ini-də 'module =…' '' module = web: app 'və yaratdığınız virtual aləminizin yolunu dəyişirsiniz. Digər fayllarda, yollarınızı qovluğunuzun həqiqi mütləq yollarına dəyişdirməlisiniz.

Faylları doğru yerə təyin edə biləcəyinizi başa düşdükdən sonra.

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

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

İndi bunu əlçatan etməliyik

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

Hər şey yolunda gedirsə, bu komanda ilə dünyaya salam verməlisiniz

wget -qO - localhost

Bitdi! Yaxşı, bu, sisteminizi işə salmağın bir hissəsidir …

Addım 1: Avadanlığı Pi -yə bağlayın

Avadanlıqları Pi -yə bağlamaq
Avadanlıqları Pi -yə bağlamaq

BCM istifadə edərək

audio MAX98357A

  • BCK -dan GPIO 18 -ə qədər
  • GPIO 21 məlumatları
  • LRCK -dan GPIO 19 -a

işıq

  • qırmızı GPIO 17
  • GPIO 27 üçün yaşıl
  • mavi GPIO 22 -ə qədər

motor modulu ULN2003

  • pin 1 -ni GPIO 5 -ə bağlayın
  • pin 2 -ni GPIO 6 -ya bağlayın
  • pin 3 -ü GPIO 13 -ə bağlayın
  • pin 4 -ü GPIO 26 -ya bağlayın

mikro

D0 - GPIO 21

ultrasəs sensoru

  • GPIO 16 -ya keçin
  • GPIO 20 -ə əks -səda

Addım 2: Əsas Proqramların Kodlaşdırılması

Mən burada detallara girmirəm, ancaq kodumu github -da yoxlaya bilərsiniz.

Başlamaq üçün html və css, indeks, giriş, qeydiyyat, ana ekran, musiqi, əlavə musiqi, əlavə cihaz, işıq, kamera, kamera ayarları, sensor, tablosuna səhifə etdim. HTML faylları şablonlarda və css faylları statik/css qovluğunda olmalıdır. İstədiyiniz kimi CSS -ni tam olaraq düzəldə bilərsiniz.

Bu hissəni yerinə yetirmisinizsə, qabınızı qurmalısınız. Şüşə salam dünyanın yalnız bir nümunəsini istifadə etmək asandır

əvvəlcə # idxal qabı

qabdan idxaldan * @app.route ('/') def index (): render_template qaytarın ('index.html')

İndi kodumda bu artıq doldurulmuşdur, etməniz lazım olan tək şey verilənlər bazası istifadəçisini və şifrənizi sizdən dəyişdirmək və əlbəttə ki, github -da tapa biləcəyiniz eyni verilənlər bazasını etməkdir.

Addım 3: Verilənlər bazasının yaradılması

Verilənlər bazasının yaradılması
Verilənlər bazasının yaradılması

Əsl azarkeşlər üçün eyni verilənlər bazasını necə yaratacağınızı söyləyəcəyəm.

Birinci addımda etməsəniz, əvvəlcə verilənlər bazasını yaratmalıyıq.

beargardian verilənlər bazası yaratmaq;

Bunu etdikdən sonra cədvəlləri mysql workbench və ya phpadmin -də yaradırsınız

istifadəçi cədvəli var

  • İstifadəçi adı
  • ad
  • Soyad
  • e -poçt
  • baba adı
  • sha1 ilə parol
  • istifadəçi qovluğu
  • playmusic (int)
  • oyun işığı (int)
  • oyun qeydləri (int)

musiqi masası var

  • musiqi id
  • mahnı
  • yol
  • istifadəçi qovluğu
  • status
  • həcm

qeyd masası var

  • qeydiyyat ID
  • yol
  • istifadəçi qovluğu
  • vaxt
  • gün

rəng masası var

  • colorID
  • qırmızı
  • yaşıl
  • mavi
  • parlaqlıq
  • İstifadəçi adı

ayı masası var

  • bearID (onluq (8))
  • userID defolt null
  • adı

sensor masası var

  • sensor ID
  • məsafə
  • mikro
  • ayı kimliyi
  • vaxt
  • gün
  • yuxu vaxtı

İndi verilənlər bazasını uğurla yaratdınız, aparata keçək.

Addım 4: Avadanlıq Kodlaşdırması

Bir az kod göstərəcəyəm və bunu niyə belə etdiyimi söyləyəcəyəm.

Mövzudan istifadə etməklə başlamaq üçün bu layihədə mütləq bir şey olmalıdır. İplik nədir, hmmm yaxşı sual! Python -da yaxşı təhdid edən birdən çox proqramı işə salmaqdır. Məsələn, rəngi dəyişdirsəniz, qeyd edə bilərsiniz. İstifadəsi asandır, narahat olmayın.

import _threaddef function_name (bir şey, bir şey_else): çalıştırılacak kod

_thread.start_new_thread (funksiya_adı,_funksiyalar_dəyişənləri ilə birlikdə)

Proqramıma baxsanız logger.info gördünüz ('…'). Bu çap funksiyasıdır, amma daha yaxşıdır, çünki Pi -də heç bir şey çap edə bilməzsiniz, buna görə də bir fayl düzəldirəm və orada çap edirəm. Yoe, bu faylla günlük faylını təyin edə bilər.

logger = logging.getLogger (_ adı _) logger.setLevel (logging. INFO) # bir fayl işləyicisi işləyən yaradın = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)

# qeyd formatı yaradın

formatter = logging. Formatter (' %(asctime) s - %(ad) s - %(mesaj) s') handler.setFormatter (formatlayıcı)

# işləyiciləri qeyd cihazına əlavə edin

logger.addHandler (işçi)

logger.info ('aparatı işə salın / n ---------------------------------------')

Kodun özündə hər şeyi izah edirəm.

Tövsiyə: