Innholdsfortegnelse:

Beargardian: 5 trinn
Beargardian: 5 trinn

Video: Beargardian: 5 trinn

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

Hei folkens på skolen, jeg trengte en idé til et prosjekt. Så jeg tenkte, det må være et prosjekt med bringebærpi, og det er lokalt. Plutselig hadde jeg en god idé, og ikke spør meg hvordan jeg får den ideen, men jeg tenkte på en oppgradering for en babymonitor. Tenk litt på den ideen, de fleste babymonitorene har bare funksjonen til å lytte til babyens rom.

Funksjonene

  • Et lite lysshow med justerbare farger
  • Et kamera som viser deg levende bilder
  • En høyttaler for å spille musikk
  • Sensorer for å fange babyens bevegelse
  • Alt det som vises på et nettsted

Kort informasjon

La meg forklare dette i en kort versjon. Så vi trenger et nettsted og for dette prosjektet bruker jeg Flask, vi trenger også en database og jeg bruker mysql, også et skript som kjører maskinvaren, og dette er med python (3), og som sist trenger vi et serveroppsett det ville være nginx på PI.

Hva trenger vi

  • Raspberry Pi 3
  • Trinnmotoren 28BYJ
  • Stepmotor driverchip ULN2003 trinnmodul
  • En rgb -ledning med 3 motstander 330Ohm
  • Pi NoIR -kameraet V2
  • Ultralydssensoren HC-SR04
  • Mikromodulen fra ardiuno
  • MAX98357A
  • En høyttaler 8Ohm
  • Og ikke glem å kjøpe en bjørn

Oppsett bringebær pi ----------------------------------------------- -------------------------------------------------- --------------------------

Først må vi sette opp Pi. Begynn allerede å logge inn via kitt, hvis du ikke har kitt, anbefaler jeg deg å laste ned dette, bare skriv inn din statiske ip av Pi med ssh, og du går med den. Hvis du må installere Raspberry Pi, så fikk jeg dårlige nyheter, jeg forklarer ikke dette i dette prosjektet.

Installer pakker

sudo apt oppdatering

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

Virtuelt miljø

python3 -m pip install -oppgrader pip setuptools hjul virtualenv

mkdir {ditt prosjektmappenavn} && cd {prosjektmappens navn} python3 -m venv --system-nettsted-pakker env kilde env/bin/aktiver python -m pip installer mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask- MySQL mysql-connector-python passlib

Nå må du klone git -depotet i prosjektmappen

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

Hvis du ser i prosjektmappen din, må du se 5 mapper

  • konf
  • env
  • sensor
  • kvm
  • web

Database

sudo systemctl status mysql

ss -lt | grep mysql sudo mysql

opprett en bruker i databasen med alle rettigheter og lag din database

opprett bruker 'bruker'@'localhost' identifisert med 'passord';

opprette databasen ditt databasenavn; gi alle rettigheter på databasenavnet ditt.* til 'bruker'@'localhost' med tildelingsalternativ;

Conf -filer for serveren

I uwsgi-flask.ini endrer du 'module = …' til 'module = web: app' og banen til din virtualenv som du opprettet. I de andre filene må du endre banene til de faktiske absolutte banene i katalogen din.

Når du har funnet ut det, kan du sette filene på riktig sted.

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

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

nå må vi sette dette tilgjengelig

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

Hvis alt gikk bra, burde du ha en god verden med denne kommandoen

wget -qO - lokal vert

Ferdig! Vel, det er for delen å la kjøre systemet ditt på …

Trinn 1: Koble maskinvaren til Pi

Kabling av maskinvaren til Pi
Kabling av maskinvaren til Pi

ved hjelp av BCM

lyd MAX98357A

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

lys

  • rød til GPIO 17
  • grønn 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

ultralyd sensor

  • trig til GPIO 16
  • ekko til GPIO 20

Trinn 2: Koding av hovedprogrammene

Jeg kommer ikke inn på detaljer her, men du kan sjekke koden min i github.

Til å begynne med lagde jeg min html og css, en indeks, pålogging, register, startskjerm, musikk, addmusic, addbear, lys, kamera, kamerainnstillinger, sensor, dashbordside. HTML -filene må være i malene og css -filene i static/css -mappen. Du kan tilpasse CSS fullt ut som du ønsker.

Hvis du har gjort denne delen, må du sette opp kolben din. Kolbe er lett å bruke bare et eksempel på hei -verdenen

# importkolbe først

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

Nå i koden min er dette allerede fylt ut, det eneste du trenger å gjøre er å endre databasebruker og passord til det fra deg og selvfølgelig lage den samme databasen som du også kan finne i github.

Trinn 3: Opprette databasen

Opprette databasen
Opprette databasen

For de virkelige fansen skal jeg fortelle deg hvordan du lager den samme databasen.

Så først må vi opprette databasen hvis du ikke gjorde det i trinn ett.

lage database beargardian;

Når du gjorde dette, oppretter du tabellene i mysql arbeidsbenk eller phpadmin

bruker tabellen har

  • bruker-ID
  • fornavn
  • etternavn
  • e -post
  • babynavn
  • passord med sha1
  • brukermappe
  • playmusic (int)
  • lommelykt (int)
  • spillopptak (int)

musikkbord har

  • musikkID
  • sang
  • sti
  • brukermappe
  • status
  • volum

opptaksbord har

  • opptaks -ID
  • sti
  • brukermappe
  • tid
  • dag

fargetabell har

  • colorID
  • rød
  • grønn
  • blå
  • lysstyrke
  • bruker-ID

bjørn bord har

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

sensorbord har

  • sensorID
  • avstand
  • mikro
  • bearID
  • tid
  • dag
  • sovetid

Så nå har du opprettet databasen vellykket, la oss gå til maskinvaren.

Trinn 4: Maskinvarekoding

Jeg skal vise litt kode og fortelle deg hvorfor jeg gjorde det på den måten.

Til å begynne med brukte jeg tråden, hva et absolutt must er i dette prosjektet. Hva er tråden, hmmm godt spørsmål! Vel truende i python er å kjøre flere programmer samtidig. Så hvis du for eksempel endrer fargen, kan du også ta opp. Det er enkelt å bruke, ikke bekymre deg.

import _threaddef function_name (noe, something_else): kode som skal kjøres

_thread.start_new_thread (funksjonsnavn, tuple_with_the_functions_variables)

Hvis du så på programmet mitt så du logger.info ('…'). Dette er utskriftsfunksjonen, men mye bedre, for på Pi kan du ikke skrive ut ting, så jeg lager en fil og skriver den ut der. Yoe kan angi loggfilen med denne koden.

logger = logging.getLogger (_ navn _) logger.setLevel (logging. INFO) # lag en filbehandler = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)

# opprett et loggingsformat

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

# legg til behandlerne i loggeren

logger.addHandler (handler)

logger.info ('start opp maskinvare / n ---------------------------------------')

videre i selve koden forklarer jeg alt.

Anbefalt: