Turinys:

„Beargardian“: 5 žingsniai
„Beargardian“: 5 žingsniai

Video: „Beargardian“: 5 žingsniai

Video: „Beargardian“: 5 žingsniai
Video: Трактористы (комедия, реж. Иван Пырьев, 1939 г.) 2024, Lapkritis
Anonim
Lokys
Lokys

Sveiki, vaikinai mokyklai, man reikėjo projekto idėjos. Taigi aš galvojau, kad tai turi būti projektas su aviečių pi ir tai vietinis. Staiga man kilo puiki idėja ir neklausk manęs, kaip man tokia mintis, bet galvojau apie kūdikio monitoriaus atnaujinimą. Pagalvokite apie šią idėją, dauguma kūdikių monitorių turi funkciją klausytis kūdikio kambario.

Savybės

  • Mažas šviesos šou su reguliuojamomis spalvomis
  • Fotoaparatas, rodantis tiesioginius vaizdus
  • Garsiakalbis, leidžiantis muziką
  • Jutikliai, fiksuojantys kūdikio judėjimą
  • Visa tai rodoma svetainėje

Trumpa informacija

Leiskite tai paaiškinti trumpa versija. Taigi mums reikia svetainės ir šiam projektui aš naudoju „Flask“, mums taip pat reikia duomenų bazės ir aš naudoju „mysql“, taip pat scenarijų, kuriame paleidžiama aparatinė įranga, ir tai yra su „python“(3), o paskutinis mums reikia serverio sąrankos tai būtų nginx ant PI.

Ko mums reikia

  • Raspberry Pi 3
  • Posūkio variklis 28BYJ
  • Pakopinio variklio mikroschemos ULN2003 žingsninis modulis
  • Rgb LED su 3 rezistoriais 330Ohm
  • „Pi NoIR“kamera V2
  • Ultragarsinis jutiklis HC-SR04
  • „Ardiuno“mikro modulis
  • MAX98357A
  • Garsiakalbis 8 Ohm
  • Ir nepamirškite nusipirkti meškos

Raspberry pi sąranka ----------------------------------------------- -------------------------------------------------- --------------------------

Iš pradžių turime nustatyti „Pi“. Pradėkite jau prisijungti naudodami glaistą, jei neturite glaisto, rekomenduoju jį atsisiųsti, tiesiog įveskite savo statinį „Pi“ip naudodami ssh ir eikite su juo. Jei turite įdiegti „Raspberry Pi“, gavau blogų naujienų, šiame projekte to nepaaiškinu.

Įdiekite paketus

sudo apt atnaujinimas

sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3

Virtuali aplinka

python3 -m pip install -atnaujinti pip setuptools ratą virtualenv

mkdir {jūsų projekto aplanko pavadinimas} && cd {jūsų projekto aplankas MySQL mysql-connector-python prieigos kodas

Dabar jūs turite klonuoti „git“saugyklą savo projekto aplanke

github.com/NMCT-S2-Project-I/Project-I.git

Jei pažvelgsite į savo projekto aplanką, turėsite pamatyti 5 aplankus

  • konf
  • env
  • jutiklis
  • sql
  • žiniatinklis

Duomenų bazė

sudo systemctl būsena mysql

ss -lt | grep mysql sudo mysql

sukurti duomenų bazėje vartotoją su visomis privilegijomis ir sukurti savo duomenų bazę

sukurti vartotoją „user“@„localhost“, identifikuotą pagal „slaptažodį“;

sukurti duomenų bazę savo duomenų bazės pavadinimas; suteikite visas privilegijas savo duomenų bazės pavadinime.* „user“@„localhost“su suteikimo galimybe;

Serverio konfigūracijos failai

Uwsgi-flask.ini pakeisite „module =…“į „module = web: app“ir savo sukurtą kelią į virtualenv. Kituose failuose turite pakeisti kelius į faktinius absoliučius jūsų katalogo kelius.

Kai tai suprasite, failus galite nustatyti tinkamoje vietoje.

sudo cp conf/project1-*. service/etc/systemd/system/

sudo systemctl daemon-reload sudo systemctl start project1-* sudo systemctl status project1-*

dabar turime tai padaryti prieinamą

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

Jei viskas klostėsi gerai, turėsite sveiką pasaulį su šia komanda

wget -qO - vietinis šeimininkas

Padaryta ! Na, tai yra dalis, leidžianti paleisti jūsų sistemą …

1 žingsnis: Aparatūros prijungimas prie „Pi“

Aparatūros prijungimas prie „Pi“
Aparatūros prijungimas prie „Pi“

naudojant BCM

garsas MAX98357A

  • BCK į GPIO 18
  • Duomenys į GPIO 21
  • LRCK į GPIO 19

šviesa

  • raudona iki GPIO 17
  • žalia iki GPIO 27
  • mėlyna iki GPIO 22

variklio modulis ULN2003

  • 1 kaištis prie GPIO 5
  • 2 kaištis prie GPIO 6
  • 3 kaištis prie GPIO 13
  • 4 kaištis prie GPIO 26

mikro

Nuo D0 iki GPIO 21

ultragarso jutiklis

  • pereikite prie GPIO 16
  • aidi GPIO 20

2 žingsnis: pagrindinių programų kodavimas

Aš čia nesigilinu į detales, bet jūs galite patikrinti mano kodą „github“.

Pirmiausia sukūriau savo html ir css, indeksą, prisijungimą, registraciją, pagrindinį ekraną, muziką, „addmusic“, „addbear“, šviesą, fotoaparatą, fotoaparato nustatymus, jutiklį, prietaisų skydelio puslapį. HTML failai turi būti šablonuose, o css failai - aplanke static/css. Galite visiškai pritaikyti css, kaip norite.

Jei atlikote šią dalį, turite nustatyti kolbą. Kolbą lengva naudoti tik kaip gero pasaulio pavyzdį

# importo kolba iš pradžių

iš kolbos importo * @app.route ('/') def index (): return render_template ('index.html')

Dabar mano kode tai jau užpildyta, vienintelis dalykas, kurį turite padaryti, yra pakeisti duomenų bazės vartotoją ir slaptažodį iš jūsų ir, žinoma, sukurti tą pačią duomenų bazę, kurią taip pat galite rasti „github“.

3 žingsnis: sukurkite duomenų bazę

Duomenų bazės kūrimas
Duomenų bazės kūrimas

Tikriems gerbėjams aš jums pasakysiu, kaip sukurti tą pačią duomenų bazę.

Taigi pirmiausia turime sukurti duomenų bazę, jei to nepadarėte atlikdami pirmą veiksmą.

sukurti duomenų bazę beargardian;

Kai tai padarysite, lenteles sukuriate „mysql workbench“arba „phpadmin“

vartotojo lentelė turi

  • Vartotojo ID
  • Pirmas vardas
  • pavardė
  • paštą
  • babyname
  • slaptažodį su sha1
  • userfolder
  • playmus (int)
  • „playlight“(int)
  • grojamas įrašas (int)

muzikos staliukas turi

  • musicID
  • daina
  • kelias
  • userfolder
  • būsena
  • tūrio

yra įrašymo lentelė

  • įrašymo ID
  • kelias
  • userfolder
  • laikas
  • dieną

yra spalvotas stalas

  • colorID
  • raudona
  • žalias
  • mėlyna
  • ryškumas
  • Vartotojo ID

meškos stalas turi

  • bearID (dešimtainis (8))
  • userID numatytasis null
  • bearname

turi jutiklių lentelę

  • sensorID
  • atstumas
  • mikro
  • bearID
  • laikas
  • dieną
  • miego laikas

Taigi dabar jūs sėkmingai sukūrėte duomenų bazę, pereikime prie aparatūros.

4 žingsnis: aparatinės įrangos kodavimas

Aš parodysiu šiek tiek kodo ir pasakysiu, kodėl aš tai padariau.

Pirmiausia naudoju siūlus, kas yra absoliuti būtinybė šiame projekte. Kas yra siūlai, hmmm geras klausimas! „Python“grėsmė yra paleisti kelias programas vienu metu. Taigi, jei, pavyzdžiui, pakeisite spalvą, taip pat galėsite įrašyti. Tai lengva naudoti, nesijaudinkite.

importuoti _threaddef function_name (kažkas, kažkas_else): kodas, kurį reikia paleisti

_thread.start_new_thread (funkcijos_pavadinimas, rinkinys_su_funkcijų_variables)

Jei pažiūrėjote į mano programą, pamatėte logger.info ('…'). Tai yra spausdinimo funkcija, bet daug geriau, nes „Pi“negalite išspausdinti medžiagos, todėl sukuriu failą ir atspausdinu jį ten. Šiuo kodu galite nustatyti žurnalo failą.

logger = logging.getLogger (_ vardas _) logger.setLevel (logging. INFO) # sukurti failų tvarkytoją handler = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)

# sukurkite registravimo formatą

formatter = logging. Formatter (' %(asctime) s - %(name) s - %(message) s') handler.setFormatter (formatter)

# pridėkite tvarkytuvus prie registratoriaus

logger.addHandler (tvarkytojas)

logger.info ('paleiskite aparatūrą / n ---------------------------------------')

toliau pačiame kode aš viską paaiškinu.

Rekomenduojamas: