Talaan ng mga Nilalaman:
- Hakbang 1: Pag-kable ng Hardware sa Pi
- Hakbang 2: Pag-coding ng Pangunahing Mga Program
- Hakbang 3: Paglikha ng Database
- Hakbang 4: Pag-coding ng Hardware
- Hakbang 5: Mahusay na Trabaho
Video: Beargardian: 5 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Hey guys para sa paaralan kailangan ko ng isang ideya para sa isang proyekto. Kaya't iniisip ko, dapat itong isang proyekto kasama ang raspberry pi at ito ay lokal. Bigla akong nagkaroon ng isang mahusay na ideya at huwag tanungin kung paano ko nakukuha ang ideyang iyon ngunit naisip ko ang tungkol sa isang pag-upgrade para sa isang baby monitor. Isipin lamang ang isang segundo tungkol sa ideyang iyon, ang pinaka-monitor ng sanggol ay mayroon lamang pagpapaandar upang makinig sa silid ng sanggol.
Ang mga tampok
- Isang maliit na light show na may naaayos na mga kulay
- Isang camera na nagpapakita sa iyo ng mga live na larawan
- Isang tagapagsalita upang tumugtog ng musika
- Mga sensor upang makuha ang paggalaw ng sanggol
- Ang lahat ng iyon ay nagpapakita sa isang website
Maikling impormasyon
Ipinaliwanag ito ni Letme sa isang maikling bersyon. Kaya kailangan namin ng isang website at para sa proyektong ito ay gumagamit ako ng Flask, kailangan din namin ng isang database at gumagamit ako ng MySQL, isang script din na nagpapatakbo ng hardware at kasama nito ang sawa (3) at huling kailangan namin ng isang pag-setup ng server magiging nginx iyon sa PI.
Ano ang ating kailangan
- Ang Raspberry Pi 3
- Ang stepmotor 28BYJ
- Ang stepmotor driverchip ULN2003 stepper module
- Ang isang rgb ay humantong na may 3 resistors na 330Ohm
- Ang Pi NoIR camera V2
- Ang ultrasonic sensor HC-SR04
- Ang micro module mula sa ardiuno
- Ang MAX98357A
- Isang tagapagsalita 8Ohm
- At huwag kalimutang bumili ng isang bear
I-setup ang raspberry pi ---------------------------------------------- ---- --------------------------
Sa una kailangan naming i-setup ang Pi. Magsimula nang mag-login sa pamamagitan ng masilya, kung wala kang masilya Inirerekumenda ko sa iyo na i-download ito, i-type lamang ang iyong static ip ng Pi na may ssh at sumama ka rito. Kung kailangan mong i-install ang iyong Raspberry Pi pagkatapos ay nakakuha ako ng masamang balita, hindi ko ito ipinapaliwanag sa proyektong ito.
Mag-install ng mga package
sudo apt update
sudo apt install -y python3-venv python3-pip python3-mysqldb MySQL-server uwsgi nginx uwsgi-plugin-python3
Kapaligirang virtual
python3 -m pip install --i-upgrade ang pip setuptools wheel virtualenv
mkdir {iyong proyekto foldername} && cd {iyong proyekto foldername} python3 -m venv --system-site-packages env source env / bin / buhayin ang python -m pip i-install ang mysql-konektor-python argon2-cffi Flask Flask-HTTPAuth Flask- MySQL MySQL-konektor-python passlib
Ngayon ay kailangan mong i-clone ang git repository sa iyong folder ng proyekto
github.com/NMCT-S2-Project-I/Project-I.git
Kung titingnan mo ang iyong folder ng proyekto kailangan mong makita ang 5 mga folder
- conf
- env
- sensor
- sql
- web
Database
sudo systemctl status MySQL
ss -lt | grep MySQL sudo MySQL
lumikha ng isang gumagamit sa database na may lahat ng mga pribilehiyo at gawin ang iyong database
lumikha ng 'user' @ 'localhost' ng gumagamit na kinilala ng 'password';
lumikha ng database yourdatabasename; ibigay ang lahat ng mga pribilehiyo sa iyongdatabasename. * sa 'gumagamit' @ 'localhost' na may pagpipilian sa pagbibigay;
Conf mga file para sa server
Sa uwsgi-flask.ini binago mo ang 'module =…' sa 'module = web: app' at ang landas sa iyong virtualenv na iyong nilikha. Sa iba pang mga file kailangan mong baguhin ang mga landas sa aktwal na ganap na mga landas ng iyong direktoryo.
Kapag naisip mo na maaari mong itakda ang mga file sa tamang lugar.
sudo cp conf / project1 - *. service / etc / systemd / system /
sudo systemctl daemon-reload sudo systemctl simulan ang proyekto1- * sudo systemctl status project1- *
ngayon kailangan naming itakda ang magagamit na ito
sudo cp conf / nginx / etc / nginx / sites-available / project1
sudo rm / etc / nginx / sites-pinagana / default sudo ln -s / etc / nginx / sites-magagamit / project1 / etc / nginx / sites-pinagana / project1 sudo systemctl restart nginx.service sudo nginx -t
Kung ang lahat ay naging maayos ikaw ay may hello mundo sa utos na ito
wget -qO - localhost
Tapos na! Sa gayon iyon ay para sa bahagi upang hayaang patakbuhin ang iyong system sa…
Hakbang 1: Pag-kable ng Hardware sa Pi
gamit ang BCM
audio MAX98357A
- BCK hanggang GPIO 18
- Data sa GPIO 21
- LRCK sa GPIO 19
ilaw
- pula sa GPIO 17
- berde sa GPIO 27
- asul sa GPIO 22
motor module ULN2003
- i-pin ang 1 sa GPIO 5
- i-pin ang 2 sa GPIO 6
- i-pin ang 3 sa GPIO 13
- i-pin ang 4 sa GPIO 26
micro
D0 hanggang GPIO 21
ultrasonic sensor
- mag-trig sa GPIO 16
- echo sa GPIO 20
Hakbang 2: Pag-coding ng Pangunahing Mga Program
Hindi ako nakakakuha ng mga detalye dito ngunit maaari mong suriin ang aking code sa github.
Upang magsimula sa ginawa ko ang aking html at css, isang index, pag-login, pagrehistro, homescreen, musika, addmusic, addbear, ilaw, camera, cameraettings, sensor, dashboard page. Ang mga html file ay dapat na nasa mga template at ang css file sa static / css folder. Maaari mong ganap na ipasadya ang css na nais mo.
Kung nagawa mo ang bahaging ito kailangan mong i-setup ang iyong prasko. Madaling gamitin ang Flask bilang isang halimbawa lamang ng mundo ng hello
# mag-import ng prasko sa una
mula sa flask import * @ app.route ('/') def index (): return render_template ('index.html')
Ngayon sa aking code ito ay napunan na, ang tanging bagay na kailangan mong gawin ay baguhin ang gumagamit ng database at password na mula sa iyo at ofcourse gawin ang parehong database na maaari mo ring makita sa github.
Hakbang 3: Paglikha ng Database
Para sa totoong mga tagahanga sasabihin ko sa iyo kung paano lumikha ng parehong database.
Kaya kailangan muna naming likhain ang database kung hindi ka sa unang hakbang.
lumikha ng database beargardian;
Kapag nagawa mo ito nilikha mo ang mga talahanayan sa MySQL workbench o phpadmin
mesa ng gumagamit ay mayroong
- userID
- pangalan
- huling pangalan
- babyname
- password na may sha1
- gumagamit ng folder
- playmusic (int)
- playlight (int)
- playrecording (int)
mesa ng musika ay mayroong
- musikaID
- kanta
- landas
- gumagamit ng folder
- katayuan
- dami
talaan ng recording ay mayroon
- nagre-recordID
- landas
- gumagamit ng folder
- oras
- araw
kulay talahanayan ay may
- kulayID
- pula
- berde
- bughaw
- ningning
- userID
bear table ay mayroong
- bearID (decimal (8))
- default na null ang userID
- bearname
mesa ng sensor ay mayroong
- sensorID
- distansya
- micro
- bearID
- oras
- araw
- oras ng tulog
Kaya't ngayon ay nilikha mo nang matagumpay ang database, pumunta tayo sa hardware.
Hakbang 4: Pag-coding ng Hardware
Magpapakita ako ng kaunting code at sasabihin sa iyo kung bakit ko nagawa iyon sa ganoong paraan.
Upang magsimula sa ginamit kong pag-thread, kung ano ang ganap na kinakailangan sa proyektong ito. Ano ang threading, hmmm magandang tanong! Ang pagbabanta sa sawa ay upang magpatakbo ng maraming mga programa nang sabay-sabay. Kaya kung halimbawa mong binago ang kulay maaari ka ring mag-record. Madaling gamitin huwag magalala.
i-import ang _threaddef function_name (isang bagay, isang bagay_else): code na tatakbo
_thread.start_new_thread (function_name, tuple_with_the_function_variables)
Kung tiningnan mo ang aking programa nakita mo ang logger.info ('…'). Ito ang pagpapaandar na naka-print ngunit mas mahusay, dahil sa Pi hindi mo mai-print ang mga bagay-bagay kaya gumawa ako ng isang file at mai-print ito doon. Maaaring itakda ni Yoe ang file ng log kasama ang code na ito.
logger = logging.getLogger (_ name _) logger.setLevel (logging. INFO) # create a file handler handler = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)
# Lumikha ng isang format ng pag-log
formatter = logging. Formatter ('% (asctime) s -% (name) s -% (message) s') handler.setFormatter (formatter)
# idagdag ang mga handler sa logger
logger.addHandler (handler)
logger.info ('start up hardware / n -------------------------------------')
sa karagdagang sa code mismo ipinapaliwanag ko ang lahat.
Inirerekumendang:
Arduino Car Reverse Parking Alert System - Hakbang sa Hakbang: 4 na Hakbang
Arduino Car Reverse Parking Alert System | Hakbang sa Hakbang: Sa proyektong ito, magdidisenyo ako ng isang simpleng Arduino Car Reverse Parking Sensor Circuit gamit ang Arduino UNO at HC-SR04 Ultrasonic Sensor. Ang Arduino based Car Reverse alert system na ito ay maaaring magamit para sa isang Autonomous Navigation, Robot Ranging at iba pang range r
Hakbang sa Hakbang Pagbubuo ng PC: 9 Mga Hakbang
Hakbang sa Hakbang ng PC Building: Mga Pantustos: Hardware: MotherboardCPU & CPU coolerPSU (Power supply unit) Storage (HDD / SSD) RAMGPU (hindi kinakailangan) CaseTools: ScrewdriverESD bracelet / matsthermal paste w / applicator
Tatlong Loudspeaker Circuits -- Hakbang-hakbang na Tutorial: 3 Mga Hakbang
Tatlong Loudspeaker Circuits || Hakbang-hakbang na Tutorial: Ang Loudspeaker Circuit ay nagpapalakas ng mga audio signal na natanggap mula sa kapaligiran papunta sa MIC at ipinapadala ito sa Speaker mula sa kung saan ginawa ang pinalakas na audio. Dito, ipapakita ko sa iyo ang tatlong magkakaibang paraan upang magawa ang Loudspeaker Circuit na ito gamit ang:
Hakbang-hakbang na Edukasyon sa Robotics Na May Kit: 6 Mga Hakbang
Hakbang-hakbang na Edukasyon sa Robotics Gamit ang isang Kit: Matapos ang ilang buwan ng pagbuo ng aking sariling robot (mangyaring sumangguni sa lahat ng mga ito), at pagkatapos ng dalawang beses na pagkabigo ng mga bahagi, nagpasya akong bumalik at muling isipin ang aking diskarte at direksyon. Ang karanasan ng ilang buwan ay kung minsan ay lubos na nagbibigay-pakinabang, at
Kritikal na Hakbang sa Paghuhugas ng Kamay sa Hakbang: 5 Hakbang
Kritikal na Hakbang sa Paghuhugas ng Hakbang sa paghuhugas ng kamay: Ito ay isang makina na nagpapaalala sa gumagamit tungkol sa mga hakbang kung kailan kailangan niyang maghugas ng kanyang mga kamay. Ang layunin ng makina na ito ay matulungan ang mga tao na maunawaan kung paano hugasan nang maayos ang kanilang mga kamay sa isang mabisang paraan. Sa mga panahon ng pag-iwas sa epidemya o pandemya,