Indholdsfortegnelse:

Beargardian: 5 trin
Beargardian: 5 trin

Video: Beargardian: 5 trin

Video: Beargardian: 5 trin
Video: Teddy Bear SCP-6330 Guardians of the Innocent (SCP Animation) 2024, November
Anonim
Beargardian
Beargardian

Hej fyre til skolen, jeg havde brug for en idé til et projekt. Så jeg tænkte, det skal være et projekt med hindbær pi, og det er lokalt. Pludselig havde jeg en god idé, og spørg mig ikke, hvordan jeg får den idé, men jeg tænkte på en opgradering til en babyalarm. Tænk lige et øjeblik over den idé, de fleste babyalarmer har bare funktionen til at lytte til babyens værelse.

Funktionerne

  • Et lille lysshow med justerbare farver
  • Et kamera, der viser dig levende billeder
  • En højttaler til at spille musik
  • Sensorer til at fange babyens bevægelse
  • Alt det vises på et websted

Kort information

Lad mig forklare dette i en kort version. Så vi har brug for et websted, og til dette projekt bruger jeg Flask, vi har også brug for en database, og jeg bruger mysql, også et script, der kører hardware, og dette er med python (3), og som sidste har vi brug for en serveropsætning det ville være nginx på PI.

Hvad har vi brug for

  • Raspberry Pi 3
  • Trinmotoren 28BYJ
  • Stepmotor driverchip ULN2003 stepper modul
  • En rgb -LED med 3 modstande 330Ohm
  • Pi NoIR kamera V2
  • Ultralydssensoren HC-SR04
  • Mikromodulet fra ardiuno
  • MAX98357A
  • En højttaler 8Ohm
  • Og glem ikke at købe en bjørn

Opsætning af hindbær pi ----------------------------------------------- ---------------------------------------------------------- --------------------------

Først skal vi konfigurere Pi. Start allerede med at logge ind via spartel, hvis du ikke har spartel, anbefaler jeg dig at downloade dette, bare indtast din statiske ip af Pi med ssh, og du fortsætter med det. Hvis du skal installere din Raspberry Pi, så fik jeg dårlige nyheder, jeg forklarer det ikke i dette projekt.

Installer pakker

sudo apt opdatering

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

Virtuelt miljø

python3 -m pip installation -opgrader pip setuptools hjul virtualenv

mkdir {dit projektmappenavn} && cd {dit projektmappenavn} python3 -m venv --system-site-pakker env kilde env/bin/aktivere python -m pip installer mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask- MySQL mysql-connector-python passlib

Nu skal du klone git -depotet i din projektmappe

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

Hvis du kigger i din projektmappe, skal du se 5 mapper

  • konf
  • env
  • sensor
  • sql
  • web

Database

sudo systemctl status mysql

ss -lt | grep mysql sudo mysql

opret en bruger i databasen med alle rettigheder og lav din database

opret bruger 'bruger'@'localhost' identificeret med 'adgangskode';

oprette database ditdatabasenavn; tildel alle rettigheder på dit databasenavn.* til 'bruger'@'localhost' med mulighed for tildeling;

Conf -filer til serveren

I uwsgi-flask.ini ændrer du 'modul = …' til 'modul = web: app' og stien til din virtualenv, som du har oprettet. I de andre filer skal du ændre stierne til de faktiske absolutte stier i dit bibliotek.

Når du har fundet ud af det, kan du indstille filerne på det rigtige sted.

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

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

nu skal vi stille dette til rådighed

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 genstart nginx.service sudo nginx -t

Hvis alt gik godt, skulle du have en god verden med denne kommando

wget -qO - localhost

Færdig ! Nå, det er for delen at lade køre dit system på …

Trin 1: Tilslutning af hardware til Pi

Tilslutning af hardware til Pi
Tilslutning af hardware til Pi

ved hjælp af BCM

lyd MAX98357A

  • BCK til GPIO 18
  • Data til GPIO 21
  • LRCK til GPIO 19

lys

  • rød til GPIO 17
  • grøn til GPIO 27
  • blå til GPIO 22

motor modul ULN2003

  • pin 1 til GPIO 5
  • pin 2 til GPIO 6
  • pin 3 til GPIO 13
  • pin 4 til GPIO 26

mikro

D0 til GPIO 21

ultralydssensor

  • trig til GPIO 16
  • ekko til GPIO 20

Trin 2: Kodning af hovedprogrammerne

Jeg kommer ikke ind på detaljer lige her, men du kan tjekke min kode i github.

Til at begynde med lavede jeg min html og css, et indeks, login, register, startskærm, musik, addmusic, addbear, lys, kamera, kameraindstillinger, sensor, dashboard side. HTML -filerne skal være i skabelonerne og css -filerne i static/css -mappen. Du kan fuldt ud tilpasse css, som du ønsker.

Hvis du har udført denne del, skal du opsætte din kolbe. Kolbe er let at bruge bare et eksempel på goddagens verden

# importkolbe i starten

fra kolbeimport * @app.route ('/') def index (): return render_template ('index.html')

Nu i min kode er dette allerede udfyldt, det eneste du skal gøre er at ændre databasebruger og adgangskode til det fra dig og selvfølgelig lave den samme database, som du også kan finde i github.

Trin 3: Oprettelse af databasen

Oprettelse af databasen
Oprettelse af databasen

For de rigtige fans vil jeg fortælle dig, hvordan du opretter den samme database.

Så først skal vi oprette databasen, hvis du ikke gjorde det i trin et.

oprette database beargardian;

Når du har gjort dette, opretter du tabellerne i mysql workbench eller phpadmin

bruger bord har

  • bruger ID
  • fornavn
  • efternavn
  • e -mail
  • babyname
  • adgangskode med sha1
  • brugermappe
  • playmusic (int)
  • lyskast (int)
  • afspilning (int)

musikbord har

  • musikID
  • sang
  • sti
  • brugermappe
  • status
  • bind

optagebord har

  • registrerings -ID
  • sti
  • brugermappe
  • tid
  • dag

farve bord har

  • colorID
  • rød
  • grøn
  • blå
  • lysstyrke
  • bruger ID

bjørne bord har

  • bearID (decimal (8))
  • userID standard null
  • bjørnnavn

sensorbord har

  • sensorID
  • afstand
  • mikro
  • bearID
  • tid
  • dag
  • sengetid

Så nu har du oprettet databasen med succes, lad os gå til hardware.

Trin 4: Hardwarekodning

Jeg viser en lille smule kode og fortæller dig, hvorfor jeg gjorde det på den måde.

Til at begynde med brugte jeg trådning, hvad et absolut must er i dette projekt. Hvad er trådning, hmmm godt spørgsmål! Godt truende i python er at køre flere programmer på én gang. Så hvis du f.eks. Ændrer farven, kan du også optage. Det er let at bruge, bare rolig.

import _threaddef function_name (noget, something_else): kode, der skal køres

_thread.start_new_thread (funktionsnavn, tuple_with_the_functions_variables)

Hvis du kiggede på mit program, så du logger.info ('…'). Dette er udskrivningsfunktionen, men meget bedre, for på Pi kan du ikke udskrive ting ud, så jeg laver en fil og udskriver den derinde. Yoe kan indstille logfilen med denne kode.

logger = logging.getLogger (_ navn _) logger.setLevel (logging. INFO) # create a file handler handler = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)

# opret et logningsformat

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

# tilføj håndtererne til loggeren

logger.addHandler (handler)

logger.info ('opstart af hardware / n ---------------------------------------')

videre i selve koden forklarer jeg alt.

Anbefalede: