Përmbajtje:
- Hapi 1: Lidhja e pajisjes me Pi
- Hapi 2: Kodimi i programeve kryesore
- Hapi 3: Krijimi i bazës së të dhënave
- Hapi 4: Kodimi i harduerit
- Hapi 5: Punë e shkëlqyeshme
Video: Beargardian: 5 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:25
Hej djema për shkollën më duhej një ide për një projekt. Kështu që unë po mendoja, duhet të jetë një projekt me mjedrën pi dhe është lokal. Papritur pata një ide të shkëlqyeshme dhe mos më pyesni se si e marr atë ide, por mendova për një azhurnim për një monitor të foshnjave. Vetëm mendoni një sekondë për atë ide, shumica e vëzhguesve të foshnjave thjesht kanë funksionin të dëgjojnë dhomën e foshnjës.
Karakteristikat
- Një shfaqje e vogël e dritës me ngjyra të rregullueshme
- Një aparat fotografik që ju tregon imazhe të drejtpërdrejta
- Një altoparlant për të luajtur muzikë
- Sensorë për të kapur lëvizjen e foshnjës
- E gjithë kjo shfaqet në një faqe në internet
Informacion i shkurtër
Le ta shpjegojmë këtë në një version të shkurtër. Pra, ne kemi nevojë për një faqe në internet dhe për këtë projekt unë jam duke përdorur Flask, ne gjithashtu kemi nevojë për një bazë të dhënash dhe unë jam duke përdorur mysql, gjithashtu një skript që drejton harduerin dhe kjo është me python (3) dhe si e fundit kemi nevojë për një konfigurim të serverit që do të ishte nginx në PI.
Çfarë na duhet
- Raspberry Pi 3
- Motori i njerkut 28BYJ
- Çipi i drejtuesit të njësitit modul stepper ULN2003
- Një rgb led me 3 rezistorë 330Ohm
- Kamera Pi NoIR V2
- Sensori tejzanor HC-SR04
- Mikro moduli nga ardiuno
- MAX98357A
- Një altoparlant 8 Ohm
- Dhe mos harroni të blini një ari
Vendosni mjedrën pi -------------------------------------------------- ------------------------------------------------------ --------------------------
Në fillim duhet të konfigurojmë Pi. Filloni të regjistroheni tashmë përmes stuko, nëse nuk keni stuko ju rekomandoj ta shkarkoni këtë, thjesht shkruani IP -në tuaj statike të Pi me ssh dhe shkoni me të. Nëse duhet të instaloni Raspberry Pi tuaj atëherë kam marrë një lajm të keq, nuk po e shpjegoj këtë në këtë projekt.
Instaloni paketat
sudo apt përditësim
sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3
Mjedisi virtual
python3 -m pip install -përditëso pip setuptools wheel virtualenv
mkdir {emrin e dosjes së projektit tuaj} && cd {emrin e dosjes së projektit tuaj} python3 -m venv --system-site-packages env source env/bin/activ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask- MySQL mysql-lidhës-python passlib
Tani ju duhet të klononi depon git në dosjen e projektit tuaj
github.com/NMCT-S2-Project-I/Project-I.git
Nëse shikoni në dosjen e projektit tuaj, duhet të shihni 5 dosje
- konf
- zili
- sensori
- sql
- ueb
Baza e të dhënave
sudo systemctl status mysql
ss -lt | grep mysql sudo mysql
krijoni një përdorues në bazën e të dhënave me të gjitha privilegjet dhe bëni bazën tuaj të të dhënave
krijoni përdoruesin 'user'@'localhost' të identifikuar me 'password';
krijoni bazën e të dhënave të bazës suaj; jepni të gjitha privilegjet në emrin tuaj të bazës së të dhënave.* 'user'@'localhost' me opsion granti;
Skedarët konf për serverin
Në uwsgi-flask.ini ju ndryshoni 'module =…' në 'module = web: app' dhe rrugën drejt virtualenv tuaj që keni krijuar. Në skedarët e tjerë ju duhet të ndryshoni shtigjet drejt shtigjeve absolute aktuale të drejtorisë tuaj.
Pasi ta kuptoni se mund t'i vendosni skedarët në vendin e duhur.
sudo cp conf/project1-*. service/etc/systemd/system/
sudo systemctl daemon-ringarkoni projektin e fillimit të sistemit sudo1-* projekti i statusit të sudo systemctl1-*
tani ne duhet ta vendosim këtë në dispozicion
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 rinis nginx.service sudo nginx -t
Nëse gjithçka shkoi mirë, atëherë duhet të përshëndetni botën me këtë urdhër
wget -qO - localhost
U krye! Epo kjo është për pjesën që do të lejojë që sistemi juaj të funksionojë në…
Hapi 1: Lidhja e pajisjes me Pi
duke përdorur BCM
audio MAX98357A
- BCK në GPIO 18
- Të dhënat në GPIO 21
- LRCK te GPIO 19
dritë
- e kuqe në GPIO 17
- jeshile në GPIO 27
- blu në GPIO 22
moduli motorik ULN2003
- pin 1 te GPIO 5
- pin 2 te GPIO 6
- pin 3 te GPIO 13
- pin 4 në GPIO 26
mikro
D0 në GPIO 21
sensor tejzanor
- shkaktohet në GPIO 16
- jehonë në GPIO 20
Hapi 2: Kodimi i programeve kryesore
Unë nuk po hyj në detaje këtu, por ju mund të kontrolloni kodin tim në github.
Për të filluar, unë bëra html dhe css, një indeks, hyrje, regjistrim, ekran në shtëpi, muzikë, shtesë muzikore, shtesë, dritë, kamera, cilësime të kamerave, sensor, faqe pulti. Skedarët html duhet të jenë në shabllone dhe skedarët css në dosjen statike/css. Ju mund ta personalizoni plotësisht css ashtu siç dëshironi.
Nëse e keni bërë këtë pjesë, duhet të konfiguroni shishen tuaj. Flask është e lehtë për t'u përdorur vetëm një shembull i botës së përshëndetjes
# balonë importi në fillim
nga importi i shisheve * @app.route ('/') def index (): kthehu render_template ('index.html')
Tani në kodin tim kjo është mbushur tashmë, e vetmja gjë që duhet të bëni është të ndryshoni përdoruesin e bazës së të dhënave dhe fjalëkalimin në atë nga ju dhe natyrisht bëni të njëjtën bazë të dhënash që gjithashtu mund të gjeni në github.
Hapi 3: Krijimi i bazës së të dhënave
Për tifozët e vërtetë unë do t'ju tregoj se si të krijoni të njëjtën bazë të dhënash.
Pra, së pari ne duhet të krijojmë bazën e të dhënave nëse nuk e keni bërë në hapin e parë.
krijoni bazën e të dhënave beargardian;
Pasi ta keni bërë këtë, krijoni tabelat në mysql workbench ose phpadmin
tabela e përdoruesve ka
- ID e përdoruesit
- Emri
- mbiemri
- emri i foshnjës
- fjalëkalim me sha1
- dosje përdoruesi
- playmusic (int)
- dritë loje (int)
- regjistrim loje (int)
tabela e muzikës ka
- musicID
- kenge
- rrugë
- dosje përdoruesi
- statusit
- vëllimi
tabela e regjistrimit ka
- regjistrimi ID
- rrugë
- dosje përdoruesi
- koha
- dita
tabela me ngjyra ka
- colorID
- e kuqe
- jeshile
- blu
- shkëlqim
- ID e përdoruesit
tryeza e ariut ka
- bearID (dhjetore (8))
- userID default null
- emri i markës
tabela e sensorit ka
- sensorID
- distanca
- mikro
- bearID
- koha
- dita
- Koha per te fjetur
Pra, tani ju keni krijuar bazën e të dhënave me sukses, le të shkojmë në harduer.
Hapi 4: Kodimi i harduerit
Unë do të tregoj pak kod dhe do t'ju them pse e bëra në atë mënyrë.
Për të filluar me kam përdorur filetim, ajo që duhet të jetë absolute në këtë projekt. Çfarë është filetimi, hmmm pyetje e mirë! Pra, kërcënimi në python është të ekzekutoni programe të shumta në të njëjtën kohë. Pra, nëse për shembull ndryshoni ngjyrën, gjithashtu mund të regjistroni. Easyshtë e lehtë për t'u përdorur mos u shqetësoni.
importo_threaddef funksion_name (diçka, diçka_tjetër): kodi për tu ekzekutuar
_thread.start_new_thread (emri i funksionit, tuple_with_the_functions_variables)
Nëse shikoni programin tim, shihni logger.info ('…'). Ky është funksioni i printimit por shumë më i mirë, sepse në Pi nuk mund të printoni sende kështu që unë bëj një skedar dhe e printoj atje. Yoe mund të vendosë skedarin e regjistrit me këtë kod.
logger = logging.getLogger (_ emri _) logger.setLevel (logging. INFO) # krijoni një mbajtës skedari të menaxhimit = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)
# krijoni një format regjistrimi
formatues = regjistrim. Formatter (' %(asctime) s - %(emri) s - %(mesazh) s') handler.setFormatter (formatues)
# shtoni mbajtësit në regjistrues
logger.addHandler (mbajtës)
logger.info ('filloni harduerin / n ---------------------------------------')
më tej në vetë kodin shpjegoj gjithçka.
Recommended:
Si të bëni 4G LTE Antenë të BiQuade të Dyfishtë Hapa të Lehtë: 3 Hapa
Si të bëni 4G LTE Antenë BiQuade të Dyfishtë Hapa të Lehtë: Shumicën e kohës me të cilën jam përballur, nuk kam forcë të mirë të sinjalit në punët e mia të përditshme. Kështu që. Kërkoj dhe provoj lloje të ndryshme antenash por nuk funksionoj. Pas humbjes së kohës gjeta një antenë që shpresoj ta bëj dhe ta provoj, sepse është parimi i ndërtimit jo
Dizajni i lojës në lëvizje në 5 hapa: 5 hapa
Dizajni i lojës në Flick në 5 hapa: Flick është një mënyrë vërtet e thjeshtë për të bërë një lojë, veçanërisht diçka si një enigmë, roman vizual ose lojë aventure
Zbulimi i fytyrës në Raspberry Pi 4B në 3 hapa: 3 hapa
Zbulimi i fytyrës në Raspberry Pi 4B në 3 hapa: Në këtë Instructable ne do të bëjmë zbulimin e fytyrës në Raspberry Pi 4 me Shunya O/S duke përdorur Bibliotekën Shunyaface. Shunyaface është një bibliotekë për njohjen/zbulimin e fytyrës. Projekti synon të arrijë shpejtësinë më të shpejtë të zbulimit dhe njohjes me
Pasqyrë DIY Vanity në hapa të thjeshtë (duke përdorur dritat LED të shiritit): 4 hapa
DIY Vanity Mirror në hapa të thjeshtë (duke përdorur dritat e shiritit LED): Në këtë postim, unë bëra një DIY Vanity Mirror me ndihmën e shiritave LED. Reallyshtë vërtet e lezetshme dhe duhet t'i provoni gjithashtu
Qëndrim për laptopë me 3 hapa dhe 3 hapa (me syze leximi dhe tabaka me stilolaps): 5 hapa
Qëndrim për laptopë me hapa 3 & 3 hapa (me syze leximi dhe tabaka për stilolapsa): Kjo $ 3 & Qëndrimi i laptopit me 3 hapa mund të bëhet brenda 5 minutave. It'sshtë shumë e fortë, me peshë të lehtë dhe mund të paloset për ta marrë kudo që të shkoni