Inhaltsverzeichnis:
- Schritt 1: Verkabelung der Hardware mit dem Pi
- Schritt 2: Codieren der Hauptprogramme
- Schritt 3: Erstellen der Datenbank
- Schritt 4: Hardware-Codierung
Video: Beargardian - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
Hey Leute für die Schule Ich brauchte eine Idee für ein Projekt. Also dachte ich, es muss ein Projekt mit dem Himbeer-Pi sein und es ist lokal. Plötzlich hatte ich eine tolle Idee und frag mich nicht, wie ich auf die Idee komme, aber ich dachte über ein Upgrade für ein Babyphone nach. Denken Sie nur eine Sekunde über diese Idee nach, die meisten Babyphone haben nur die Funktion, das Babyzimmer abzuhören.
Die Funktionen
- Eine kleine Lichtshow mit einstellbaren Farben
- Eine Kamera, die Ihnen Live-Bilder zeigt
- Ein Lautsprecher zum Abspielen von Musik
- Sensoren zur Erfassung der Bewegung des Babys
- All das, was auf einer Website angezeigt wird
Kurze Information
Lassen Sie mich dies in einer kurzen Version erklären. Wir brauchen also eine Website und für dieses Projekt benutze ich Flask, wir brauchen auch eine Datenbank und ich benutze mysql, auch ein Skript, das die Hardware ausführt und dies ist mit Python(3) und als letztes brauchen wir ein Server-Setup das wäre nginx auf dem PI.
Was brauchen wir
- Der Raspberry Pi 3
- Der Schrittmotor 28BYJ
- Das Schrittmotor-Treiberchip ULN2003-Schrittmodul
- Eine RGB-LED mit 3 Widerständen 330Ohm
- Die Pi NoIR-Kamera V2
- Der Ultraschallsensor HC-SR04
- Das Mikromodul von ardiuno
- Der MAX98357A
- Ein Lautsprecher 8Ohm
- Und vergiss nicht, einen Bären zu kaufen
Himbeer-Pi einrichten ---------------------------------------------------------- -------------------------------------------------- --------------------------
Zuerst müssen wir den Pi einrichten. Beginnen Sie bereits, sich über Putty anzumelden, wenn Sie kein Putty haben, empfehle ich Ihnen, dieses herunterzuladen, geben Sie einfach Ihre statische IP des Pi mit ssh ein und Sie können loslegen. Wenn Sie Ihren Raspberry Pi installieren müssen, habe ich schlechte Nachrichten, ich erkläre dies in diesem Projekt nicht.
Pakete installieren
sudo apt-Update
sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3
Virtuelle Umgebung
python3 -m pip install --upgrade pip setuptools rad virtualenv
mkdir {Name Ihres Projektordners} && cd {Name Ihres Projektordners} python3 -m venv --system-site-packages env source env/bin/activate python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask- MySQL mysql-connector-python passlib
Jetzt müssen Sie das Git-Repository in Ihrem Projektordner klonen
github.com/NMCT-S2-Project-I/Project-I.git
Wenn Sie in Ihrem Projektordner nachsehen, müssen Sie 5 Ordner sehen
- conf
- env
- Sensor
- sql
- Netz
Datenbank
sudo systemctl status mysql
ss -lt | grep mysql sudo mysql
Erstellen Sie einen Benutzer in der Datenbank mit allen Rechten und machen Sie Ihre Datenbank
Benutzer 'user'@'localhost' erstellen, identifiziert durch 'password';
Datenbank erstellen IhrDatenbankname; erteilen Sie 'user'@'localhost' alle Privilegien auf yourdatabasename.* mit Grant-Option;
Conf-Dateien für Server
In der uwsgi-flask.ini ändern Sie 'module = …' in 'module= web:app' und den Pfad zu Ihrer erstellten virtuellen Umgebung. In den anderen Dateien müssen Sie die Pfade in die tatsächlichen absoluten Pfade Ihres Verzeichnisses ändern.
Sobald Sie das herausgefunden haben, können Sie die Dateien an der richtigen Stelle platzieren.
sudo cp conf/project1-*.service /etc/systemd/system/
sudo systemctl daemon-reload sudo systemctl start project1-* sudo systemctl status project1-*
Jetzt müssen wir dies zur Verfügung 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 restart nginx.service sudo nginx -t
Wenn alles gut gelaufen ist, solltest du mit diesem Befehl hallo Welt haben
wget -qO - localhost
Fertig ! Nun, das ist der Teil, um Ihr System laufen zu lassen…
Schritt 1: Verkabelung der Hardware mit dem Pi
mit BCM
Audio-MAX98357A
- BCK zu GPIO 18
- Daten zu GPIO 21
- LRCK zu GPIO 19
hell
- rot auf GPIO 17
- grün auf GPIO 27
- blau zu GPIO 22
Motormodul ULN2003
- Pin 1 zu GPIO 5
- Pin 2 an GPIO 6
- Pin 3 an GPIO 13
- Pin 4 an GPIO 26
Mikro
D0 bis GPIO 21
Ultraschallsensor
- trig zu GPIO 16
- Echo zu GPIO 20
Schritt 2: Codieren der Hauptprogramme
Ich gehe hier nicht auf Details ein, aber Sie können meinen Code in github überprüfen.
Zu Beginn habe ich mein HTML und CSS erstellt, einen Index, Login, Register, Homescreen, Musik, Addmusic, Addbear, Licht, Kamera, Kameraeinstellungen, Sensor, Dashboard-Seite. Die HTML-Dateien müssen sich in den Vorlagen und die CSS-Dateien im statischen/css-Ordner befinden. Sie können das CSS vollständig nach Ihren Wünschen anpassen.
Wenn Sie diesen Teil getan haben, müssen Sie Ihren Kolben einrichten. Flask ist einfach zu bedienen, nur ein Beispiel für die Hallo-Welt
# zuerst Flasche importieren
aus Kolbenimport * @app.route('/') def index(): return render_template('index.html')
Jetzt ist dies in meinem Code bereits ausgefüllt, das einzige, was Sie tun müssen, ist, den Datenbankbenutzer und das Passwort von Ihnen zu ändern und natürlich die gleiche Datenbank zu erstellen, die Sie auch in github finden.
Schritt 3: Erstellen der Datenbank
Für die echten Fans werde ich Ihnen sagen, wie Sie dieselbe Datenbank erstellen.
Also müssen wir zuerst die Datenbank erstellen, wenn Sie dies in Schritt 1 nicht getan haben.
Datenbank Beargardian erstellen;
Sobald Sie dies getan haben, erstellen Sie die Tabellen in mysql workbench oder phpadmin
Benutzertabelle hat
- Benutzeridentifikation
- Vorname
- Nachname
- Babyname
- Passwort mit sha1
- Benutzerordner
- Spielmusik (int)
- Playlight (int)
- Playrecording (int)
Musiktisch hat
- Musik-ID
- Lied
- Weg
- Benutzerordner
- Status
- Volumen
Aufnahmetisch hat
- Aufnahme-ID
- Weg
- Benutzerordner
- Zeit
- Tag
Farbtabelle hat
- Farb-ID
- rot
- Grün
- Blau
- Helligkeit
- Benutzeridentifikation
Bärentisch hat
- bearID (dezimal(8))
- userID default null
- Bärenname
Sensortabelle hat
- sensorID
- Distanz
- Mikro
- Bären-ID
- Zeit
- Tag
- Schlafenszeit
Nachdem Sie nun die Datenbank erfolgreich erstellt haben, gehen wir zur Hardware.
Schritt 4: Hardware-Codierung
Ich werde ein wenig Code zeigen und Ihnen sagen, warum ich es so gemacht habe.
Zunächst habe ich Threading verwendet, was in diesem Projekt ein absolutes Muss ist. Was ist Einfädeln, hmmm gute Frage! Eine Bedrohung in Python besteht darin, mehrere Programme gleichzeitig auszuführen. Wenn Sie also beispielsweise die Farbe ändern, können Sie auch aufnehmen. Es ist einfach zu bedienen, keine Sorge.
import _threaddef function_name(something, something_else): Code zum Ausführen
_thread.start_new_thread(function_name, tuple_with_the_functions_variables)
Wenn Sie sich mein Programm angesehen haben, haben Sie logger.info('…') gesehen. Das ist die Druckfunktion aber viel besser, denn auf dem Pi kann man nichts ausdrucken also mache ich eine Datei und drucke sie dort aus. Mit diesem Code können Sie die Protokolldatei festlegen.
logger = Logging.getLogger(_name_)logger.setLevel(logging. INFO) # Dateihandler erstellen handler = Logging. FileHandler('logger.log') handler.setLevel(logging. INFO)
# ein Logging-Format erstellen
formatter = logging. Formatter('%(asctime)s - %(name)s - %(message)s') handler.setFormatter(formatter)
# füge die Handler zum Logger hinzu
logger.addHandler(handler)
logger.info('Hardware starten\n---------------------------------------')
weiter im Code selbst erkläre ich alles.