Sisukord:

Karu: 5 sammu
Karu: 5 sammu

Video: Karu: 5 sammu

Video: Karu: 5 sammu
Video: Установка автономного отопителя, СМОТРЕТЬ всем перед монтажом, есть очень важные моменты! 2024, November
Anonim
Karupoeg
Karupoeg

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

Riistvara ühendamine Pi -ga
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

Andmebaasi loomine
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: