Isi kandungan:

Beargardian: 5 Langkah
Beargardian: 5 Langkah

Video: Beargardian: 5 Langkah

Video: Beargardian: 5 Langkah
Video: Teddy Bear SCP-6330 Guardians of the Innocent (SCP Animation) 2024, November
Anonim
Beargardian
Beargardian

Hai kawan-kawan untuk sekolah saya memerlukan idea untuk projek. Oleh itu, saya berfikir, ia mesti menjadi projek dengan raspberry pi dan ia bersifat tempatan. Tiba-tiba saya mempunyai idea hebat dan tidak bertanya bagaimana saya mendapat idea itu tetapi saya memikirkan peningkatan untuk monitor bayi. Fikirkan sebentar mengenai idea itu, kebanyakan monitor bayi hanya mempunyai fungsi untuk mendengar bilik bayi.

Keistimewaannya

  • Pertunjukan cahaya sedikit dengan warna yang boleh disesuaikan
  • Kamera yang menunjukkan gambar langsung kepada anda
  • Pembesar suara untuk memainkan muzik
  • Sensor untuk menangkap bayi yang bergerak
  • Semua itu dipaparkan di laman web

Maklumat ringkas

Mari kita jelaskan ini dalam versi pendek. Oleh itu, kami memerlukan laman web dan untuk projek ini saya menggunakan Flask, kami juga memerlukan pangkalan data dan saya menggunakan mysql, juga skrip yang menjalankan perkakasan dan ini dengan python (3) dan yang terakhir kami memerlukan persediaan pelayan itu akan menjadi nginx pada PI.

Apa yang kita perlukan

  • Raspberry Pi 3
  • Motor tiri 28BYJ
  • Modul stepper motorchip ULN2003 stepper
  • Rgb dipimpin dengan 3 perintang 330Ohm
  • Kamera Pi NoIR V2
  • Sensor ultrasonik HC-SR04
  • Modul mikro dari ardiuno
  • MAX98357A
  • Pembesar suara 8Ohm
  • Dan jangan lupa membeli beruang

Sediakan pi raspberry ----------------------------------------------- -------------------------------------------------- --------------------------

Pada mulanya kita perlu menyiapkan Pi. Mulailah sudah masuk melalui dempul, jika anda tidak mempunyai dempul, saya cadangkan anda memuat turun ini, cukup taip ip statik Pi anda dengan ssh dan anda terus menggunakannya. Sekiranya anda perlu memasang Raspberry Pi anda maka saya mendapat berita buruk, saya tidak menerangkannya dalam projek ini.

Pasang pakej

sudo apt kemas kini

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

Persekitaran maya

python3 -m pip memasang - tingkatkan pemasangan setuptools wheel virtualenv

mkdir {nama folder projek anda} && cd {nama folder projek anda} python3 -m venv --sistem-laman-pakej env sumber env / bin / aktifkan python -m pip pasang mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask- MySQL mysql-penyambung-python passlib

Sekarang anda harus mengklon git repositori di folder projek anda

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

Sekiranya anda melihat di folder projek anda, anda mesti melihat 5 folder

  • pengesahan
  • env
  • sensor
  • sql
  • laman web

Pangkalan data

sudo systemctl status mysql

ss -lt | grep mysql sudo mysql

buat pengguna dalam pangkalan data dengan semua keistimewaan dan buat pangkalan data anda

buat pengguna 'user' @ 'localhost' yang dikenal pasti dengan 'password';

buat pangkalan data nama anda; berikan semua keistimewaan pada nama data anda. * kepada 'user' @ 'localhost' dengan pilihan hibah;

Fail konfigurasi untuk pelayan

Di uwsgi-flask.ini anda menukar 'module = …' menjadi 'module = web: app' dan jalan ke virtualenv yang anda buat. Dalam fail lain, anda perlu menukar jalan ke jalur mutlak sebenar direktori anda.

Setelah anda mengetahui bahawa anda boleh menetapkan fail di tempat yang betul.

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

sudo systemctl daemon-reload sudo systemctl memulakan projek1- * projek status sudo systemctl1- *

sekarang kita harus menetapkan ini tersedia

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

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

Sekiranya semuanya berjalan lancar, anda pasti mendapat salam dari perintah ini

wget -qO - localhost

Selesai! Baiklah untuk membiarkan sistem anda berjalan di…

Langkah 1: Pendawaian Perkakasan ke Pi

Pendawaian Perkakasan ke Pi
Pendawaian Perkakasan ke Pi

menggunakan BCM

audio MAX98357A

  • BCK hingga GPIO 18
  • Data ke GPIO 21
  • LRCK ke GPIO 19

cahaya

  • merah ke GPIO 17
  • hijau ke GPIO 27
  • biru ke GPIO 22

modul motor ULN2003

  • pin 1 ke GPIO 5
  • pin 2 ke GPIO 6
  • pin 3 ke GPIO 13
  • pin 4 ke GPIO 26

mikro

D0 hingga GPIO 21

sensor ultrasonik

  • trig ke GPIO 16
  • gema ke GPIO 20

Langkah 2: Pengekodan Program Utama

Saya tidak mendapat maklumat terperinci di sini tetapi anda boleh melihat kod saya di github.

Sebagai permulaan saya membuat html dan css saya, indeks, log masuk, daftar, skrin utama, muzik, addmusic, addbear, cahaya, kamera, pengaturan kamera, sensor, halaman papan pemuka. Fail html mesti ada dalam templat dan fail css dalam folder statik / css. Anda boleh menyesuaikan css sepenuhnya seperti yang anda mahukan.

Sekiranya anda melakukan bahagian ini, anda perlu menyiapkan termos anda. Flask mudah digunakan hanya sebagai contoh dunia hello

# kelalang import pada mulanya

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

Sekarang dalam kod saya ini sudah diisi, satu-satunya perkara yang perlu anda lakukan ialah menukar pengguna pangkalan data dan kata laluan dari anda dan tentu saja membuat pangkalan data yang sama yang anda juga dapati di github.

Langkah 3: Membuat Pangkalan Data

Membuat Pangkalan Data
Membuat Pangkalan Data

Untuk peminat sebenar saya akan memberitahu anda bagaimana membuat pangkalan data yang sama.

Oleh itu, pertama kita perlu membuat pangkalan data jika anda tidak berada di langkah pertama.

buat beargardian pangkalan data;

Sebaik sahaja anda melakukan ini, anda akan membuat jadual di meja kerja mysql atau phpadmin

jadual pengguna mempunyai

  • ID Pengguna
  • nama pertama
  • nama terakhir
  • e-mel
  • nama bayi
  • kata laluan dengan sha1
  • folder pengguna
  • playmusic (int)
  • lampu main (int)
  • rakaman main (int)

meja muzik mempunyai

  • musicID
  • lagu
  • jalan
  • folder pengguna
  • status
  • isi padu

meja rakaman mempunyai

  • rakamanID
  • jalan
  • folder pengguna
  • masa
  • hari

jadual warna mempunyai

  • colorID
  • merah
  • hijau
  • biru
  • kecerahan
  • ID Pengguna

meja beruang mempunyai

  • bearID (perpuluhan (8))
  • nol lalai penggunaID
  • bearname

jadual sensor mempunyai

  • sensorID
  • jarak
  • mikro
  • bearID
  • masa
  • hari
  • masa tidur

Jadi sekarang anda berjaya membuat pangkalan data, mari kita pergi ke perkakasan.

Langkah 4: Pengekodan Perkakasan

Saya akan menunjukkan sedikit kod dan memberitahu anda mengapa saya melakukannya dengan cara itu.

Sebagai permulaan saya menggunakan threading, apa yang mesti ada dalam projek ini. Apa itu threading, hmmm soalan yang bagus! Mengancam dengan baik dalam python adalah menjalankan banyak program sekaligus. Jadi jika anda misalnya menukar warna anda juga boleh merakam. Mudah digunakan jangan risau.

import _threaddef function_name (sesuatu, sesuatu_else): kod untuk dijalankan

_thread.start_new_thread (fungsi_nama, tuple_with_the_functions_variables)

Sekiranya anda melihat program saya, anda melihat logger.info ('…'). Ini adalah fungsi mencetak tetapi jauh lebih baik, kerana pada Pi anda tidak dapat mencetak barang jadi saya membuat fail dan mencetaknya di sana. Yoe boleh menetapkan fail log dengan kod ini.

logger = logging.getLogger (_ name _) logger.setLevel (logging. INFO) # buat pengendali pengendali fail = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)

# buat format pembalakan

formatter = logging. Formatter ('% (asctime) s -% (name) s -% (message) s') pengendali.setFormatter (formatter)

# tambahkan pengendali ke logger

logger.addHandler (pengendali)

logger.info ('memulakan perkakasan / n ---------------------------------------')

lebih jauh dalam kod itu sendiri saya menerangkan semuanya.

Disyorkan: