Indholdsfortegnelse:
- Trin 1: Tilslutning af hardware til Pi
- Trin 2: Kodning af hovedprogrammerne
- Trin 3: Oprettelse af databasen
- Trin 4: Hardwarekodning
Video: Beargardian: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
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
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
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:
Arduino bil omvendt parkering alarmsystem - Trin for trin: 4 trin
Arduino bil omvendt parkering alarmsystem. Trin for trin: I dette projekt vil jeg designe en simpel Arduino bil omvendt parkeringssensorkreds ved hjælp af Arduino UNO og HC-SR04 ultralydssensor. Dette Arduino -baserede bilomvendt alarmsystem kan bruges til en autonom navigation, robotafstand og andre rækkevidde
Trin for trin pc -bygning: 9 trin
Trin for trin PC Building: Supplies: Hardware: MotherboardCPU & CPU -køler PSU (strømforsyningsenhed) Opbevaring (HDD/SSD) RAMGPU (ikke påkrævet) CaseTools: Skruetrækker ESD -armbånd/mathermal pasta m/applikator
Tre højttalerkredsløb -- Trin-for-trin vejledning: 3 trin
Tre højttalerkredsløb || Trin-for-trin vejledning: Højttalerkredsløb styrker lydsignalerne, der modtages fra miljøet til MIC og sender det til højttaleren, hvorfra forstærket lyd produceres. Her vil jeg vise dig tre forskellige måder at lave dette højttalerkredsløb på:
Trin-for-trin uddannelse i robotik med et sæt: 6 trin
Trin-for-trin uddannelse i robotteknologi med et kit: Efter ganske få måneder med at bygge min egen robot (se alle disse), og efter at jeg to gange havde dele mislykkedes, besluttede jeg at tage et skridt tilbage og tænke min strategi og retning. De flere måneders erfaring var til tider meget givende, og
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)