Innholdsfortegnelse:
- Trinn 1: Koble maskinvaren til Pi
- Trinn 2: Koding av hovedprogrammene
- Trinn 3: Opprette databasen
- Trinn 4: Maskinvarekoding
Video: Beargardian: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
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
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
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:
Arduino bilvarslingssystem for omvendt parkering - Trinn for trinn: 4 trinn
Arduino Car Reverse Parking Alert System | Trinn for trinn: I dette prosjektet skal jeg designe en enkel Arduino Car Reverse Parking Sensor Circuit ved hjelp av Arduino UNO og HC-SR04 Ultrasonic Sensor. Dette Arduino -baserte bilreverseringssystemet kan brukes til autonom navigasjon, robotavstand og andre områder
Trinn for trinn PC -bygging: 9 trinn
Steg for trinn PC -bygging: Rekvisita: Maskinvare: HovedkortCPU & CPU -kjøler PSU (strømforsyningsenhet) Lagring (HDD/SSD) RAMGPU (ikke nødvendig) CaseTools: Skrutrekker ESD -armbånd/mathermal pasta m/applikator
Tre høyttalerkretser -- Trinn-for-trinn opplæring: 3 trinn
Tre høyttalerkretser || Trinn-for-trinn opplæring: Høyttalerkretsen styrker lydsignalene som mottas fra miljøet til MIC og sender den til høyttaleren der forsterket lyd produseres. Her vil jeg vise deg tre forskjellige måter å lage denne høyttalerkretsen på:
RC -sporet robot ved hjelp av Arduino - Trinn for trinn: 3 trinn
RC -sporet robot ved bruk av Arduino - Steg for trinn: Hei folkens, jeg er tilbake med et annet kult Robot -chassis fra BangGood. Håper du har gått gjennom våre tidligere prosjekter - Spinel Crux V1 - Gesture Controlled Robot, Spinel Crux L2 - Arduino Pick and Place Robot with Robotic Arms og The Badland Braw
Hvordan lage et nettsted (en trinn-for-trinn-guide): 4 trinn
Hvordan lage et nettsted (en trinn-for-trinn-guide): I denne veiledningen vil jeg vise deg hvordan de fleste webutviklere bygger nettstedene sine og hvordan du kan unngå dyre nettstedbyggere som ofte er for begrenset til et større nettsted. hjelpe deg med å unngå noen feil som jeg gjorde da jeg begynte