Inhoudsopgave:
- Stap 1: Bedrading van de hardware naar de Pi
- Stap 2: De hoofdprogramma's coderen
- Stap 3: De database maken
- Stap 4: Hardwarecodering
Video: Beargardian: 5 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Hey jongens voor school, ik had een idee nodig voor een project. Dus ik zat te denken, het moet een project zijn met de Raspberry Pi en het is lokaal. Opeens had ik een geweldig idee en vraag me niet hoe ik op dat idee kom maar ik dacht aan een upgrade voor een babyfoon. Denk even na over dat idee, de meeste babyfoons hebben gewoon de functie om naar de babykamer te luisteren.
De eigenschappen
- Een kleine lichtshow met instelbare kleuren
- Een camera die je live beelden laat zien
- Een luidspreker om muziek af te spelen
- Sensoren om de bewegingen van de baby vast te leggen
- Al dat laten zien op een website
Korte informatie
Laat me dit in een korte versie uitleggen. Dus we hebben een website nodig en voor dit project gebruik ik Flask, we hebben ook een database nodig en ik gebruik mysql, ook een script dat de hardware uitvoert en dit is met python (3) en als laatste hebben we een serverconfiguratie nodig dat zou nginx op de PI zijn.
Wat hebben we nodig
- De Raspberry Pi 3
- De stappenmotor 28BYJ
- De stappenmotor driverchip ULN2003 stappenmodule:
- Een rgb led met 3 weerstanden 330Ohm
- De Pi NoIR-camera V2
- De ultrasone sensor HC-SR04
- De micromodule van ardiuno
- De MAX98357A
- Een luidspreker 8 Ohm
- En vergeet niet een beer te kopen
Raspberry pi instellen ----------------------------------------------- -------------------------------------------------- --------------------------
Eerst moeten we de Pi instellen. Begin al met inloggen via putty, als je geen putty hebt, raad ik je aan dit te downloaden, typ gewoon je statische ip van de Pi met ssh en je gaat ermee akkoord. Als je je Raspberry Pi moet installeren, dan heb ik slecht nieuws, ik ga dit in dit project niet uitleggen.
Pakketten installeren
sudo apt update
sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3
Virtuele omgeving
python3 -m pip install --upgrade pip setuptools wiel virtualenv
mkdir {uw projectmapnaam} && cd {uw projectmapnaam} python3 -m venv --system-site-packages env source env/bin/activeer python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPauth Flask- MySQL mysql-connector-python passlib
Nu moet je de git-repository in je projectmap klonen
github.com/NMCT-S2-Project-I/Project-I.git
Als je in je projectmap kijkt, moet je 5 mappen zien
- conf
- benijden
- sensor
- sql
- web
Database
sudo systemctl status mysql
ss -lt | grep mysql sudo mysql
maak een gebruiker aan in de database met alle privileges en maak uw database
maak gebruiker 'gebruiker'@'localhost' geïdentificeerd door 'wachtwoord';
maak database uwdatabasenaam; verleen alle rechten op uwdatabasenaam.* aan 'gebruiker'@'localhost' met toekenningsoptie;
Conf-bestanden voor server
In de uwsgi-flask.ini verander je 'module = …' in 'module= web:app' en het pad naar je virtualenv dat je hebt gemaakt. In de andere bestanden moet u de paden wijzigen in de werkelijke absolute paden van uw directory.
Als je dat eenmaal doorhebt, kun je de bestanden op de juiste plaats zetten.
sudo cp conf/project1-*.service /etc/systemd/system/
sudo systemctl daemon-herlaad sudo systemctl start project1-* sudo systemctl status project1-*
nu moeten we dit beschikbaar stellen
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 herstart nginx.service sudo nginx -t
Als alles goed ging, zou je hallo wereld hebben met dit commando
wget -qO - localhost
Gedaan ! Nou, dat is voor het deel om uw systeem op te laten draaien …
Stap 1: Bedrading van de hardware naar de Pi
BCM gebruiken
audio MAX98357A
- BCK naar GPIO 18
- Gegevens naar GPIO 21
- LRCK naar GPIO 19
licht
- rood naar GPIO 17
- groen naar GPIO 27
- blauw naar GPIO 22
motormodule ULN2003
- pin 1 naar GPIO 5
- pin 2 naar GPIO 6
- pin 3 naar GPIO 13
- pin 4 naar GPIO 26
micro
D0 tot GPIO 21
ultrasoon sensor
- trig naar GPIO 16
- echo naar GPIO 20
Stap 2: De hoofdprogramma's coderen
Ik ga hier niet in details, maar je kunt mijn code in github afrekenen.
Om te beginnen heb ik mijn html en css gemaakt, een index, login, register, homescreen, muziek, addmusic, addbear, licht, camera, camera-instellingen, sensor, dashboard pagina. De html-bestanden moeten in de sjablonen staan en de css-bestanden in de static/css-map. U kunt de css volledig naar wens aanpassen.
Als je dit deel hebt gedaan, moet je je kolf instellen. Flask is eenvoudig te gebruiken, slechts een voorbeeld van de hallo wereld
# importeer eerst kolf
from flask import * @app.route('/') def index(): return render_template('index.html')
Nu is dit in mijn code al ingevuld, het enige wat je hoeft te doen is de databasegebruiker en het wachtwoord naar die van jou te veranderen en natuurlijk dezelfde database te maken die je ook in github kunt vinden.
Stap 3: De database maken
Voor de echte fans ga ik je vertellen hoe je dezelfde database kunt maken.
Dus eerst moeten we de database maken als je dat niet in stap één hebt gedaan.
maak database beargardian;
Zodra je dit hebt gedaan, maak je de tabellen in mysql workbench of phpadmin
gebruikerstabel heeft
- gebruikersnaam
- Voornaam
- achternaam
- babynaam
- wachtwoord met sha1
- gebruikersmap
- speelmuziek (int)
- speellicht (int)
- afspelen opnemen (int)
muziektafel heeft
- muziek-ID
- liedje
- pad
- gebruikersmap
- toestand
- volume
opnametafel heeft
- opname-ID
- pad
- gebruikersmap
- tijd
- dag
kleurentabel heeft
- kleur-ID
- rood
- groente
- blauw
- helderheid
- gebruikersnaam
berentafel heeft
- bearID (decimaal (8))
- gebruikers-ID standaard null
- berennaam
sensor tafel heeft
- sensorID
- afstand
- micro
- beer-ID
- tijd
- dag
- bedtijd
Dus nu je de database succesvol hebt gemaakt, gaan we naar de hardware.
Stap 4: Hardwarecodering
Ik zal een klein beetje code laten zien en je vertellen waarom ik het op die manier heb gedaan.
Om te beginnen gebruikte ik threading, wat een absolute must is in dit project. Wat is threading, hmmm goede vraag! Een bedreiging in Python is om meerdere programma's tegelijk uit te voeren. Dus als je bijvoorbeeld de kleur verandert kun je ook opnemen. Het is gemakkelijk te gebruiken, maak je geen zorgen.
import _threaddef function_name(something, something_else): code om uit te voeren
_thread.start_new_thread(functienaam, tuple_with_the_functions_variables)
Als je naar mijn programma keek, zag je logger.info('…'). Dit is de afdrukfunctie, maar veel beter, omdat je op de Pi niets kunt afdrukken, dus maak ik een bestand en print het daarin. Met deze code kunt u het logbestand instellen.
logger = logging.getLogger(_name_)logger.setLevel(logging. INFO) # maak een bestandshandler handler = logging. FileHandler('logger.log') handler.setLevel(logging. INFO)
# maak een logformaat aan
formatter = logging. Formatter('%(asctime)s - %(name)s - %(message)s') handler.setFormatter(formatter)
# voeg de handlers toe aan de logger
logger.addHandler(handler)
logger.info('hardware opstarten\n---------------------------------------')
verder in de code zelf leg ik alles uit.
Aanbevolen:
Game Design in Flick in 5 stappen: 5 stappen
Game-ontwerp in Flick in 5 stappen: Flick is een heel eenvoudige manier om een game te maken, vooral zoiets als een puzzel, visuele roman of avonturengame
Gezichtsdetectie op Raspberry Pi 4B in 3 stappen: 3 stappen
Gezichtsdetectie op Raspberry Pi 4B in 3 stappen: In deze Instructable gaan we gezichtsdetectie uitvoeren op Raspberry Pi 4 met Shunya O/S met behulp van de Shunyaface-bibliotheek. Shunyaface is een bibliotheek voor gezichtsherkenning/detectie. Het project streeft naar de hoogste detectie- en herkenningssnelheid met
Doe-het-zelfspiegel in eenvoudige stappen (met LED-stripverlichting): 4 stappen
DIY make-upspiegel in eenvoudige stappen (met behulp van LED-stripverlichting): In dit bericht heb ik een doe-het-zelfspiegel gemaakt met behulp van de LED-strips. Het is echt gaaf en je moet ze ook proberen
Hoe plug-ins in WordPress te installeren in 3 stappen: 3 stappen
Hoe plug-ins in WordPress te installeren in 3 stappen: In deze tutorial laat ik je de essentiële stappen zien om de WordPress-plug-in op je website te installeren. In principe kunt u plug-ins op twee verschillende manieren installeren. De eerste methode is via ftp of via cpanel. Maar ik zal het niet opsommen, want het is echt compl
Akoestische levitatie met Arduino Uno stap voor stap (8 stappen): 8 stappen
Akoestische levitatie met Arduino Uno Stap voor stap (8-stappen): ultrasone geluidstransducers L298N Vrouwelijke DC-adapter voeding met een mannelijke DC-pin Arduino UNOBreadboardHoe dit werkt: eerst upload je code naar Arduino Uno (het is een microcontroller uitgerust met digitale en analoge poorten om code te converteren (C++)