INHOUDSOPGAWE:
- Stap 1: Koppel die hardeware aan die Pi
- Stap 2: Kodering van die hoofprogramme
- Stap 3: Skep die databasis
- Stap 4: Hardeware -kodering
Video: Beargardian: 5 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Hallo ouens vir die skool, ek het 'n idee nodig vir 'n projek. So ek het gedink: dit moet 'n projek wees met die framboos pi en dit is plaaslik. Skielik het ek 'n goeie idee gehad en vra my nie hoe ek die idee kry nie, maar ek het gedink aan 'n opgradering vir 'n babamonitor. Dink net 'n oomblik aan die idee; die meeste babamonitors het net die funksie om na die baba se kamer te luister.
Die funksies
- 'N Bietjie ligskou met verstelbare kleure
- 'N Kamera wat u lewendige beelde wys
- 'N Spreker om musiek te speel
- Sensors om die baba se bewegings vas te vang
- Alles wat op 'n webwerf verskyn
Kort inligting
Laat ons dit in 'n kort weergawe verduidelik. Ons benodig dus 'n webwerf en vir hierdie projek gebruik ek Flask, ons benodig ook 'n databasis en ek gebruik mysql, ook 'n script wat die hardeware bestuur, en dit is met python (3), en laastens het ons 'n bedieneropstelling nodig dit sou nginx op die PI wees.
Wat het ons nodig
- Die Framboos Pi 3
- Die stapmotor 28BYJ
- Die stapmotor -bestuurderchip ULN2003 -stepper -module
- 'N RGB -LED met 3 weerstande 330Ohm
- Die Pi NoIR -kamera V2
- Die ultrasoniese sensor HC-SR04
- Die mikromodule van ardiuno
- Die MAX98357A
- 'N Luidspreker 8 Ohm
- En moenie vergeet om 'n beer te koop nie
Stel framboos pi op ----------------------------------------------- -------------------------------------------------- --------------------------
Eers moet ons die Pi instel. Begin reeds om via stopverf aan te meld, as u nie stopverf het nie, raai ek u aan om dit af te laai, tik eenvoudig u statiese IP van die Pi met ssh en gaan daarmee. As u u Raspberry Pi moet installeer, kry ek slegte nuus; ek verduidelik dit nie in hierdie projek nie.
Installeer pakkette
sudo apt -opdatering
sudo apt installeer -y python3-venv python3-pip python3-mysqldb mysql-bediener uwsgi nginx uwsgi-plugin-python3
Virtuele omgewing
python3 -m pip install -upgrade pip setuptools wiel virtualenv
mkdir {your project foldername} && cd {your project foldername} python3 -m venv --system-site-packages env source env/bin/activeer python -m pip installeer mysql-connector-python argon2-cffi Fleskolf-HTTPAuth-kolf- MySQL mysql-connector-python-wagwoord
Nou moet u die git -bewaarplek in u projekmap kloon
github.com/NMCT-S2-Project-I/Project-I.git
As u in u projekmap kyk, moet u 5 vouers sien
- konf
- env
- sensor
- vierkante meter
- web
Databasis
sudo systemctl status mysql
ss -lt | grep mysql sudo mysql
skep 'n gebruiker in die databasis met alle voorregte en maak u databasis
skep 'gebruiker' gebruiker '@' localhost 'geïdentifiseer deur' wagwoord ';
skep 'n databasis van u databasienaam; gee alle voorregte op u databasienaam.* aan 'gebruiker'@'localhost' met toekenningsopsie;
Conf -lêers vir bediener
In die uwsgi-flask.ini verander u 'module = …' na 'module = web: app' en die pad na u virtuele netwerk wat u geskep het. In die ander lêers moet u die paaie verander na die werklike absolute paaie van u gids.
Sodra u dit agtergekom het, kan u die lêers op die regte plek plaas.
sudo cp conf/project1-*. service/etc/systemd/system/
sudo systemctl daemon-herlaai sudo systemctl begin projek1-* sudo systemctl status projek1-*
nou moet ons dit beskikbaar stel
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 herlaai nginx.service sudo nginx -t
As alles goed gegaan het, sou u 'n goeie wêreld hê met hierdie opdrag
wget -qO - localhost
Klaar! Dit is vir die deel om u stelsel te laat werk …
Stap 1: Koppel die hardeware aan die Pi
met behulp van BCM
klank MAX98357A
- BCK na GPIO 18
- Data na GPIO 21
- LRCK na GPIO 19
lig
- rooi na GPIO 17
- groen tot GPIO 27
- blou na GPIO 22
motor module ULN2003
- pen 1 tot GPIO 5
- pen 2 na GPIO 6
- pen 3 na GPIO 13
- pen 4 by GPIO 26
mikro
D0 na GPIO 21
ultrasoniese sensor
- trig na GPIO 16
- eggo na GPIO 20
Stap 2: Kodering van die hoofprogramme
Ek gaan nie hier in op besonderhede nie, maar u kan my kode in github afreken.
Om mee te begin het ek my html en css, 'n indeks, aanmelding, register, tuisskerm, musiek, addmusic, addbear, light, kamera, kamerastellings, sensor, dashboard -bladsy gemaak. Die html -lêers moet in die sjablone en die css -lêers in die static/css -lêergids wees. U kan die css volledig aanpas soos u wil.
As u hierdie deel gedoen het, moet u u kolf opstel. Die fles is maklik om net 'n voorbeeld van die hallo -wêreld te gebruik
# invoerkolf eers
vanaf kolfinvoer * @app.route ('/') def -indeks (): lewer render_template ('index.html') op
Nou, in my kode, is dit reeds ingevul; die enigste ding wat u hoef te doen is om die databasisgebruiker en wagwoord van u te verander en natuurlik dieselfde databasis te maak wat u ook in github kan vind.
Stap 3: Skep die databasis
Vir die regte aanhangers gaan ek jou vertel hoe om dieselfde databasis te skep.
Dus moet ons eers die databasis skep as u dit nie in stap een gedoen het nie.
skep databasis beargardian;
Sodra u dit gedoen het, skep u die tabelle in mysql werkbank of phpadmin
gebruikers tafel het
- userID
- eerste naam
- van
- e -pos
- baba naam
- wagwoord met sha1
- gebruikersmap
- speelmusiek (int)
- speellig (int)
- speelopname (int)
musiektafel het
- musiekID
- liedjie
- pad
- gebruikersmap
- status
- volume
opname tafel het
- opname -ID
- pad
- gebruikersmap
- tyd
- dag
kleurtabel het
- colorID
- rooi
- groen
- blou
- helderheid
- userID
beer tafel het
- bearID (desimaal (8))
- userID standaard nul
- beernaam
sensor tafel het
- sensorID
- afstand
- mikro
- beerID
- tyd
- dag
- slaap tyd
Dus, nou het u die databasis suksesvol geskep, laat ons na die hardeware gaan.
Stap 4: Hardeware -kodering
Ek sal 'n bietjie kode wys en vertel hoekom ek dit so gedoen het.
Om mee te begin gebruik ek threading, wat 'n absolute moet in hierdie projek is. Wat is threading, hmmm goeie vraag! Die bedreiging in python is om verskeie programme tegelyk uit te voer. As u byvoorbeeld die kleur verander, kan u dit ook opneem. Dit is maklik om te gebruik, moenie bekommerd wees nie.
import _threaddef function_name (iets, iets_else): kode om uit te voer
_thread.start_new_thread (funksienaam, tuple_with_the_functions_variables)
As u na my program gekyk het, het u logger.info ('…') gesien. Dit is die drukfunksie, maar baie beter, want op die Pi kan u nie dinge uitdruk nie, so ek maak 'n lêer en druk dit daar. Yoe kan die loglêer met hierdie kode opstel.
logger = logging.getLogger (_ naam _) logger.setLevel (logging. INFO) # skep 'n file handler handler = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)
# skep 'n aantekenformaat
formatter = logging. Formatter (' %(asctime) s - %(name) s - %(message) s') handler.setFormatter (formatter)
# voeg die hanteerders by die logger
logger.addHandler (hanteerder)
logger.info ('opstart hardeware / n ---------------------------------------')
verder in die kode self verduidelik ek alles.
Aanbeveel:
Spelontwerp in vyf stappe: 5 stappe
Spelontwerp in fliek in 5 stappe: Flick is 'n baie eenvoudige manier om 'n speletjie te maak, veral iets soos 'n legkaart, visuele roman of avontuurlike spel
Gesigsopsporing op Raspberry Pi 4B in 3 stappe: 3 stappe
Gesigsopsporing op Raspberry Pi 4B in 3 stappe: in hierdie instruksies gaan ons gesigsopsporing uitvoer op Raspberry Pi 4 met Shunya O/S met behulp van die Shunyaface-biblioteek. Shunyaface is 'n biblioteek vir gesigherkenning/opsporing. Die projek het ten doel om die vinnigste opsporing en herkenningssnelheid te bereik met
DIY Vanity Mirror in eenvoudige stappe (met LED -strookligte): 4 stappe
DIY Vanity Mirror in eenvoudige stappe (met behulp van LED Strip Lights): In hierdie pos het ek 'n DIY Vanity Mirror gemaak met behulp van die LED strips. Dit is regtig cool, en u moet dit ook probeer
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): 6 stappe
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): wil u u vriende skrik en 'n skreeu geraas maak tydens Halloween? Of wil u net 'n goeie grap maak? Hierdie pop-up skerm van Zombies kan dit doen! In hierdie instruksies sal ek u leer hoe u maklik Zombies kan spring deur Arduino te gebruik. Die HC-SR0
Speel Doom op u iPod in 5 maklike stappe !: 5 stappe
Speel Doom op u iPod in 5 maklike stappe !: 'n Stap-vir-stap gids oor hoe u Rockbox op u iPod kan dubbellaai om Doom en tientalle ander speletjies te speel. Dit is iets baie maklik om te doen, maar baie mense staan nog steeds verbaas as hulle sien hoe ek op my iPod doom speel en deurmekaar raak met die instruksies