Inhaltsverzeichnis:

Beargardian - Gunook
Beargardian - Gunook

Video: Beargardian - Gunook

Video: Beargardian - Gunook
Video: Meet the Bear Guardian Your Ultimate Baby Monitor Companion 2024, November
Anonim
Bärengardian
Bärengardian

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

Verkabelung der Hardware mit dem Pi
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

Erstellen der Datenbank
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
  • Email
  • 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.