Tartalomjegyzék:
- 1. lépés: A hardver csatlakoztatása a Pi -hez
- 2. lépés: A fő programok kódolása
- 3. lépés: Az adatbázis létrehozása
- 4. lépés: Hardverkódolás
Videó: Beargardian: 5 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
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
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 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
- 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:
DC - DC feszültség Lépés lekapcsoló mód Buck feszültségátalakító (LM2576/LM2596): 4 lépés
DC-DC feszültség Lépés lekapcsoló üzemmód Buck feszültségátalakító (LM2576/LM2596): A rendkívül hatékony bakkonverter készítése nehéz feladat, és még a tapasztalt mérnököknek is többféle kivitelre van szükségük, hogy a megfelelőt hozzák létre. egy DC-DC áramátalakító, amely csökkenti a feszültséget (miközben növeli
Akusztikus levitáció az Arduino Uno-val Lépésről lépésre (8 lépés): 8 lépés
Akusztikus lebegés az Arduino Uno-val Lépésről lépésre (8 lépés): ultrahangos hangátvivők L298N Dc női adapter tápegység egy egyenáramú tűvel Arduino UNOBreadboard és analóg portok a kód konvertálásához (C ++)
Élő 4G/5G HD videó streamelés DJI drónról alacsony késleltetéssel [3 lépés]: 3 lépés
Élő 4G/5G HD videó streaming a DJI Drone-tól alacsony késleltetéssel [3 lépés]: Az alábbi útmutató segít abban, hogy szinte bármilyen DJI drónról élő HD minőségű videó streameket kapjon. A FlytOS mobilalkalmazás és a FlytNow webes alkalmazás segítségével elindíthatja a videó streamingjét a drónról
Bolt - DIY vezeték nélküli töltő éjszakai óra (6 lépés): 6 lépés (képekkel)
Bolt - DIY vezeték nélküli töltés éjszakai óra (6 lépés): Az induktív töltés (más néven vezeték nélküli töltés vagy vezeték nélküli töltés) a vezeték nélküli áramátvitel egyik típusa. Elektromágneses indukciót használ a hordozható eszközök áramellátásához. A leggyakoribb alkalmazás a Qi vezeték nélküli töltő
4 lépés az akkumulátor belső ellenállásának méréséhez: 4 lépés
4 lépés az akkumulátor belső ellenállásának mérésére: Íme a 4 egyszerű lépés, amelyek segítenek mérni az akkumulátor belső ellenállását