Innehållsförteckning:
- Steg 1: Anslut hårdvaran till Pi
- Steg 2: Kodning av huvudprogrammen
- Steg 3: Skapa databasen
- Steg 4: Maskinvarukodning
- Steg 5: Bra jobbat
Video: Beargardian: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Hej killar till skolan jag behövde en idé för ett projekt. Så jag tänkte, det måste vara ett projekt med hallon pi och det är lokalt. Plötsligt fick jag en bra idé och fråga mig inte hur jag får den idén men jag tänkte på en uppgradering för en babyvakt. Tänk bara en sekund på den idén, de flesta babyvakterna har bara funktionen att lyssna på barnets rum.
Funktionerna
- En liten ljusshow med justerbara färger
- En kamera som visar levande bilder
- En högtalare för att spela musik
- Sensorer för att fånga bebisens rörelse
- Allt som visas på en webbplats
Kort information
Låt mig förklara detta i en kort version. Så vi behöver en webbplats och för det här projektet använder jag Flask, vi behöver också en databas och jag använder mysql, också ett skript som kör hårdvaran och det här är med python (3) och som sista behöver vi en serverinställning det skulle vara nginx på PI.
Vad behöver vi
- Raspberry Pi 3
- Stegmotorn 28BYJ
- Stegmotor förarchip ULN2003 stegmodul
- En rgb -ledning med 3 motstånd 330Ohm
- Pi NoIR -kameran V2
- Ultraljudssensorn HC-SR04
- Mikromodulen från ardiuno
- MAX98357A
- En högtalare 8Ohm
- Och glöm inte att köpa en björn
Konfigurera hallon pi ----------------------------------------------- ---------------------------------------------------------- --------------------------
Först måste vi konfigurera Pi. Börja redan med att logga in via kitt, om du inte har kitt rekommenderar jag att du laddar ner det här, helt enkelt skriver du in din statiska ip av Pi med ssh och du fortsätter med det. Om du måste installera din Raspberry Pi fick jag dåliga nyheter, jag förklarar inte detta i det här projektet.
Installera paket
sudo apt uppdatering
sudo apt installera -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3
Virtuell miljö
python3 -m pip install -uppgradera pip setuptools hjul virtualenv
mkdir {ditt projektmappnamn} && cd {ditt projektmappnamn} python3 -m venv --system-site-packages env source env/bin/aktivera python -m pip installera mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask- MySQL mysql-connector-python passlib
Nu måste du klona git -förvaret i din projektmapp
github.com/NMCT-S2-Project-I/Project-I.git
Om du tittar i din projektmapp måste du se 5 mappar
- konf
- env
- sensor
- kvm
- webb
Databas
sudo systemctl status mysql
ss -lt | grep mysql sudo mysql
skapa en användare i databasen med alla privilegier och skapa din databas
skapa användarens 'användare'@'localhost' identifierad med 'lösenord';
skapa databas ditt databasnamn; bevilja alla privilegier på ditt databasnamn.* till 'användare'@'localhost' med alternativ för bidrag;
Conf -filer för servern
I uwsgi-flask.ini ändrar du 'module = …' till 'module = web: app' och sökvägen till din virtualenv som du skapade. I de andra filerna måste du ändra sökvägarna till de faktiska absoluta sökvägarna i din katalog.
När du väl kommit på det kan du ställa in filerna på rätt plats.
sudo cp conf/project1-*. service/etc/systemd/system/
sudo systemctl daemon-reload sudo systemctl start project1-* sudo systemctl status project1-*
nu måste vi ställa detta tillgängligt
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
Om allt gick bra borde du ha hej världen med det här kommandot
wget -qO - lokal värd
Gjort ! Tja, det är för den delen att låta köra ditt system …
Steg 1: Anslut hårdvaran till Pi
med BCM
ljud MAX98357A
- BCK till GPIO 18
- Data till GPIO 21
- LRCK till GPIO 19
ljus
- röd till GPIO 17
- grön till GPIO 27
- blå till GPIO 22
motormodul ULN2003
- stift 1 till GPIO 5
- stift 2 till GPIO 6
- stift 3 till GPIO 13
- stift 4 till GPIO 26
mikro
D0 till GPIO 21
ultraljudssensor
- trig till GPIO 16
- eko till GPIO 20
Steg 2: Kodning av huvudprogrammen
Jag går inte in på detaljer här men du kan checka ut min kod i github.
Till att börja med gjorde jag min html och css, ett index, inloggning, register, startskärm, musik, addmusic, addbear, ljus, kamera, kamerainställningar, sensor, instrumentpanelsida. HTML -filerna måste finnas i mallarna och css -filerna i static/css -mappen. Du kan helt anpassa css som du vill.
Om du gjort den här delen måste du ställa in din kolv. Kolven är lätt att använda bara ett exempel på hejvärlden
# importkolv först
från kolvimport * @app.route ('/') def index (): return render_template ('index.html')
Nu i min kod är detta redan fyllt i, det enda du behöver göra är att ändra databasanvändaren och lösenordet till det från dig och naturligtvis göra samma databas som du också kan hitta i github.
Steg 3: Skapa databasen
För de riktiga fansen ska jag berätta hur du skapar samma databas.
Så först måste vi skapa databasen om du inte gjorde det i steg ett.
skapa databas beargardian;
När du väl gjort detta skapar du tabellerna i mysql workbench eller phpadmin
användartabell har
- användar ID
- förnamn
- efternamn
- e-post
- barnnamn
- lösenord med sha1
- användarmapp
- playmusic (int)
- playlight (int)
- spela in (int)
musikbord har
- musikID
- låt
- väg
- användarmapp
- status
- volym
inspelningsbord har
- inspelnings -ID
- väg
- användarmapp
- tid
- dag
färgtabell har
- colorID
- röd
- grön
- blå
- ljusstyrka
- användar ID
björnbord har
- bearID (decimal (8))
- userID default null
- björnamn
sensorbord har
- sensorID
- distans
- mikro
- bearID
- tid
- dag
- sovdags
Så nu har du skapat databasen framgångsrikt, låt oss gå till hårdvaran.
Steg 4: Maskinvarukodning
Jag ska visa lite kod och berätta varför jag gjorde det på det sättet.
Till att börja med använde jag trådning, vilket absolut måste är i detta projekt. Vad är tråden, hmmm bra fråga! Väl hotande i python är att köra flera program samtidigt. Så om du till exempel ändrar färg kan du också spela in. Det är lätt att använda oroa dig inte.
import _threaddef function_name (något, something_else): kod som ska köras
_thread.start_new_thread (function_name, tuple_with_the_functions_variables)
Om du tittade på mitt program såg du logger.info ('…'). Detta är utskriftsfunktionen men mycket bättre, för på Pi kan du inte skriva ut saker så jag gör en fil och skriver ut den där. Yoe kan ställa in loggfilen med denna kod.
logger = logging.getLogger (_ namn _) logger.setLevel (logging. INFO) # skapa en filhanterare = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)
# skapa ett loggningsformat
formatter = logging. Formatter (' %(asctime) s - %(name) s - %(message) s') handler.setFormatter (formatter)
# lägg till hanterarna i loggaren
logger.addHandler (hanterare)
logger.info ('starta hårdvara / n ---------------------------------------')
vidare i själva koden förklarar jag allt.
Rekommenderad:
Arduino Car Reverse Parking Alert System - Steg för steg: 4 steg
Arduino Car Reverse Parking Alert System | Steg för steg: I det här projektet kommer jag att utforma en enkel Arduino Car Reverse Parking Sensor Circuit med Arduino UNO och HC-SR04 Ultrasonic Sensor. Detta Arduino -baserade bilomvändningsvarningssystem kan användas för autonom navigering, robotavstånd och andra
Steg för steg PC -byggnad: 9 steg
Steg för steg PC -byggnad: Tillbehör: Hårdvara: ModerkortCPU & CPU -kylarePSU (strömförsörjningsenhet) Lagring (HDD/SSD) RAMGPU (krävs inte) CaseTools: Skruvmejsel ESD -armband/mathermisk pasta med applikator
Tre högtalarkretsar -- Steg-för-steg handledning: 3 steg
Tre högtalarkretsar || Steg-för-steg-handledning: Högtalarkretsen förstärker ljudsignalerna som tas emot från miljön till MIC och skickar den till högtalaren varifrån förstärkt ljud produceras. Här visar jag dig tre olika sätt att göra denna högtalarkrets med:
Steg-för-steg-utbildning i robotik med ett kit: 6 steg
Steg-för-steg-utbildning i robotik med ett kit: Efter ganska många månader av att bygga min egen robot (se alla dessa), och efter att två gånger ha misslyckats med delar, bestämde jag mig för att ta ett steg tillbaka och tänka om min strategi och riktning. De flera månaders erfarenhet var ibland mycket givande och
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)