Tartalomjegyzék:

Beargardian: 5 lépés
Beargardian: 5 lépés

Videó: Beargardian: 5 lépés

Videó: Beargardian: 5 lépés
Videó: Команда Б | Серия 5 - 8 2024, November
Anonim
Medvék
Medvék

Sziasztok srácok iskolába, szükségem volt egy ötletre egy projekthez. Szóval arra gondoltam, hogy ez egy projekt a málna pi -vel, és ez helyi. Hirtelen nagyszerű ötletem támadt, és ne kérdezzétek, hogy honnan veszem ezt az ötletet, de gondoltam egy bébimonitor frissítésére. Gondoljunk csak bele egy pillanatba ebbe az ötletbe, a legtöbb babamonitornak csak az a funkciója, hogy meghallgassa a baba szobáját.

A jellemzői

  • Egy kis fényshow állítható színekkel
  • Egy kamera, amely élő képeket mutat
  • Hangszóró a zene lejátszásához
  • Érzékelők rögzítik a baba mozgását
  • Mindez megjelenik egy weboldalon

Rövid információ

Hadd magyarázzuk el ezt egy rövid változatban. Tehát szükségünk van egy weboldalra, és ehhez a projekthez Flaskot használok, adatbázisra is szükség van, és mysql -t használok, egy olyan szkriptet is, amely a hardvert futtatja, és ez a python (3) segítségével történik, és utoljára szükségünk van egy szerver beállítására ez nginx lenne a PI -n.

Mire van szükségünk

  • A Raspberry Pi 3
  • A mostohamotor 28BYJ
  • Az ULN2003 léptetőmotor meghajtócsipje
  • Egy rgb led 3 ellenállással 330 Ohm
  • A Pi NoIR kamera V2
  • A HC-SR04 ultrahangos érzékelő
  • Az ardiuno mikro modulja
  • A MAX98357A
  • Hangszóró 8 ohm
  • És ne felejts el medvét venni

A málna pi beállítása ----------------------------------------------- -------------------------------------------------- --------------------------

Először be kell állítanunk a Pi -t. Kezdje el a bejelentkezést gitten keresztül, ha nincs gittje, akkor javaslom, hogy töltse le ezt, egyszerűen írja be a Pi statikus ip -jét az ssh -val, és megy vele. Ha telepítenie kell a Raspberry Pi -t, akkor rossz híreket kaptam, ezt nem magyarázom meg ebben a projektben.

Telepítse a csomagokat

sudo apt frissítés

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

Virtuális környezet

python3 -m pip install --upgrade pip setuptools wheel virtualenv

mkdir {a projekt mappaneve} && cd {a projekt mappaneve}} python3 -m venv-rendszer-webhely-csomagok env forrás env/bin/aktiválja a python -m pip telepítését mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask- MySQL mysql-connector-python jelszó

Most klónoznia kell a git tárolót a projekt mappájában

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

Ha megnézi a projekt mappáját, akkor 5 mappát kell látnia

  • konf
  • env
  • érzékelő
  • sql
  • web

Adatbázis

sudo systemctl állapot mysql

ss -lt | grep mysql sudo mysql

hozzon létre egy felhasználót az adatbázisban minden jogosultsággal, és hozza létre adatbázisát

hozzon létre felhasználót „user”@„localhost” jelszóval azonosítva;

hozzon létre adatbázist sajátadatbázisneve; adjon meg minden jogosultságot az adattábla -nevén.* a 'user'@'localhost' számára a jogosultsággal;

Conf fájlok a szerverhez

Az uwsgi-flask.ini fájlban módosítja a „modul =…” értéket a „modul = web: app” értékre, és a létrehozott virtuális útvonal elérési útját. A többi fájlban módosítania kell az útvonalakat a könyvtár tényleges abszolút útvonalaira.

Miután rájött, hogy a fájlokat a megfelelő helyre állíthatja.

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

sudo systemctl daemon-reload sudo systemctl start project1-* sudo systemctl állapot project1-*

ezt most elérhetővé kell tennünk

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

Ha minden jól ment, akkor üdv a világban ezzel a paranccsal

wget -qO - localhost

Kész ! Nos, ez az a rész, amely lehetővé teszi a rendszer működését …

1. lépés: A hardver csatlakoztatása a Pi -hez

A hardver csatlakoztatása a Pi -hez
A hardver csatlakoztatása a Pi -hez

BCM használatával

audio MAX98357A

  • BCK - GPIO 18
  • Adatok a GPIO 21 -hez
  • LRCK - GPIO 19

könnyű

  • piros a GPIO 17 -ig
  • zöld a GPIO 27 -ig
  • kék GPIO 22 -re

motor modul ULN2003

  • 1. tű a GPIO 5 -höz
  • 2. tű a GPIO 6 -hoz
  • 3. tű a GPIO 13 -hoz
  • 4. tű a GPIO 26 -hoz

mikro

D0 - GPIO 21

ultrahangos érzékelő

  • a GPIO 16 -hoz
  • visszhang a GPIO 20 -hoz

2. lépés: A fő programok kódolása

Nem részletezem a részleteket, de a githubban megnézheti a kódomat.

Először is elkészítettem a html -t és a css -t, egy indexet, bejelentkezést, regisztrációt, kezdőképernyőt, zenét, addmusic, addbear, light, kamera, kamerabeállításokat, érzékelőt, műszerfal oldalt. A html fájloknak a sablonokban, a css fájloknak pedig a static/css mappában kell lenniük. Teljesen testreszabhatja a css -t, ahogy szeretné.

Ha ezt a részt elvégezte, be kell állítania a lombikot. A lombikot könnyű használni, csak egy példa a hello világra

# import lombik eleinte

lombik importálásból * @app.route ('/') def index (): return render_template ('index.html')

Most a kódomban ez már ki van töltve, az egyetlen dolog, amit meg kell tennie, hogy módosítsa az adatbázis felhasználóját és jelszavát, és természetesen készítse el ugyanazt az adatbázist, amelyet a githubban is megtalálhat.

3. lépés: Az adatbázis létrehozása

Az adatbázis létrehozása
Az adatbázis létrehozása

Az igazi rajongók számára elmondom, hogyan lehet ugyanazt az adatbázist létrehozni.

Tehát először létre kell hoznunk az adatbázist, ha nem az első lépésben.

adatbázis létrehozása beargardian;

Miután ezt megtette, a táblázatokat mysql workbench vagy phpadmin fájlban hozza létre

felhasználói tábla rendelkezik

  • Felhasználói azonosító
  • keresztnév
  • vezetéknév
  • email
  • babyname
  • jelszó sha1 -el
  • userfolder
  • playmusikus (int)
  • playlight (int)
  • felvétel (int)

zenei asztal rendelkezik

  • musicID
  • dal
  • pálya
  • userfolder
  • állapot
  • hangerő

felvételi táblázat rendelkezik

  • rögzítési azonosító
  • pálya
  • userfolder
  • idő
  • nap

színes asztal rendelkezik

  • colorID
  • piros
  • zöld
  • kék
  • Fényerősség
  • Felhasználói azonosító

medve asztal van

  • bearID (tizedes (8))
  • userID alapértelmezett null
  • bearname

az érzékelő táblázat rendelkezik

  • sensorID
  • távolság
  • mikro
  • bearID
  • idő
  • nap
  • alvási idő

Tehát most sikeresen létrehozta az adatbázist, menjünk a hardverhez.

4. lépés: Hardverkódolás

Mutatok egy kis kódot, és elmondom, miért tettem így.

Először is a szálazást használtam, ami elengedhetetlen ebben a projektben. Mi a menetelés, hmmm jó kérdés! A fenyegető a pythonban az, hogy egyszerre több programot futtat. Tehát ha például megváltoztatja a színét, akkor felvételt is készíthet. Könnyen használható, ne aggódjon.

import _threaddef function_name (valami, valami_else): futtatandó kód

_thread.start_new_thread (függvénynév, sorszám_funkció_változókkal)

Ha megnézted a programomat, a logger.info ('…') fájlt látta. Ez a nyomtatási funkció, de sokkal jobb, mert a Pi -n nem lehet kinyomtatni a dolgokat, ezért elkészítek egy fájlt, és kinyomtatom. Ezzel a kóddal beállíthatja a naplófájlt.

logger = logging.getLogger (_ név _) logger.setLevel (logging. INFO) # fájlkezelő létrehozása handler = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)

# hozzon létre naplózási formátumot

formatter = naplózás. Formatter (' %(asctime) s - %(name) s - %(message) s') handler.setFormatter (formatter)

# adja hozzá a kezelőket a naplózóhoz

logger.addHandler (kezelő)

logger.info ('hardver indítása / n ---------------------------------------')

tovább magában a kódban mindent elmagyarázok.

Ajánlott: