Sisukord:
- Samm: riistvara ühendamine Pi -ga
- 2. samm: põhiprogrammide kodeerimine
- 3. samm: andmebaasi loomine
- Samm: riistvara kodeerimine
Video: Karu: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Hei poisid kooli, mul oli vaja projekti ideed. Nii et ma mõtlesin, et see peab olema projekt koos vaarika pi -ga ja see on kohalik. Järsku tekkis mul suurepärane idee ja ärge küsige minult, kuidas ma selle idee saan, kuid mõtlesin beebimonitori uuendamisele. Mõelge sellele ideele hetkeks, enamikul beebimonitoridel on lihtsalt funktsioon beebitoa kuulamiseks.
Omadused
- Väike valgusetendus reguleeritavate värvidega
- Kaamera, mis näitab teile otsepilte
- Kõlar muusika mängimiseks
- Andurid beebi liikumise jäädvustamiseks
- Kõik see näitab veebisaiti
Lühike teave
Selgitame seda lühiversioonis. Nii et meil on vaja veebisaiti ja selle projekti jaoks kasutan ma Flaski, vajame ka andmebaasi ja ma kasutan mysqli, samuti skripti, mis käitab riistvara ja see on pythoniga (3) ning viimasena vajame serveri seadistust see oleks nginx PI -l.
Mida me vajame
- Vaarika Pi 3
- Kasumotoor 28BYJ
- Kasvumootori kiip ULN2003 sammmoodul
- Rgb led koos 3 takistiga 330Ohm
- Pi NoIR kaamera V2
- Ultraheli andur HC-SR04
- Ardiuno mikromoodul
- MAX98357A
- Kõlar 8Ohm
- Ja ärge unustage karu osta
Vaarika pi seadistamine ------------------------------------------------ -------------------------------------------------- --------------------------
Alguses peame Pi seadistama. Alustage juba pahtli kaudu sisselogimist, kui teil pole pahtlit, soovitan teil selle alla laadida, lihtsalt tippige oma staatiline Pi ip ssh -ga ja lähete sellega. Kui peate oma Raspberry Pi installima, siis sain halbu uudiseid, ma ei selgita seda selles projektis.
Installige paketid
sudo apt värskendus
sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3
Virtuaalne keskkond
python3 -m pip install -uuenda pip setuptools ratas virtualenv
mkdir {teie projekti kaustajanimi} && cd {teie projekti kaustajanimi} python3 -m venv-süsteem-saidipaketid env allikas env/bin/aktiveeri python -m pip install mysql-connector-python argon2-cffi kolbkolb-HTTPAuth-kolb- MySQL mysql-konnektor-python pääsukood
Nüüd peate kloonima oma projekti kausta git -hoidla
github.com/NMCT-S2-Project-I/Project-I.git
Kui vaatate oma projekti kausta, peate nägema 5 kausta
- konf
- env
- andur
- sql
- võrk
Andmebaas
sudo systemctl olek mysql
ss -lt | grep mysql sudo mysql
luua andmebaasi kõigi õigustega kasutaja ja luua oma andmebaas
luua kasutaja 'user'@'localhost', mis on identifitseeritud parooli abil;
luua andmebaas oma andmebaasinimi; andke kõik oma andmebaasinimega seotud privileegid.* kasutajale@'localhost' koos andmisvõimalusega;
Serveri konfiguratsioonifailid
Muutke jaotises uwsgi-flask.ini 'module =…' väärtuseks 'module = web: app' ja teie loodud virtualenv-tee. Teistes failides peate muutma teed oma kataloogi tegelikeks absoluutteedeks.
Kui olete sellest aru saanud, saate failid õigesse kohta seada.
sudo cp conf/project1-*. service/etc/systemd/system/
sudo systemctl deemon-reload sudo systemctl käivita projekt1-* sudo systemctl olek projekt1-*
nüüd peame selle kättesaadavaks tegema
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
Kui kõik läks hästi, peaksite selle käsuga tervitama
wget -qO - localhost
Valmis! See on osa, mis võimaldab teie süsteemil töötada …
Samm: riistvara ühendamine Pi -ga
kasutades BCM -i
heli MAX98357A
- BCK kuni GPIO 18
- Andmed GPIO 21 -le
- LRCK kuni GPIO 19
valgus
- punane kuni GPIO 17
- roheline kuni GPIO 27
- sinine kuni GPIO 22
mootorimoodul ULN2003
- pin 1 GPIO 5 -le
- tihvt 2 GPIO 6 -le
- tihvt 3 GPIO 13 -le
- tihvt 4 GPIO 26 külge
mikro
D0 kuni GPIO 21
ultraheli andur
- käivitage GPIO 16
- kajas GPIO 20 -le
2. samm: põhiprogrammide kodeerimine
Ma ei süvene siin üksikasjadesse, kuid minu koodi saate vaadata githubis.
Alustuseks tegin oma html -i ja css -i, indeksi, sisselogimise, registri, avakuva, muusika, addmusici, addbeari, valguse, kaamera, kaamerasätted, anduri, armatuurlaua lehe. HTML -failid peavad olema mallides ja css -failid staatilises/css -kaustas. Saate css -i täielikult kohandada, nagu soovite.
Kui olete selle osa teinud, peate oma kolvi seadistama. Kolbi on lihtne kasutada, näites tere maailmast
# impordikolb esialgu
kolvi impordist * @app.route ('/') def index (): return render_template ('index.html')
Nüüd on see minu koodis juba täidetud, ainus asi, mida peate tegema, on muuta andmebaasi kasutaja ja parool teie omaks ning loomulikult teha sama andmebaas, mille leiate ka githubist.
3. samm: andmebaasi loomine
Tõelistele fännidele ütlen teile, kuidas sama andmebaasi luua.
Nii et kõigepealt peame looma andmebaasi, kui te seda esimeses etapis ei teinud.
luua andmebaasi beargardian;
Kui olete seda teinud, loote tabelid mysql töölaual või phpadminis
kasutaja tabelis on
- kasutaja ID
- eesnimi
- perekonnanimi
- meilile
- beebinimi
- parool sha1 -ga
- kasutajakaust
- playmusus (int)
- esitusvalgusti (int)
- salvestus (int)
muusikalaual on
- musicID
- laul
- tee
- kasutajakaust
- staatus
- maht
salvestustabelil on
- salvestamise ID
- tee
- kasutajakaust
- aega
- päev
värvilisel laual on
- colorID
- punane
- roheline
- sinine
- heledus
- kasutaja ID
karulaual on
- bearID (kümnendkoht (8))
- userID vaikimisi null
- bearname
andurite tabelis on
- sensorID
- kaugus
- mikro
- bearID
- aega
- päev
- uneaeg
Nüüd, kui olete andmebaasi edukalt loonud, läheme riistvara juurde.
Samm: riistvara kodeerimine
Näitan natuke koodi ja ütlen teile, miks ma nii tegin.
Alustuseks kasutasin keermestamist, mis on selles projektis absoluutne kohustus. Mis on niitimine, hmmm hea küsimus! Hästi ähvardav pythonis on käivitada mitu programmi korraga. Nii et kui muudate näiteks värvi, saate ka salvestada. Seda on lihtne kasutada, ärge muretsege.
import _threaddef function_name (midagi, midagi_else): käivitatav kood
_thread.start_new_thread (funktsiooni_nimi, kordaja_funktsioonidega_muutujad)
Kui vaatasite minu programmi, nägite logger.info ('…'). See on printimisfunktsioon, kuid palju parem, sest Pi -l ei saa asju välja printida, nii et ma teen faili ja prindin selle sinna. Selle koodiga saate logifaili seadistada.
logger = logging.getLogger (_ nimi _) logger.setLevel (logging. INFO) # loo failitöötleja handler = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)
# looge logimisvorming
formatter = logimine. Formatter (' %(asctime) s - %(name) s - %(message) s') handler.setFormatter (formatter)
# lisage käitlejad logijale
logger.addHandler (käitleja)
logger.info ('riistvara käivitamine / n ---------------------------------------')
edasi koodis endas selgitan kõike.
Soovitan:
Puhh Karu ja sõprade öövalgus: 5 sammu (koos piltidega)
Puhh Karu ja sõprade öövalgusti: järgmine öövalgus loodi pinnale paigaldatud ATTiny85 abil. Sellel on kaks nuppu, üks selle sisse- ja väljalülitamiseks ning teine selle peatamiseks valitud valgustusjärjestuses. Paus ei ole tõeline paus, vaid katkestab lihtsalt ühenduse
Atari punkkonsool beebiga 8 sammu järjestus: 7 sammu (piltidega)
Atari punkkonsool koos beebi 8-astmelise sekveneerijaga: see vaheehitus on kõik-ühes Atari punk-konsool ja beebi 8-astmeline järjestus, mida saate freesida Bantam Tools töölaua PCB-freespingis. See koosneb kahest trükkplaadist: üks on kasutajaliidese (UI) plaat ja teine on utiliit
Akustiline levitatsioon Arduino Unoga samm-sammult (8 sammu): 8 sammu
Akustiline levitatsioon Arduino Uno abil samm-sammult (8 sammu): ultraheliheli muundurid L298N DC-naissoost adapteri toiteallikas isase alalisvoolupistikuga Arduino UNOBreadboard ja analoogpordid koodi teisendamiseks (C ++)
4G/5G HD -video otseülekanne DJI droonilt madala latentsusega [3 sammu]: 3 sammu
4G/5G HD-video otseülekanne DJI droonilt madala latentsusega [3 sammu]: Järgnev juhend aitab teil saada HD-kvaliteediga otseülekandeid peaaegu igalt DJI droonilt. FlytOSi mobiilirakenduse ja veebirakenduse FlytNow abil saate alustada drooni video voogesitust
Super GPi käru / Pi3 A+ RetroFlag GPi ümbrises: 5 sammu
Super GPi ostukorv / Pi3 A+ RetroFlag GPi ümbrises: kõigile meeldib RetroFlag GPi ümbris ja heal põhjusel on see hästi ehitatud platvorm, millel on hämmastav ekraan, suurepärane ehituskvaliteet ja kuradi kogukond selle taga. Kuid kuna GPi põhineb Pi Zero W -l, võib see mõnikord veidi lühikeseks jääda